leetcode 练习
力扣学习计划
算法
二分查找
- 704
- 278
- 35
双指针
- 977
- 189
- 283
- 167
- 344
- 557
编程能力
基本数据类型
- 1523
- 1491
运算符
- 191
- 1281
条件语句
- 976
- 1779
循环
- 1822
- 1502
- 202
- 1790
数据结构入门
数组
- 217
- 53
- 1
- 88
- 566
- 118
一些经典算法
LRU
- 146 LRU 缓存算法:双向链表 + 字典
AABB 碰撞检测
- 836 矩形重叠,AABB 碰撞检测
- 223 矩形面积
数据结构
- 146 LRU 缓存算法:双向链表 + 字典
- 235/236 LCA 最近公共祖先
- 460 LFU 缓存算法:双向链表
- 239 滑动窗口最大值 单调队列
哈希表
- 001 两数之和
并查集
LCA
模拟
从一个节点向上找,并且标记路径。从另一个节点也向上走,碰到标记,就是最近公共祖先
Tarjan
在深度遍历的同时,用并查集维护节点之间的关系,当访问到某一个查询点时,如果另一个点已经被访问过了,那么查找他所在并查集的顶点就是最近公共祖先。适合多组查询的时候。
图论
最短路
dijkstra
核心就是使用优先队列来维护,保证每次从当前已知的最短路径进行扩展
- 822 dijkstra
数论
- 1979 gcd 找出数组的最大公约数: 最大公约数,辗转相除法
动态规划
- 813 最大平均值和的分组
- 121 买卖股票的最佳时机
- 1687 从仓库到码头运输箱子 动态规划+单调队列优化
01背包
- 1774 最接近目标价格的甜点成本
算法
二分查找
https://segmentfault.com/a/1190000016825704
- 704 最基本的二份
- 035
- 278
字符串相关
- 028 KMP 字符串匹配