close

Given a collection of numbers that might contain duplicates, return all possible unique permutations.

For example,
[1,1,2] have the following unique permutations:
[1,1,2], [1,2,1], and [2,1,1].


class Solution(object):
    def permuteUnique(self, nums):
        """
        :type nums: List[int]
        :rtype: List[List[int]]
        """
        if len(nums) < 2:
            return [nums]
        nums.sort()

        ret = []
        saved = None
        for x in xrange(len(nums)):

            if nums[x] == saved:
                continue

            saved = nums[x]
            for y in self.permuteUnique(nums[:x] + nums[x+1:]):
                ret.append([nums[x]] + y)
        return ret


 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 g0d2 的頭像
    g0d2

    kazi1@的部落格

    g0d2 發表在 痞客邦 留言(0) 人氣()