回溯算法本质上也是一种暴力穷举算法,可以理解为:每个回溯问题就是遍历一个决策树的过程,每个叶子节点都存在一个数值,寻找叶子结点是否为满足条件的值,然后收集全部满足条件的值的过程就是回溯算法。
排列、组合和子集问题,无非就是寻找决策树叶子节点的过程,只是这三个问题对树枝的遍历和剪/加树枝有稍微变化罢了,然后在区分一下三种边界条件:元素无重复不可复选、元素无重复可复选、元素可重复不可复选。
回溯算法本质上也是一种暴力穷举算法,可以理解为:每个回溯问题就是遍历一个决策树的过程,每个叶子节点都存在一个数值,寻找叶子结点是否为满足条件的值,然后收集全部满足条件的值的过程就是回溯算法。
排列、组合和子集问题,无非就是寻找决策树叶子节点的过程,只是这三个问题对树枝的遍历和剪/加树枝有稍微变化罢了,然后在区分一下三种边界条件:元素无重复不可复选、元素无重复可复选、元素可重复不可复选。