###47. 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 ```