Maximize Sum Of Array After K Negations LeetCode solution in JavaScript

1
/**
2
* @param {number[]} nums
3
* @param {number} k
4
* @return {number}
5
*/
6
var largestSumAfterKNegations = function (nums, k) {
7
let negations = k;
8
let index = 0;
9
const sortedNums = [...nums];
10

11
// Sort in increasing order
12
sortedNums.sort((a, b) => a - b);
13

14
// loop into the sorted array using the
15
// number of negations
16
while (negations > 0) {
17
negations--;
18

19
const currentNumber = -sortedNums[index];
20
const nextNumber = sortedNums[index + 1];
21

22
sortedNums[index] = currentNumber;
23

24
// if the number is 0, undefined or
25
// the current number is less than the
26
// next number (meaning it will be
27
// less the amount if it's a negative
28
// number) just use the same number
29
// again to flip.
30
if (
31
currentNumber === 0 ||
32
nextNumber === undefined ||
33
currentNumber < nextNumber
34
)
35
continue;
36

37
index++;
38
}
39

40
return sortedNums.reduce((sum, num) => sum + num, 0);
41
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0