lc-day18

K 次取反后最大化的数组和

题目

每日一题,贪心题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var largestSumAfterKNegations = function(nums, k) {
let num = nums;
nums.sort(function(a, b){
return Math.abs(a) - Math.abs(b);
})

for(let i = nums.length - 1; i >= 0; i--){
if(nums[i] < 0 && k > 0){
k--;
nums[i] = -nums[i];
}
}

let ans = 0;
for(let i = 0; i < nums.length; i++) ans += nums[i];
if(k % 2 == 0) return ans;
else return ans - 2 * nums[0];
};