跳至主要內容

算法

大约 13 分钟

算法

1 算法入门

  • 简单 17
  • 中等 14
  • 困难 0
题目难度代码
第 1 天 二分查找
704. 二分查找open in new window简单javaopen in new window
278. 第一个错误的版本open in new window简单javaopen in new window
35. 搜索插入位置open in new window简单javaopen in new window
第 2 天 双指针
977. 有序数组的平方open in new window简单javaopen in new window
189. 轮转数组open in new window中等javaopen in new window
第 3 天 双指针
283. 移动零open in new window简单javaopen in new window
167. 两数之和 II - 输入有序数组open in new window中等javaopen in new window
第 4 天 双指针
344. 反转字符串open in new window简单javaopen in new window
557. 反转字符串中的单词 IIIopen in new window简单javaopen in new window
第 5 天 双指针
876. 链表的中间结点open in new window简单javaopen in new window
19. 删除链表的倒数第 N 个结点open in new window中等javaopen in new window
第 6 天 滑动窗口
3. 无重复字符的最长子串open in new window中等javaopen in new window
567. 字符串的排列open in new window中等javaopen in new window
第 7 天 广度优先搜索 / 深度优先搜索
733. 图像渲染open in new window简单javaopen in new window
695. 岛屿的最大面积open in new window中等javaopen in new window
第 8 天 广度优先搜索 / 深度优先搜索
617. 合并二叉树open in new window简单javaopen in new window
116. 填充每个节点的下一个右侧节点指针open in new window中等javaopen in new window
第 9 天 广度优先搜索 / 深度优先搜索
542. 01 矩阵open in new window中等javaopen in new window
994. 腐烂的橘子open in new window中等javaopen in new window
第 10 天 递归 / 回溯
21. 合并两个有序链表open in new window简单javaopen in new window
206. 反转链表open in new window简单javaopen in new window
第 11 天 递归 / 回溯
77. 组合open in new window中等javaopen in new window
46. 全排列open in new window中等javaopen in new window
784. 字母大小写全排列open in new window中等javaopen in new window
第 12 天 动态规划
70. 爬楼梯open in new window简单javaopen in new window
198. 打家劫舍open in new window中等javaopen in new window
120. 三角形最小路径和open in new window中等javaopen in new window
第 13 天 位运算
231. 2 的幂open in new window简单javaopen in new window
191. 位 1 的个数open in new window简单javaopen in new window
第 14 天 位运算
190. 颠倒二进制位open in new window简单javaopen in new window
136. 只出现一次的数字open in new window简单javaopen in new window

 

2 算法基础

  • 简单 3
  • 中等 42
  • 困难 2
题目难度代码
第 1 天 二分查找
34. 在排序数组中查找元素的第一个和最后一个位置open in new window中等javaopen in new window
33. 搜索旋转排序数组open in new window中等javaopen in new window
74. 搜索二维矩阵open in new window中等javaopen in new window
第 2 天 二分查找
153. 寻找旋转排序数组中的最小值open in new window中等javaopen in new window
162. 寻找峰值open in new window中等javaopen in new window
第 3 天 双指针
82. 删除排序链表中的重复元素 IIopen in new window中等javaopen in new window
15. 三数之和open in new window中等javaopen in new window
第 4 天 双指针
844. 比较含退格的字符串open in new window简单javaopen in new window
986. 区间列表的交集open in new window中等javaopen in new window
11. 盛最多水的容器open in new window中等javaopen in new window
第 5 天 滑动窗口
438. 找到字符串中所有字母异位词open in new window中等javaopen in new window
713. 乘积小于 K 的子数组open in new window中等javaopen in new window
209. 长度最小的子数组open in new window中等javaopen in new window
第 6 天 广度优先搜索 / 深度优先搜索
200. 岛屿数量open in new window中等javaopen in new window
547. 省份数量open in new window中等javaopen in new window
第 7 天 广度优先搜索 / 深度优先搜索
117. 填充每个节点的下一个右侧节点指针 IIopen in new window中等javaopen in new window
572. 另一棵树的子树open in new window简单javaopen in new window
第 8 天 广度优先搜索 / 深度优先搜索
1091. 二进制矩阵中的最短路径open in new window中等javaopen in new window
130. 被围绕的区域open in new window中等javaopen in new window
797. 所有可能的路径open in new window中等javaopen in new window
第 9 天 递归 / 回溯
78. 子集open in new window中等javaopen in new window
90. 子集 IIopen in new window中等javaopen in new window
第 10 天 递归 / 回溯
47. 全排列 IIopen in new window中等javaopen in new window
39. 组合总和open in new window中等javaopen in new window
40. 组合总和 IIopen in new window中等javaopen in new window
第 11 天 递归 / 回溯
17. 电话号码的字母组合open in new window中等javaopen in new window
22. 括号生成open in new window中等javaopen in new window
79. 单词搜索open in new window中等javaopen in new window
第 12 天 动态规划
213. 打家劫舍 IIopen in new window中等javaopen in new window
55. 跳跃游戏open in new window中等javaopen in new window
第 13 天 动态规划
45. 跳跃游戏 IIopen in new window中等javaopen in new window
62. 不同路径open in new window中等javaopen in new window
第 14 天 动态规划
5. 最长回文子串open in new window中等javaopen in new window
413. 等差数列划分open in new window中等javaopen in new window
第 15 天 动态规划
91. 解码方法open in new window中等javaopen in new window
139. 单词拆分open in new window中等javaopen in new window
第 16 天 动态规划
300. 最长递增子序列open in new window中等javaopen in new window
673. 最长递增子序列的个数open in new window中等javaopen in new window
第 17 天 动态规划
1143. 最长公共子序列open in new window中等javaopen in new window
583. 两个字符串的删除操作open in new window中等javaopen in new window
第 18 天 动态规划
72. 编辑距离open in new window困难javaopen in new window
322. 零钱兑换open in new window中等javaopen in new window
343. 整数拆分open in new window中等javaopen in new window
第 19 天 位运算
201. 数字范围按位与open in new window中等javaopen in new window
第 20 天 其他
384. 打乱数组open in new window中等javaopen in new window
202. 快乐数open in new window简单javaopen in new window
149. 直线上最多的点数open in new window困难javaopen in new window

 

3 $算法进阶

  • 简单 2
  • 中等 34
  • 困难 24
题目难度代码
第 1 天 二分查找
$1060. 有序数组中的缺失元素open in new window 中等javaopen in new window
1901. 找出顶峰元素 IIopen in new window中等javaopen in new window
第 2 天 二分查找
$1231. 分享巧克力open in new window 困难javaopen in new window
$1182. 与目标颜色间的最短距离open in new window 中等javaopen in new window
第 3 天 双指针
$1229. 安排会议日程open in new window 中等javaopen in new window
287. 寻找重复数open in new window中等javaopen in new window
第 4 天 双指针
42. 接雨水open in new window困难javaopen in new window
$1868. 两个行程编码数组的积open in new window 中等javaopen in new window
第 5 天 滑动窗口
$159. 至多包含两个不同字符的最长子串open in new window 中等javaopen in new window
$340. 至多包含 K 个不同字符的最长子串open in new window 中等javaopen in new window
第 6 天 滑动窗口
1004. 最大连续 1 的个数 IIIopen in new window中等javaopen in new window
239. 滑动窗口最大值open in new window困难javaopen in new window
76. 最小覆盖子串open in new window困难javaopen in new window
第 7 天 广度优先搜索 / 深度优先搜索
$286. 墙与门open in new window 中等javaopen in new window
417. 太平洋大西洋水流问题open in new window中等javaopen in new window
第 8 天 广度优先搜索 / 深度优先搜索
$1469. 寻找所有的独生节点open in new window 简单javaopen in new window
$582. 杀掉进程open in new window 中等javaopen in new window
第 9 天 广度优先搜索 / 深度优先搜索
863. 二叉树中所有距离为 K 的结点open in new window中等javaopen in new window
752. 打开转盘锁open in new window中等javaopen in new window
第 10 天 广度优先搜索 / 深度优先搜索
1319. 连通网络的操作次数open in new window中等javaopen in new window
1368. 使网格图至少有一条有效路径的最小代价open in new window困难javaopen in new window
1192. 查找集群内的「关键连接」open in new window困难javaopen in new window
第 11 天 递归 / 回溯
$254. 因子的组合open in new window 中等javaopen in new window
394. 字符串解码open in new window中等javaopen in new window
第 12 天 递归 / 回溯
51. N 皇后open in new window困难javaopen in new window
37. 解数独open in new window困难javaopen in new window
第 13 天 递归 / 回溯
10. 正则表达式匹配open in new window困难javaopen in new window
241. 为运算表达式设计优先级open in new window中等javaopen in new window
第 14 天 递归 / 回溯
301. 删除无效的括号open in new window困难javaopen in new window
$489. 扫地机器人open in new window 困难javaopen in new window
第 15 天 分治
53. 最大子数组和open in new window简单javaopen in new window
4. 寻找两个正序数组的中位数open in new window困难javaopen in new window
315. 计算右侧小于当前元素的个数open in new window困难javaopen in new window
第 16 天 动态规划
309. 最佳买卖股票时机含冷冻期open in new window中等javaopen in new window
714. 买卖股票的最佳时机含手续费open in new window中等javaopen in new window
第 17 天 动态规划
410. 分割数组的最大值open in new window困难javaopen in new window
337. 打家劫舍 IIIopen in new window中等javaopen in new window
第 18 天 动态规划
221. 最大正方形open in new window中等javaopen in new window
85. 最大矩形open in new window困难javaopen in new window
第 19 天 动态规划
486. 预测赢家open in new window中等javaopen in new window
131. 分割回文串open in new window中等javaopen in new window
132. 分割回文串 IIopen in new window困难javaopen in new window
第 20 天 动态规划
416. 分割等和子集open in new window中等javaopen in new window
983. 最低票价open in new window中等javaopen in new window
第 21 天 动态规划
123. 买卖股票的最佳时机 IIIopen in new window困难javaopen in new window
174. 地下城游戏open in new window困难javaopen in new window
第 22 天 拓扑排序
207. 课程表open in new window中等javaopen in new window
210. 课程表 IIopen in new window中等javaopen in new window
第 23 天 拓扑排序
310. 最小高度树open in new window中等javaopen in new window
329. 矩阵中的最长递增路径open in new window困难javaopen in new window
第 24 天 拓扑排序
$1136. 平行课程open in new window 中等javaopen in new window
$269. 火星词典open in new window 困难javaopen in new window
第 25 天 位操作
260. 只出现一次的数字 IIIopen in new window中等javaopen in new window
864. 获取所有钥匙的最短路径open in new window困难javaopen in new window
995. K 连续位的最小翻转次数open in new window困难javaopen in new window
第 26 天 其他
1396. 设计地铁系统open in new window中等javaopen in new window
146. LRU 缓存open in new window中等javaopen in new window
第 27 天 其他
981. 基于时间的键值存储open in new window中等javaopen in new window
715. Range 模块open in new window困难javaopen in new window
460. LFU 缓存open in new window困难javaopen in new window

 

(全文完)