回溯(dfs)

result = []  
def backtrack(路径, 选择列表):  
    if 满足结束条件:  
        result.add(路径)  
        return  

    for 选择 in 选择列表:  
        做选择  
        backtrack(路径, 选择列表)  
        撤销选择

由递归函数的定义可以看见,【路径】是函数的形参,随着函数的入栈在不停地添加值,或出栈而删除值,路径就像一根触手,去试探地触摸每一个结点(做决策),如果不满足要求,则将触手收回来,去摸另一个结点,因为这种回收动作的特性,这种方法称之为回溯。

Copyright © qgao 2021-* all right reserved,powered by Gitbook该文件修订时间: 2022-06-06 16:56:43

results matching ""

    No results matching ""