回溯法
思路:
参考46.全排列,在回溯过程中通过判断数字是否已经用过进行去重。
代码:
class Solution: def permuteUnique(self, nums: List[int]) -> List[List[int]]: def pathProcess(first,usedList:List[int]): if first==n: res.append(nums[:]) for i in range(first,n): if i != first and nums[i] in usedList: continue nums[first],nums[i] = nums[i],nums[first] pathProcess(first+1,[]) nums[first],nums[i] = nums[i],nums[first] usedList.append(nums[i]) n = len(nums) res = [] pathProcess(0,[]) return res
原文:https://www.cnblogs.com/nilhxzcode/p/12986995.html