版权声明: 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
感觉这种算法,只能感觉想出这种想法的真他么牛逼,但是我是怎么也想不到的。。。