给一 非负 整数数组. 取数组中的一部分元素, 使得它们的和大于数组中其余元素的和, 求出满足条件的元素数量最小值.
样例
例1:
输入: nums = [3, 1, 7, 1],
输出: 1
例2:
输入: nums = [2, 1, 2],
输出: 2
class Solution {
public:
/**
* @param arr: an array of non-negative integers
* @return: minimum number of elements
*/
int minElements(vector<int> &arr) {
// write your code here
sort(arr.begin(),arr.end());
int sum=0;
for (int i = 0; i < arr.size(); i++) {
sum+=arr[i];
}
sum=sum/2+1;
int cnt=0;
for (int i = arr.size()-1; i >= 0; i--) {
sum-=arr[i];
cnt++;
if(sum<=0) return cnt;
}
}
};