Maximize Sum Of Array After K Negations
EasyArrayGreedySorting
Solution
export function largestSumAfterKNegations(nums: number[], k: number): number {
const n = nums.length;
nums.sort((a, b) => Math.abs(b) - Math.abs(a));
let sum = 0;
let remain = k;
for (let i = 0; i < n; i++) {
if (nums[i] < 0 && 0 < remain) {
nums[i] = -nums[i];
remain -= 1;
}
sum += nums[i];
}
if (remain % 2 === 1) {
return sum - 2 * nums[n - 1];
}
return sum;
}