Skip to content

Latest commit

 

History

History
42 lines (28 loc) · 1.02 KB

047._permutations_ii.md

File metadata and controls

42 lines (28 loc) · 1.02 KB

###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