题目描述:
思路:今天每日一题完全没思路。甚至题目都没大搞懂看了好久才明白什么意思。官方的题解也没弄明白。但是评论区还是有大神的做法,一开始看这种解法还不太明白,但按这种思路编下去就明白了为什么这种方法是对的,有点像奥数题的样子。果然还是大神多啊。
自己编码后发现结果确实正确
import java.util.Arrays;
class Solution {
public int findBestValue(int[] arr, int target) {
Arrays.sort(arr);
int cursum=0;
for (int i=0;i<arr.length;i++){
int curave=(target-cursum)/(arr.length-i);
if (curave<=arr[i]){
double curavedi=(target*1.0-cursum)/(arr.length-i);
if (curavedi-curave<=0.5){
return curave;
}else {
return curave+1;
}
}
cursum=cursum+arr[i];
}
return arr[arr.length-1];
}
}