⚠️ 存引用会得到什么
这个版本记解时写的是 res.append(path)(没有转成副本)。运行它,看解的个数和第一个解的长度:
def perm_ref(a):
res = []
path = []
used = [False] * len(a)
def dfs():
if len(path) == len(a):
res.append(path)
return
for i in range(len(a)):
if used[i]:
continue
used[i] = True
path.append(a[i])
dfs()
used[i] = False
path.pop()
dfs()
return res
r = perm_ref([1, 2, 3])
print(str(len(r)) + "/" + str(len(r[0])))
全部评论