也可作为刷题顺序复习
动态规划篇
案例:
一句话总结:第 i 个状态可以由第 i – 1 个状态和第 i – 2 个状态通过相加得到
扩展:
矩阵图类的动态规划(二维数组):
一句话总结:当前位置所有路径的和可以拆分为从上方下来的所有路径的和加从左边来的所有路径的和
一句话总结:如果当前有障碍物,直接将其路径和置为0
一句话总结:逆推回去,上面一层某个点的路径最小值等于下一层与之相关联的点的最小值与当前值的和
一句话总结:判断是否构成最大正方形只需要计算该点的上方、左方、左上方的点为右下角构成的大正方形的边的最小值,如图所示:
其他(一位数组):
一句话总结:寻找子序列最大值比较好的思路转换是先确定以 i 为下标结尾的子序列的最大值
数组与字符串
一句话总结:数组适合查询,链表适合增删
一句话总结:快慢指针与递归的结合
一句话总结:栈最大的特点:处理完上一次的操作后,能在O(1)的时间内查找到更前一次的操作
一句话总结:对于快慢指针在插入排序中的运用
一句话总结:Manacher 算法可以将“最长回文子串”问题复杂度降到O(N),而且不用判断回文子串字符个数的奇偶