Open Mooo-star opened 2 months ago
/**
* @param {number[]} nums
* @return {number[][]}
*/
var permuteUnique = function (nums) {
const len = nums.length;
const result = [];
const set = new Set()
function backtrack(used, path) {
if (path.length === len) {
if(set.has(path.toString())){
return
}
set.add(path.toString())
result.push(path)
return
}
for (let i = 0; i < len; i++) {
if (used[i]) continue
used[i] = true
backtrack(used, [...path, nums[i]])
used[i] = false
}
}
backtrack([], [])
return result
};
/**
* @param {number[]} nums
* @return {number[][]}
*/
var permuteUnique = function (nums) {
const len = nums.length;
const result = [];
nums.sort((a, b) => a - b)
function backtrack(used, path) {
if (path.length === len) {
result.push(path)
return
}
for (let i = 0; i < len; i++) {
if (i > 0 && nums[i] === nums[i - 1] && !used[i - 1]) {
continue
}
if (used[i]) continue;
used[i] = true
backtrack(used, [...path, nums[i]])
used[i] = false
}
}
backtrack([], [])
return result
};
给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。
示例 1:
示例 2: