回溯算法的定义:回溯算法也叫试探法,它是一种系统地搜索问题的解的方法。回溯算法的基本思想是:从一条路往前走,能进则进,不能进则退回来,换一条路再试。

    回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。

    递归函数模板,包含以下三个部分:

    1. 出口。满足条件才将结果加入到结果集中,同时跳出递归,否则会形成死循环,一般放在函数的开头。
    2. 递归函数的参数。递归操作是处理下一次数据的过程,没有参数,很难从下一次回溯到当前操作。
    3. 递归函数的处理过程。具体的每次处理数据的逻辑。