알고리즘/리트코드
Permutations II
창고
2021. 5. 12. 20:39
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
var permuteUnique = function (nums) {
let res = []; let remain = {}; let set = new Set(nums);
for (let i = 0; i < nums.length; i++) {
remain[nums[i]] = remain[nums[i]] + 1 || 1;
}
function permute(depth, getArray, getRemain) {
if (depth === nums.length) {
res.push(getArray); ❓❓ getArray.slice()로 해야함
return;
} else {
for (let num of set) {
if (remain[num]) {
getArray.push(num);
getRemain[num]--;
permute(depth + 1, getArray, getRemain);
getArray.pop();
getRemain[num]++;
}
}
}
}
permute(0, [], remain);
return res;
};
console.log(permuteUnique([1, 1, 2]));
|
cs |