0%

回溯模版

回溯模版总结

适用于结果路径里元素不可重复使用

1
2
3
4
5
6
7
8
9
创建空slice
for 选择 in 选择列表:
# 做选择
将该选择从选择列表移除
slice = slice[1:]
backtrack(路径.append, 选择列表)
# 撤销选择
slice = slice[:len(slice) - 1]
将该选择再加入选择列表

适用于结果路径里元素可重复使用,排列顺序不能重复

1
2
3
4
5
6
7
8
9
10
创建空slice
for 选择 in 选择列表:
# 做选择
将该选择从选择列表移除
num := slice[i]
slice = append(slice[:i], slice[i+1:]...)
backtrack(路径.append, 选择列表)
# 撤销选择
slice = append(slice[:i], append([]int{num}, slice[i:]...)...)
将该选择再加入选择列表