class Solution {
public:
int findBestValue(vector<int>& arr, int target) {
int N = arr.size();
sort(arr.begin(),arr.end());
int ans = 1;
int diff = abs(ans*N-target);
if( diff == 0 ) return ans;
int sum = 0;
int loc = 0;
for(int i=0;i<N;i++){
loc = arr[i];
int Rdiff = sum + loc*(N-i) - target;
if(Rdiff == 0) return loc;
if(Rdiff > 0){
int a = (target-sum) % (N-i);
int b = (target-sum) / (N-i);
if(a > (N-i)/2) return b+1;
else return b;
}
sum += loc;
}
return loc;
}
};
No.170 - LeetCode1300
寻找最佳数值算法解析
最新推荐文章于 2025-11-29 20:54:03 发布
本文介绍了一种寻找最佳数值的方法,通过将数组排序并逐步计算累积和,对比目标值来确定最接近的目标数值。该算法适用于需要从一组数值中找到与特定目标值最接近的值的场景。
192

被折叠的 条评论
为什么被折叠?



