###47. Permutations II

题目:
<https://leetcode.com/problems/permutations-ii/>


难度:

Medium 


虽然想到了，但是没有靠自己的力量implement出来，还是比较容易了理解的，因为如果有重复的，那么处理只用处理第一个,就只用把第一个提出来，剩下的管它怎么permute。

第二次碰到这个元素就不要再用它了，因为可能出现的组合已经有了。


看代码：
base case 处理掉
sort一下，设置一个prevNum变量

如果碰到过了，就continue，去继续执行下一个


```
class Solution(object):
    def permuteUnique(self, nums):
        """
        :type nums: List[int]
        :rtype: List[List[int]]
        """
        if len(nums) == 0: return []
        if len(nums) == 1: return [nums]
        res = []
        nums.sort()
        for i in range(len(nums)):
            if i > 0 and nums[i] == nums[i-1]: continue
            for j in self.permuteUnique(nums[:i] + nums[i+1:]):
                res.append([nums[i]] + j)
        return res
```


