Description
有重复的数,找所有unique全排列
Solution
把每一个数字拎到1st位置,num删掉该字符
首先需要sort array 然后在permute的时候如果遇到连续相同的,就跳过
import copy
class Solution(object):
def permuteUnique(self, nums):
"""
:type nums: List[int]
:rtype: List[List[int]]
"""
if nums is None:
return []
if len(nums) == 0:
return [[]]
self.res = []
self.dfs(sorted(nums),[])
return self.res
def dfs(self,nums,trace):
if 0 == len(nums):
self.res .append(trace)
return
for i in range(len(nums)):
if i>0 and nums[i]==nums[i-1]: #关键的一行!
continue
self.dfs(nums[:i]+nums[i+1:],trace+[nums[i]])
return
网友评论