Principle 自己能在面试中A4纸写出来的代码才是好代码,不要一味追求复杂度低的代码,如果写都写不出来更不用谈复杂度。 第一遍先大概粗过一遍题目思路,第二遍再刷代码。 标注出不熟悉的题目,隔天复习,加强记忆。 数组 数学 字符串 链表 二叉树 回溯、搜索 动态规划 堆栈快排等 其他 数组 Description Solution 287. 寻找重复数 hashmap、排序、二分变形 283. 移动零 双指针、冒泡 剑指 Offer 50. 第一个只出现一次的字符 哈希 1. 两数之和 哈希 167. 两数之和 II - 输入有序数组、剑指 Offer 57. 和为s的两个数字 哈希或双指针 !!!581. 最短无序连续子数组 双指针 88. 合并两个有序数组 双指针 977. 有序数组的平方 !!! 75. 颜色分类 荷兰旗问题 !!!334. 递增的三元子序列 三指针 --------------------------------------------- 剑指 Offer 57 - II. 和为s的连续正数序列 滑动窗口 集合交集 哈希、排序 剑指 Offer 66. 构建乘积数组、LeetCode 238. 除自身以外数组的乘积 乘积=当前数左边的乘积*当前数右边的乘积 Leetcode 35. 搜索插入位置 二分 4. 寻找两个正序数组的中位数 二分 34. 在排序数组中查找元素的第一个和最后一个位置 二分 153. 寻找旋转排序数组中的最小值 旋转数组查找 剑指 Offer 11. 旋转数组的最小数字、154. 寻找旋转排序数组中的最小值 II 33. 搜索旋转排序数组 剑指 Offer 53 - I. 在排序数组中查找数字 I 两次二分 剑指 Offer 53 - II. 0~n-1中缺失的数字 二分 1300. 转变数组后最接近目标值的数组和 枚举+二分 剑指 Offer 59 - I. 滑动窗口的最大值、239. 滑动窗口最大值 二分 162. 寻找峰值 二分变形 410. 分割数组的最大值 二分变形 剑指 Offer 04. 二维数组中的查找、240. 搜索二维矩阵 II 二分变形 数组超过一半的数字/求众数 hashmap、排序 旋转数组 三次旋转 统计邻居状态 neighbor函数、CNN卷积 救生艇 贪心+双指针 ----------------------------------- 先排序后操作 56. 合并区间 排序后贪心 57. 插入区间 合并区间 406. 根据身高重建队列 先排序后插入 452. 用最少数量的箭引爆气球 先排序后贪心 Python自定义排序 模板 1030. 距离顺序排列矩阵单元格 自定义排序 164. 最大间距 桶排序 ----------------------------------- 跳跃游戏 贪心 1024. 视频拼接 区间合并贪心 盛最多水的容器 贪心、双指针 统计「优美子数组」 组合个数 剑指 Offer 48. 最长不含重复字符的子字符串、3. 无重复字符的最长子串 滑动窗口或者以s[i]结尾的dp 209. 长度最小的子数组 和为K的子数组、连续的子数组和、和可被 K 整除的子数组 前缀和 ----------------------------------------- 单调栈 739. 每日温度、496. 下一个更大元素 I 84. 柱状图中最大的矩形 239. 滑动窗口最大值 84. 柱状图中最大的矩形 85. 最大矩形 42. 接雨水 ------------------------------------------- 求1+2+…+n 递归求和 128. 最长连续序列 集合 单词接龙 构造BFS 最佳观光组合 迭代 15. 三数之和、16. 最接近的三数之和 回溯或者双指针 ------------------------------------ 原地哈希 41. 缺失的第一个正数 剑指 Offer 03. 数组中重复的数字 442. 数组中重复的数据 448. 找到所有数组中消失的数字