var numWays = function(n, relation, k) {
let ways = 0;
const edges = new Array(n).fill(0).map(() => new Array());
for (const [src, dst] of relation) {
edges[src].push(dst);
}
const dfs = (index, steps) => {
if (steps === k) {
if (index === n - 1) {
ways++;
}
return;
}
const list = edges[index];
for (const nextIndex of list) {
dfs(nextIndex, steps + 1);
}
}
dfs(0, 0);
return ways;
}
var relation = [[0,2],[2,1],[3,4],[2,3],[1,4],[2,0],[0,4]]
numWays(5,relation,3)
报错:
maximum call stack size exceed
不改不报错
这不就
i++
和++i
是谁先自增后使用、谁先使用后自增的问题么……你这里一直在用同一个
steps
的值,递归死循环了。