JavaScriptでm個の要素を持つn個の配列から組み合わせを生成する
例-
このデータを検討してください-
const arr = [ [0,1], [0,1,2,3], [0,1,2] ]
異なる数の要素を含む3つのサブ配列。
私たちがやりたいのは、各配列のアイテムを組み合わせてすべての組み合わせを取得することです。
例-
0,0,0 // item 0 from array 0, item 0 from array 1, item 0 from array 2 0,0,1 0,0,2 0,1,0 0,1,1 0,1,2 0,2,0 0,2,1 0,2,2
など。
アレイの数が固定されていれば、ハードコーディングされた実装を簡単に作成できます。ただし、アレイの数は異なる場合があります-
const arr1 = [[0,1], [0,1]]; const arr2 = [[0,1,3,4], [0,1], [0], [0,1]];
例
このためのコードは-
になりますconst arr = [ [0,1], [0,1,2,3], [0,1,2] ] const combineAll = (array) => { const res = []; let max = array.length−1; const helper = (arr, i) => { for (let j=0, l=array[i].length; j<l; j++) { let copy = arr.slice(0); copy.push(array[i][j]); if (i==max) res.push(copy); else helper(copy, i+1); }; }; helper([], 0); return res; }; console.log(combineAll(arr));
そして、コンソールの出力は-
になります[ [ 0, 0, 0 ], [ 0, 0, 1 ], [ 0, 0, 2 ], [ 0, 1, 0 ], [ 0, 1, 1 ], [ 0, 1, 2 ], [ 0, 2, 0 ], [ 0, 2, 1 ], [ 0, 2, 2 ], [ 0, 3, 0 ], [ 0, 3, 1 ], [ 0, 3, 2 ], [ 1, 0, 0 ], [ 1, 0, 1 ], [ 1, 0, 2 ], [ 1, 1, 0 ], [ 1, 1, 1 ], [ 1, 1, 2 ], [ 1, 2, 0 ], [ 1, 2, 1 ], [ 1, 2, 2 ], [ 1, 3, 0 ], [ 1, 3, 1 ], [ 1, 3, 2 ] ]
-
Javascriptを使用してキューから要素を削除します
キューから要素をデキューすることは、キューの先頭/先頭から要素を削除することを意味します。コンテナ配列に関するすべての操作を実行するため、コンテナ配列の先頭をキューの先頭にします。 したがって、次のようにpop関数を実装できます- 例 dequeue() { // Check if empty if (this.isEmpty()) { console.log("Queue Underflow!"); return; &nbs
-
Javascriptを使用してPriorityQueueから要素を削除します
PriorityQueueから要素をデキューすることは、最も優先度の高い要素を削除することを意味します。配列の最後に最も優先度の高い要素を格納しているので、ポップしてデキューするだけです。 したがって、デキュー機能は次のように実装できます- 例 dequeue() { // Check if empty if (this.isEmpty()) { console.log("Queue Underflow!"); return; &n