LeetCode-47、全排列 II-中等
给定一个可包含重复数字的序列,返回所有不重复的全排列。
示例:
输入: [1,1,2]
输出:
[
[1,1,2],
[1,2,1],
[2,1,1]
]
代码1:库函数
class Solution:
def permuteUnique(self, nums: List[int]) -> List[List[int]]:
return set(list(itertools.permutations(nums)))
代码2:回溯
class Solution:
def permuteUnique(self, nums: List[int]) -> List[List[int]]:
res = []
def backtrack(nums, tmp):
if not nums and tmp not in res:
res.append(tmp)
return
for i in range(len(nums)):
backtrack(nums[:i] + nums[i+1:], tmp + [nums[i]])
backtrack(nums, [])
return res