Frog Jump LeetCode solution in JavaScript

1
var canCross = function (stones) {
2
let hash = {};
3
function dfs(idx = 0, jumpUnits = 0) {
4
let key = `${idx}-${jumpUnits}`;
5
if (key in hash) return hash[key];
6

7
if (idx === stones.length - 1) return true;
8
if (idx >= stones.length) return false;
9

10
let minJump = jumpUnits - 1,
11
maxJump = jumpUnits + 1;
12
for (let i = idx + 1; i < stones.length; i++) {
13
let jump = stones[i] - stones[idx];
14
if (jump >= minJump && jump <= maxJump) {
15
if (dfs(i, jump)) return (hash[idx] = true);
16
} else if (jump > maxJump) break;
17
}
18
return (hash[key] = false);
19
}
20
return dfs();
21
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0