如何在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 红包祝福语简短10字
18 周六早晨祝福语简短