データ構造とアルゴリズム--配列(配列全配列)
6421 ワード
/**
*
* @param nums
* @returns {Array}
*/
function permute(nums) {
const resPms = [];
const used = Array(nums.length).fill(false); // ;
/**
* index+1 , index + 1
* @param nums
* @param index
* @param p index
*/
function generatePermutations(nums, index, p) {
if (index === nums.length) {
resPms.push([...p]); //
return;
}
for (let i = 0; i < nums.length; i++) {
if (!used[i]) {
// nums[i] p
p.push(nums[i]);
used[i] = true;
generatePermutations(nums, index + 1, p);
p.pop();
used[i]= false;
}
}
return;
}
if (nums.length === 0) {
return resPms;
}
const p = [];
generatePermutations(nums, 0, p);
return resPms;
}
console.log(permute([1, 2, 3]));