漏了 path.pop() 会剩几个解
这个版本撤销时只改回了 used,忘了把 path 弹出来。运行它:
def perm_nopop(a):
res = []
path = []
used = [False] * len(a)
def dfs():
if len(path) == len(a):
res.append(list(path))
return
for i in range(len(a)):
if used[i]:
continue
used[i] = True
path.append(a[i])
dfs()
used[i] = False
dfs()
return res
print(len(perm_nopop([1, 2, 3])))
全部评论