1.深度优先搜索背景
- 深度优先搜索适用很多题目,但是,深度优先搜索的时间复杂度是O(2^n)的。因此,我们一般看到题目数据比较小的时候,并且题目要求求所有的情况,我们通常会考虑深度优先搜索。但是如果题目题目比较复杂,但是又没有其他合适算法的时候,此时,我们需要结合其他知识或者想法进行优化深度优先算法。
2.普通的深度优先搜索应用
- 牛牛的背包问题:这道题实际上也是01背包问题求出所有的方案数。但是假设用动态规划,则内存明显不够,我们注意到该题可选择的物品数是比较少的,所以我们可以考虑采用深度优先搜索来解决。这道题的坑点是,如果所有物品加起来体积没有超过背包数,则可以直接求结果(不用此方法的话超时)
- 牌型种类
- 分割方格