题目
解题思路
- 要获得最大化得分所以需要每次都读取数组中最大的值;
- m为当前数组中最大元素,则更换后的m + 1也应为最大元素;
- 获取最初的最大值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;
}
}