leetcode1005:K次取反后最大化的数组和
K次取反后最大化的数组和
给你一个整数数组 nums 和一个整数 k ,按以下方法修改该数组:
- 选择某个下标
i并将nums[i]替换为-nums[i]。
重复这个过程恰好 k 次。可以多次选择同一个下标 i 。
以这种方式修改数组后,返回数组 可能的最大和 。
public int largestSumAfterKNegations(int[] nums, int k) {int min;int index;while(true){min = Integer.MAX_VALUE;index = -1;for (int j = 0; j < nums.length; j++) {if(nums[j] < min) {min = nums[j];index = j;}}nums[index] *= -1;k--;if(k == 0){break;}}int sum = 0;for (int i = 0; i < nums.length; i++) {sum += nums[i];}return sum;}
贪心:每次反转最小的
