Leetcode刷题之旅(每日一题)--1300. 转变数组后最接近目标值的数组和

题目描述:
Leetcode刷题之旅(每日一题)--1300. 转变数组后最接近目标值的数组和_第1张图片
思路:今天每日一题完全没思路。甚至题目都没大搞懂看了好久才明白什么意思。官方的题解也没弄明白。但是评论区还是有大神的做法,一开始看这种解法还不太明白,但按这种思路编下去就明白了为什么这种方法是对的,有点像奥数题的样子。果然还是大神多啊。
在这里插入图片描述

自己编码后发现结果确实正确

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];
    }
}

你可能感兴趣的:(leetcode)