题目

解题思路

  1. 要获得最大化得分所以需要每次都读取数组中最大的值;
  2. m为当前数组中最大元素,则更换后的m + 1也应为最大元素;
  3. 获取最初的最大值max,然后从第二次操作开始,对max + 1然后累加到结果中。

代码展示

package Two.Six.Five;

import java.util.Arrays;

public class Six {
    public static void main(String[] args) {
        Six six = new Six();
        System.out.println(six.maximizeSum(new int[]{1,2,3,4,5},3));
        System.out.println(six.maximizeSum(new int[]{5,5,5},2));
    }
    public int maximizeSum(int[] nums, int k) {
        int ans = 0;
        int max = Integer.MIN_VALUE;
        for (int i = 0; i < nums.length; i++){
            if(max < nums[i]){
                max = nums[i];
            }
        }
        max--;
        for (int i = 0; i < k; i++){
            ans += max + 1;
            max++;
        }
        return ans;
    }
}
11-16 08:31