✨动态规划:
- 动态规划是指将一个复杂的问题分解成多个重叠的子问题来解决,最典型的是我们遇到的斐波那切数列,我们要求其第n位的数首先必须知道其第n-1位与其第n-2为的结果,然后将其相加得到,同理其第n-1位也是一样
✨分而治之:
- 分而治之与动态规划非常相似,区别在于动态规划是将一个问题划分为为多个重叠的子问题来解决,而分而治之是将一个大问题分解为多个相互独立的子问题来解决,如18.二叉树的镜像,将每一个节点的左子树换为右子树
✨贪心:
- 不考虑全局的情况下,通过每个阶段的局部最优选择从而达到全局最佳,如67.剪绳子,减取长度的最大乘积为剪为3,如果可以划分到4解乘以4,可以划分到2就乘以2
✨回溯:
- 回溯应该是这几种算法里最难的一种,回溯要不断的判断,如果当前不满足则返回到上一次的结果中再判断,典型的题目目前有三个24.二叉树中和为某一值的路径,27.字符串的排列,65.矩阵中的路径