递归与循环
分解问题,返回当最小子问题情况的结果,其他问题分解为已知结果和子问题。 对子问题,迭代调用当前函数。
一般可以用递归解决的问题都可以用栈来解决。效率更高
考点
斐波那契数列
青蛙跳台阶
汉诺塔
查找
顺序查找
二分查找
哈希查找
二叉树查找
考点
旋转数组的最小数字
排序
快速排序
归并排序
堆排序
桶排序
回溯法
类似暴力解法
考点
机器人运动范围
动态规划
动态规划(Dynamicprogramming)通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。动态规划常常适用于有重叠子问题和最优子结构性质的问题.大致上,若要解一个给定问题,我们需要解其不同部分(即子问题),再合并子问题的解以得出原问题的解。一旦某个给定子问题的解已经算出,则将其数组存储,以便下次需要同一个子问题解之时直接查表。相当于逆向的递归