1. 前缀和
- 解决快速求解区域和问题
一维前缀和
le303. 区域和检索 - 数组不可变
二维前缀和
le304. 二维区域和检索 - 矩阵不可变
3. 启发式搜索
广搜可视化
- 广搜走地图解决2个问题,本质上是暴力尝试,判断离起点有多远作为值
- 联通性问题
- 最少步数问题
启发可视化
- 启发式搜索判断的值有2个依据:离起点有多远,预估离终点有多远(欧式距离,2点之间距离公式),举例Astar搜索;对比bfs把距离起点的层数作为估值
- 使用优先队列
- 启发式搜索打印最终的搜索路径
4. LRU最近缓冲系统
le146 LRU 缓存机制
双向链表记录数据,使用时用映射去实现快速访问
- 双向链表,有1个虚拟左指针,1个虚拟右指针,中间是存储每一个缓存数据
- 几个关键点:
- 数据用双向list存
- 如何快速访问?用map建立映射,快速访问
- 插入和删除操作
5. 洛谷 1629邮递员送信
- 用bellman_ford算法,存边的时候用链式前向星
题目
le19. 删除链表的倒数第 N 个结点
le24. 两两交换链表中的节点
- 但凡对链表头节点进行操作的就要搞一个虚拟头节点
le83. 删除排序链表中的重复元素
le82. 删除排序链表中的重复元素 II
le141. 环形链表 (快慢指针)
- 拓展:求环的起点(快慢指针相遇时,将快指针或慢指针移到起点,然后快慢指针一次走一步,重合时就是环的起点)
le160. 相交链表
le202. 快乐数==(链表判环)==
le203. 移除链表元素
- l指向哪些点已经确定ok,r指向未确定的点
le206. 反转链表
le237. 删除链表中的节点
判断入栈元素和出栈是否匹配
- 栈顶元素是否等于出栈的第一个元素,不等一直入栈