Decrease Elements To Make Array Zigzag LeetCode solution in JavaScript

1
var movesToMakeZigzag = function (nums) {
2
const n = nums.length;
3

4
let lastEvenRight = Number.MIN_SAFE_INTEGER;
5
let evenMoves = 0;
6

7
let lastOddRight = nums[0];
8
let oddMoves = 0;
9

10
for (let i = 0; i < n; i++) {
11
const currNum = nums[i];
12
const nextNum = i < n - 1 ? nums[i + 1] : Number.MIN_SAFE_INTEGER;
13

14
if (i % 2 === 0) {
15
if (lastEvenRight >= currNum) evenMoves += lastEvenRight - currNum + 1;
16

17
if (currNum <= nextNum) {
18
evenMoves += nextNum - currNum + 1;
19
}
20

21
lastEvenRight = Math.min(currNum - 1, nextNum);
22
} else {
23
if (lastOddRight >= currNum) oddMoves += lastOddRight - currNum + 1;
24

25
if (currNum <= nextNum) {
26
oddMoves += nextNum - currNum + 1;
27
}
28

29
lastOddRight = Math.min(currNum - 1, nextNum);
30
}
31
}
32

33
return Math.min(oddMoves, evenMoves);
34
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0