直接在第15题的基础上修改,增加排序后去重
class Solution:
"""
@param: : A list of integers
@return: A list of unique permutations
"""
def permuteUnique(self, nums):
# write your code here
begin = 0
end = len(nums)
result = []
if end == 0:
return [[]]
self.permute_temp(begin,end,nums,result)
result.sort() #排序后去重
n = len(result)
i = 0
while i < len(result) - 1:
if result[i] == result[i+1]:
del result[i]
else:
i += 1
return result
def permute_temp(self,begin,end,nums,result):
if begin == end:
k = nums[:]
result.append(k)
else:
for i in range(begin,end):
temp = nums[begin]
nums[begin] = nums[i]
nums[i] = temp
self.permute_temp(begin + 1,end,nums,result)
temp = nums[begin]
nums[begin] = nums[i]
nums[i] = temp