数据结构
- HashSet
- HashTable
- TreeSet
- PriorityQueue
- Stack
- 下一个更大/小的
- 「第一个一个大于 xxx」或者「第一个小于 xxx」
- 固定区间内最值
- 后面第一个比我大的
- 正向遍历数组
- 从头至尾单调递减(因为遇到小的弹出,遇到大于等于的停下,所以从头到尾递减)
- 遇到比自己小的弹出,此时被弹出元素找到后面第一个比他大的
- 最后队列中剩下的元素就是后面没有比他大的
- 后面第一个比我小的
- 正向遍历数组
- 从头到尾单调递增(因为遇到大的弹出,遇到小于等于的停下,所以从头到尾递增)
- 遇到比自己大的弹出,此时被弹出元素找到后面第一个比他小的
- 最后队列中剩下的元素就是后面没有比他小的
算法
- 双指针
- 相遇指针:two sum,接雨水
- 快慢指针
- 滑动窗口
- 满足某个条件的连续数组的最大或者最小长度
- 二分法
- 存在可以除去一半解空间的判断方法,比如有序数组。
- 前缀和
- 一段连续数组和为x,记得加个0代表空数组。
- 用于构建有序数组从而进行二分。
- 贪心
- 动态规划
- 回溯
- DFS
- BFS
- 拓扑排序 - DFS/BFS
- 位运算
- TreeSet/Map
去重
- boolean visited[] 数组
- HashSet
Tricky
StringBuilder deleteCharAt