--- tag: algorithm --- # 数组 1. [二分查找](https://leetcode.cn/problems/binary-search/) 进度:仅完成主题干。 注意: - 二分查找时注意区间的边界,当取 `[left, right]` 时,当 `left == right` 是有意义的,所以循环的条件为 `while(left < right)`;同理,当取 `[left, right)` 时,循环的条件为 `while(left <= right)`。 2. [移除元素](https://leetcode.cn/problems/remove-element/) 进度:仅完成主题干。 解题:双指针法 - 快慢指针法 - 相向指针法(√):减少元素移动次数 3. [有序数组的平方](https://leetcode.cn/problems/minimum-size-subarray-sum/) 进度:完成主题干。 注意: - 指针可以从中间向两侧扫描,最好从两侧向中间扫描。 4. 长度最小的子数组 进度:仅完成主题干。 解题:滑动窗口。 5. [螺旋矩阵II](https://leetcode.cn/problems/spiral-matrix-ii/) 进度:仅完成主题干。 解题:找规律。 # 链表 | 序号 | 章节 | 进度 | 解题 | 注意 | 回顾 | | ---- | --------------------- | ---- | ----------------------------------- | ------------------ | ---- | | 1 | 移除链表元素 | 完成 | | 注意是否存在头节点 | | | 2 | 设计链表 | 完成 | | | | | 3 | 翻转链表 | 完成 | 1.双指针
2. 递归
3.头尾插法 | 重新写第一二种 | √ | | 4 | 两两交换链表节点 | 完成 | 画图确定指针先后顺序 | | √ | | 5 | 删除链表倒数第N个节点 | 完成 | 双指针 | | | | 6 | 链表相交 | 完成 | 找到相等的长度后再开始判断 | | √ | | 7 | 环形链表II | 完成 | 双指针+环内的数学等量关系 | 重新做题 | √ | # 哈希表 | 序号 | 章节 | 进度 | 解题 | 注意 | 回顾 | | ---- | ---------------- | ---- | ------ | --------------------------- | ---- | | 1 | 有效的字母异位词 | 完成 | 哈希表 | 注意key、value的意义 | | | 2 | 两个数组的交集 | 完成 | 集合 | | | | 3 | 快乐数 | 完成 | 集合 | 注意条件:不为1必然出现循环 | | | 4 | 两数之和 | 完成 | 哈希表 | | | # 栈和队列 | 序号 | 章节 | 进度 | 解题 | 注意 | 回顾 | | ---- | ---------------------------- | ------ | ---------- | ---- | ---- | | 1 | 栈实现队列 | 完成 | | | | | 2 | 队列实现栈 | 完成 | | | | | 3 | 有效的括号 | 完成 | | | | | 4 | 删除字符串中的所有相邻重复项 | 完成 | | | | | 5 | 逆波兰表达式 | 完成 | | | | | 6 | 滑动窗口最大值 | 未完成 | 有序队列 | | √ | | 7 | 前k个高频元素 | 未完成 | 优先级队列 | | √ | # 贪心算法 从局部最优解推全局最优解。做题时最主要就是找反例证明贪心算法不奏效,否则大部分可以使用贪心算法。 | 序号 | 章节 | 进度 | 解题 | 注意 | 回顾 | | ---- | -------- | ---- | ---- | ----------------------------- | ---- | | 1 | 分发饼干 | 完成 | | 大胃口吃大饼干/小饼干喂小胃口 | √ | | 2 | 摆动序列 | | | | |