IF-シーケンス
6175 ワード
質問する
例
InputInputOutput[3,6,9]2[ [ 3, 6 ], [ 3, 9 ], [ 6, 3 ], [ 6, 9 ], [ 9, 3 ], [ 9, 6 ] ]
回答とレビュー
tmp
およびtmp
に加算可能なcheck
の数字の組み合わせを出力する.깊이가 M과 같을 때
であり、このときtmp
アレイのコピーが出力される.numbers
のうち、check[i]
が0である場合のみ、tmp[L]
にnumbers[i]
が割り当てられる.check[i]
を再び0に変更した場合、numbers
iの1番目の要素は、検査配列のiインデックスが0の場合にのみtmp
の要素になります.check
配列のiインデックスを再び0に変更します.コード#コード#
const solution = (numbers, M) => {
const answer = [];
const check = new Array(numbers.length);
check.fill(0);
const tmp = new Array(M);
tmp.fill(0);
const DFS = (L) => {
if (L === M) {
answer.push([...tmp]);
} else {
for (let i = 0; i < numbers.length; i++) {
if (check[i] === 0) {
check[i] = 1;
tmp[L] = numbers[i];
DFS(L + 1);
check[i] = 0;
}
}
}
};
DFS(0);
console.log(answer);
};
Reference
この問題について(IF-シーケンス), 我々は、より多くの情報をここで見つけました https://velog.io/@goody/IF-순열テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol