解题思路-leetcode第四十七题:全排列Ⅱ
题目描述:
给定一个可包含重复数字的序列,返回所有不重复的全排列。
示例:
输入: [1,1,2]
输出:
[
[1,1,2],
[1,2,1],
[2,1,1]
]
解题思路:本题和46题全排列十分相似,区别只是对46题全排列结果的去重,所以采用与46题同样的思路,只是在递归函数判断循环到最后一个元素从而添加结果时,增加去重操作,即判断该结果是否已经在结果集合内。代码如下:
class Solution:
def permuteUnique(self, nums: List[int]) -> List[List[int]]:
res = []
def back(nums, t):
if not nums and not t in res:
res.append(t)
return
for i in range(len(nums)):
back(nums[:i] + nums[i+1:], t + [nums[i]])
back(nums, [])
return res
提交后,通过。