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

贪心:每次反转最小的

你可能感兴趣的:(leetcode,算法,java,数据结构)