给定一个可包含重复数字的序列,返回所有不重复的全排列。
示例:
输入: [1,1,2]
输出:
[
[1,1,2],
[1,2,1],
[2,1,1]
]
在真实的面试中遇到过这道题?是否
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/permutations-ii
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
class Solution:
def permuteUnique(self, nums: List[int]) -> List[List[int]]:
result=[]
nums.sort()
def recursion(nums,temp):
if not nums:
result.append(temp[:])
for i in range(len(nums)):
if(i>=1 and nums[i]==nums[i-1]):
continue
recursion(nums[:i]+nums[i+1:],temp+[nums[i]])
recursion(nums,[])
return result
与全排列一的做法类似,只需要加一个去重的操作即可。