题目描述:
给定一个可包含重复数字的序列,返回所有不重复的全排列。
思路:
先将数组排序,如果当前元素与下一个元素相同就跳过,其余操作与全排列一样。
代码:
class Solution(object):
def permuteUnique(self, nums):
nums.sort()
res = []
m = len(nums)
if m < 2:
return [nums]
for i in range(m):
if i < m - 1 and nums[i] == nums[i+1]:
continue
for p in self.permuteUnique(nums[:i]+nums[i+1:]):
res.append(p + [nums[i]])
return res