算法整理
面试常见
逆序链表求和
- 注意判空
- 注意最后的进位,可能需要创建新的节点
- 注意返回.next
- 注意返回结果的顺序
每一个数字右侧第一个大于自己的数字
- 栈记录索引
- 遍历的时候若小于栈顶索引的元素,则入栈,若大于,则出栈并对结果数组中这个位置赋值。
顺时针遍历二维数组
- 注意判空
- 注意退出条件
链表每k个节点倒序。
- 链表reverse作为方法
- 计数,>=k的时候end.next =null摘取一块链表,然后reverse,再拼接回去。
排序
- 快速排序
动态规划
- LCS(最长公共子序列)
- 最长连续公共子序列
- 最长递增公共子序列
- 一组数字,求特定和有多少方案
蓄水问题
https://blog.csdn.net/mw_nice/article/details/82663857
思维规律
- 复杂问题分解为相同的若干简单子问题。
- 从两端同时开始遍历,两个指针移动需要一定判定条件,如哪边更小,移动哪边。
- 正向考虑、逆向考虑。