Jump Game VII LeetCode solution in C++

1
class Solution {
2
public:
3
bool canReach(string s, int minJump, int maxJump) {
4
int n = s.length();
5
if (s[n - 1] != '0') return false;
6

7
int i = 0;
8
queue<int> q;
9
q.push(0);
10
int curr_max = 0;
11

12
while (!q.empty()) {
13
i = q.front();
14
q.pop();
15
if (i == n - 1) return true;
16

17
for (int j = max(i + minJump, curr_max); j <= min(i + maxJump, n - 1); j++) {
18
if (s[j] == '0') q.push(j);
19
}
20
curr_max = min(i + maxJump + 1, n);
21
}
22
return false;
23
}
24
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0