133 - 47 全排列2
题目
解答
const helper = function(nums, level, res) {
if (level === nums.length) {
res.push([...nums])
return
}
const map = new Map()
for (let i = level; i < nums.length; i++) {
if (!map.get(nums[i])) {
map.set(nums[i], true);
[nums[i], nums[level]] = [nums[level], nums[i]]
helper(nums, level + 1, res);
[nums[i], nums[level]] = [nums[level], nums[
i]]
}
}
}
var permuteUnique = function(nums) {
if (nums.length === 0) {
return []
} else if (nums.length === 1) {
return [
[nums[0]]
]
}
nums.sort((a, b) => a - b)
const res = []
helper(nums, 0, res)
return res
};Last updated