小编use*_*rDT的帖子

执行k次操作后如何最小化最终数组中元素的总和

这个问题在我的面试编码中被问到,有 12 个测试用例,我只能通过其中的 8 个。minSum(List values, int k) 方法需要完成。示例:nums = [10,20,7] 和 k=4 这个数组的答案是 5+5+4=14。每个操作包括从数组中删除元素,将其除以 2 并将该结果的上限插入回数组中。

我的解决方案是这样的:

if (num != null) {
        Collections.sort(num);

        while (k != 0) {
            for (int i = num.size() - 1; i >= 0 && k != 0; i--) {

                int number = (int) Math.ceil((double) num.get(i) / 2);

                num.set(i, number);
                k--;
            }
        }
    }
    return getMinSumOfArray(num);
Run Code Online (Sandbox Code Playgroud)

测试用例: nums[2], k= 1 then answer is 1 if nums[2,3], k = 1 then answer is 4

这些是简单的测试用例,但是您需要执行 100000 …

java arrays list

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

arrays ×1

java ×1

list ×1