如何在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 生日广州男生祝福语简短