我理解的回溯算法是一种比较暴力的穷举算法。他有一个比较固定的结构:
if 条件语句:
跳出循环
for 条件列表:
做选择
backtrack
撤销选择
重点是后半部分的for循环。要理解这个公式,需要结合树的模型。一个父节点可以有多个子节点,每次循环选择一个子节点,然后剩余节点作为下次循环的条件列表,循环完成后一步步撤销。回溯算法比较经典的使用场景,一般用于全排列,N皇后,九宫格等。
我理解的回溯算法是一种比较暴力的穷举算法。他有一个比较固定的结构:
if 条件语句:
跳出循环
for 条件列表:
做选择
backtrack
撤销选择
重点是后半部分的for循环。要理解这个公式,需要结合树的模型。一个父节点可以有多个子节点,每次循环选择一个子节点,然后剩余节点作为下次循环的条件列表,循环完成后一步步撤销。回溯算法比较经典的使用场景,一般用于全排列,N皇后,九宫格等。
本文标题:回溯算法
本文链接:https://www.haomeiwen.com/subject/ftcdmhtx.html
网友评论