人的天性
- 避难趋易
- 急于求成
数组
- 二分法
- 双指针
- 快慢指针:快指针判断,慢指针更新
- 左右指针
- 滑动窗口
链表
- 种类:单链表,双链表,循环链表
- 例题
- 203 移除链表元素
- 虚拟头节点
- 707 设计链表
- 206 反转链表
- 24 两两交换链表中的节点
- 19 删除链表的倒数第N个节点
- 160 相交链表
- 142 环形链表II
- 判断是否有环:快慢指针
- 203 移除链表元素
哈希表
- 场景
- 查找时间复杂度: O ( 1 ) O(1) O(1)
- 查找元素是否在数组、字符串中
- 例题
字符串
双指针
栈与队列
- 例题
- 232 用栈实现队列
- 注意pop和peek操作(倒来倒去)
- 225 用队列实现栈
- 注意push操作(挪来挪去)
- 20 有效的括号
- 1047 删除字符串中的所有相邻重复项
- 150 逆波兰表达式求值
- 239 滑动窗口最大值
- 单调队列的实现,offer, poll, peek
- 232 用栈实现队列
数据库
- 查询
- 连接
- join, left join, right join, on
- 1378 使用唯一标识码替换员工ID
- 聚合函数
- avg, sum, count, max, min, round, ceil, floor
- 620 有趣的电影
- 分组和排序
- group by, having, order by, asc/desc
- 2356 每位教师所教授的科目种类的数量
- 高级查询和连接
- 子查询