JavaScript での配列の順列の識別
整数の配列のすべての順列を計算するには、文字列ベースのアルゴリズムを適応させるときに考慮すべきニュアンスがあります
元の関数 (文字列用に設計された) は追跡します。 chars および usedChars 配列による文字。各文字を反復処理し、それを usedChars に追加し、残りの文字で permute を再帰的に呼び出します。
整数への適応
整数の配列に対応するには、次の変更が必要です。
配列の改訂された関数
以下の改訂された関数は、前述の適応に対応しています:
function permute(inputArr) { const permArr = []; const usedInts = []; for (let i = 0; i < inputArr.length; i++) { const el = inputArr.splice(i, 1); usedInts.push(el); if (inputArr.length === 0) { permArr.push(usedInts.slice()); } permute(inputArr.slice()); inputArr.splice(i, 0, el); usedInts.pop(); } return permArr; }
使用法例
改訂された関数を使用すると、整数の配列の順列を計算できます。
console.log(permute([1, 2, 3, 4])); // [[1, 2, 3, 4], [1, 2, 4, 3], ...] console.log(permute([5, 6, 7])); // [[5, 6, 7], [5, 7, 6], ...]
以上がJavaScript で整数配列のすべての順列を効率的に生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。