JavaScriptエンコーディング「取得シーケンス」のテスト
1289 ワード
10個以下のN個の自然数がある場合は、その中からM個を選択し、すべての列を1列にする方法を出力します.(繰り返しX)回答:
重複除外はありません.どうしたらいいかわからない状態. 先生の解答:
check配列を作成し、for文にif文を入れます.配列値を使用すると、次のインデックスは配列値を無効にします.
重複除外はありません.どうしたらいいかわからない状態.
function solution(m, arr){
let answer=[];
let n=arr.length;
let ch=Array.from({length:m},()=>0);
function DFS(L){
if(L===m){
answer.push(ch.slice());
}
else{
for(let i=0; i<=m; i++){
ch[L]=arr[i];
DFS(L+1);
}
}
}
DFS(0);
return answer;
}
let arr=[3, 6, 9];
console.log(solution(2, arr));
check配列を作成し、for文にif文を入れます.配列値を使用すると、次のインデックスは配列値を無効にします.
function solution(m, arr){
let answer=[];
n=arr.length;
let ch=Array.from({length:n},()=>0);
let tmp=Array.from({length:m},()=>0);
function DFS(L){
if(L===m){
answer.push(tmp.slice());
}
else{
for(let i=0; i<n; i++){
if(ch[i]===0){
ch[i]=1;
tmp[L]=arr[i];
DFS(L+1);
ch[i]=0;
}
}
}
}
DFS(0);
return answer;
}
let arr=[3, 6, 9];
console.log(solution(2, arr));
Reference
この問題について(JavaScriptエンコーディング「取得シーケンス」のテスト), 我々は、より多くの情報をここで見つけました https://velog.io/@saiani1/자바스크립트-코딩테스트-순열-구하기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol