如何在JavaScript中实现爬楼梯练习的回溯?
假设我们需要爬上一个有n个台阶的楼梯,并且我们决定通过上台阶来进行一些额外的锻炼。
我们一次跳跃最多可以覆盖k个步骤。无论阶梯数多少,k都可以为1或2。
我们被要求返回所有可能的跳跃顺序,以供您爬楼梯。
例如-
for n = 4 and k = 2,
输出应该是-
climbingStaircase(n, k) = [[1, 1, 1, 1], [1, 1, 2], [1, 2, 1], [2, 1, 1], [2, 2]];
示例
为此的代码将是-
const n = 4;
const climbStairs = (n) => {
if (n == 0) return 0;
let memory = new Map();
let recur = (left) => {
if (memory.has(left)) return memory.get(left);
if (left <= 0) return 0;
if (left == 1) return 1;
if (left == 2) return 2;
memory.set(left, recur(left − 2) + recur(left − 1));
return memory.get(left);
};
return recur(n);
};
console.log(climbStairs(n));输出结果
控制台中的输出将是-
5
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短