1、dfs结束条件,即搜索到合适解了。
2、剪枝。如果继续搜索不可能有解,则返回。
3、继续深度搜索。
3.1考虑搜索时,还可以向上搜索吗?如果不能向上搜索,则在dfs函数参数中设置start参数,表示搜索的起始位置。
3.2 考虑是否需要回退。根据题意具体来判断。
题目实例:
combination sum:https://oj.leetcode.com/problems/combination-sum/
N-Queens:https://oj.leetcode.com/problems/n-queens/
Restore ip addresses:https://oj.leetcode.com/problems/restore-ip-addresses/