Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

JavaScriptで階段を上る練習のためにバックトラックを実装するにはどうすればよいですか?


n段の階段を上る必要があり、階段を上ってさらに運動をすることにしました。

1回のジャンプで最大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

  1. JavaScriptで非同期ループを実装する方法は?

    以下は、JavaScriptで非同期ループを実装するためのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style> &nbs

  2. JavaScriptでオブジェクトごとに一意のIDを作成するにはどうすればよいですか?

    以下は、オブジェクトごとに一意のIDを作成するためのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style>