长度为n的数组,每次可以选择若干元素使元素的值变为这些元素的和的平均值
给出数组和数字x,求经过操作数组中最多有多少数字不小于x
import java.util.*; public class Solution { // 我们在做算法题的时候一定要注意能否自己定义的变量是否存的下应该存的数。 // 思路:先排序,从最大那头开始一直往里加数,求平均值,直到平均值小于 // x时停止,返回加入数的个数。public int arrange (int n, int x, int[] a) {if (a.length == 0) { return 0; } Arrays.sort(a); int lastLessThanX = 0; // 找出第一个大于x的下标; long sum = 0; // 计算总和 int count = 0; //总和中元素个数 boolean all = true; // 判断是否所有符合的标志 for (int i = a.length - 1; i >= 0; i--) { sum += a[i]; count ++; if (sum / count < x) { all = false; break; } } if (!all) { count--; } return count; } }