leetcode 全排列2

版权声明: https://blog.csdn.net/hsc_1/article/details/82954650

给定一个可包含重复数字的序列,返回所有不重复的全排列。

示例:

输入: [1,1,2]
输出:
[
  [1,1,2],
  [1,2,1],
  [2,1,1]
]
class Solution:
    def permuteUnique(self, nums):
        """
        :type nums: List[int]
        :rtype: List[List[int]]
        """
        res = [[]]
        for ele in nums:
            res_tmp = []
            for numbers in res:
                for i in range(len(numbers) + 1):
                    res_tmp.append(numbers[:i] + [ele] + numbers[i:])
                    if i < len(numbers) and numbers[i] == ele:
                        break
            res = res_tmp
        return res

感觉这种算法,只能感觉想出这种想法的真他么牛逼,但是我是怎么也想不到的。。。

猜你喜欢

转载自blog.csdn.net/hsc_1/article/details/82954650