class Solution:
def permuteUnique(self,nums:list[int]) -> list[list[int]]:
def dfs(visited,nums,res,path,depth):
if depth ==len(nums):
res.append(path[:])
for i in range(len(nums)):
if i > 0 and nums[i] == nums[i-1] and visited[i-1] == False:
continue
if not visited[i]:
path.append(nums[i])
visited[i] = True
dfs(visited,nums,res,path,depth+1)
path.pop()
visited[i] = False
nums.sort()
res = []
path = []
visited = [False] * len(nums)
dfs(visited,nums,res,path,0)
return res
nums = list(map(int,input().split(',')))
s = Solution()
print(s.permuteUnique(nums))
手撕10_回溯_全排列II
于 2024-04-15 00:41:18 首次发布