Jump Game VII LeetCode solution in JavaScript

1
var canReach = function (s, minJump, maxJump) {
2
const validIdxs = [0];
3
for (let i = 0; i < s.length; i++) {
4
// skip if character is a 1 or if all the
5
// valid indicies are too close
6
if (s[i] === "1" || i - validIdxs[0] < minJump) {
7
continue;
8
}
9

10
// remove all the indexes that are too far
11
while (validIdxs.length && i - validIdxs[0] > maxJump) {
12
validIdxs.shift();
13
}
14
if (validIdxs.length === 0) {
15
return false;
16
}
17

18
validIdxs.push(i);
19

20
// if we are at the last index
21
// return if we have an index within range
22
if (i === s.length - 1) {
23
return i - validIdxs[0] >= minJump;
24
}
25
}
26
// if the last character is a 1 we must return False
27
return false;
28
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0