2021.11.19-leetcode 47
无重复全排列:
解法一:
对元素组排序,判断后一个是否对前一个重复。不重复进行回溯。
在设置一个判断,起始点都可以进行回溯,保证重复数据能被多次写入。
res = []
nums.sort()
def dfs(tmp,num):
if not num:
res.append(tmp)
for i, val in enumerate(num):
if i == 0 or num[i] != num[i-1]:
dfs(tmp+[val],num[:i]+num[i+1:])
dfs([],nums)
return res
解法二:
先按全排列求解,在判断新加入的是否在原来里面,不是则不加入。算法复杂度更高。