-
1234567891011121314151617181920212223242526272829303132var 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 '알고리즘 > 리트코드' 카테고리의 다른 글
53. Maximum Subarray (0) 2021.05.23 121. Best Time to Buy and Sell Stock (0) 2021.05.23 1557. Minimum Number of Vertices to Reach All Nodes (0) 2021.05.20 1277. Count Square Submatrices with All Ones (0) 2021.05.20 1641. Count Sorted Vowel Strings (0) 2021.05.20