编号 题目 解法
1 1. 两数之和 将遍历过的数存到HashMap中
2 2. 两数相加 按序同时迭代两个链表
3 3. 无重复字符的最长子串 滑动窗口
4 4. 寻找两个正序数组的中位数
5 5. 最长回文子串
6 10. 正则表达式匹配
7 11. 盛最多水的容器 双指针
8 15. 三数之和 先排序,左右指针指向边界,同时往中间收缩
9 17. 电话号码的字母组合
10 19. 删除链表的倒数第 N 个结点 快慢指针,快指先走N步,慢指针再开始走
11 20. 有效的括号 遇到左括号则入栈匹配的右括号,遇到右括号则判断是否相等
12 21. 合并两个有序链表 同时遍历两个链表
13 22. 括号生成 dfs
14 23. 合并K个升序链表
15 31. 下一个排列
16 32. 最长有效括号
17 33. 搜索旋转排序数组 二分法,根据不同情况收缩区间
18 34. 在排序数组中查找元素的第一个和最后一个位置
19 39. 组合总和 回溯
20 42. 接雨水
21 46. 全排列 回溯,使用visited标记使用过的元素
22 48. 旋转图像 先水平翻转,在主对角线翻转
23 49. 字母异位词分组 字符串变成字符数组,将数组排序后,重新变成字符串
24 53. 最大子序和 pre = max(pre + x, x); maxAns = max(maxAns, pre);
25 55. 跳跃游戏 能否跳到i,可以变成 j 能否跳到 i
26 56. 合并区间 按左边界升序,判断下个区间的左边界是否大于上区间右边界
27 62. 不同路径 dp[i][j] = dp[i-1][j] + dp[i][j-1]
28 64. 最小路径和 dp[i][j] = Math.min(dp[i-1][j], dp[m][n-1]) +grid[m][n]
29 70. 爬楼梯 dp[i] = dp[i-1] + dp[i-2]
30 72. 编辑距离
31 75. 颜色分类 左右指针,遇到2则交换到右边,遇到0则交换到左边
32 76. 最小覆盖子串
33 78. 子集 回溯法,标记已访问的数据
34 79. 单词搜索 回溯法,从某个点开始,往4个方向遍历,依次寻找字母
35 84. 柱状图中最大的矩形
36 85. 最大矩形
37 94. 二叉树的中序遍历 使用栈
38 96. 不同的二叉搜索树 dp[i] += dp[j - 1] * dp[i - j]
39 98. 验证二叉搜索树 二叉树的中序遍历是升序的
40 101. 对称二叉树 递归比较p.left == q.right && p.right == q.left
41 102. 二叉树的层序遍历 bfs遍历树,每次将当前层加入列表
42 104. 二叉树的最大深度 bfs遍历树,每次层数加1
43 105. 从前序与中序遍历序列构造二叉树 使用中序遍历找到左右子树,然后使用先序遍历递归
44 114. 二叉树展开为链表 递归
45 121. 买卖股票的最佳时机
46 124. 二叉树中的最大路径和
47 128. 最长连续序列 排序,计算每个连续序列长度
48 136. 只出现一次的数字 nums[0] ^= nums[i] a ^ a = 0; a ^ 0 = a
49 139. 单词拆分 dp[j] && wordDictSet.contains(s.substring(j, i))
50 141. 环形链表 遍历链表, 使用HashSet判断是否已经存在即可
51 142. 环形链表 II
52 146. LRU 缓存机制
53 148. 排序链表
54 152. 乘积最大子数组
55 155. 最小栈 两个栈,一个保存数据,一个保存最小值
56 160. 相交链表 嵌套while,外层迭代head1,内存迭代head2
57 169. 多数元素 排序取中间元素
58 198. 打家劫舍 dp[i] = max(dp[i-1], dp[i-2] + nums[i])
59 200. 岛屿数量
60 206. 反转链表 next = cur.next;cur.next = pre;pre = cur;cur = next;
61 207. 课程表
62 208. 实现 Trie (前缀树)
63 215. 数组中的第K个最大元素
64 221. 最大正方形
65 226. 翻转二叉树
66 234. 回文链表
67 236. 二叉树的最近公共祖先
68 238. 除自身以外数组的乘积
69 239. 滑动窗口最大值
70 240. 搜索二维矩阵 II
71 253. 会议室 II
72 279. 完全平方数 完全背包问题
73 283. 移动零
74 287. 寻找重复数
75 297. 二叉树的序列化与反序列化
76 300. 最长递增子序列
77 301. 删除无效的括号
78 309. 最佳买卖股票时机含冷冻期
79 312. 戳气球
80 322. 零钱兑换 完全背包问题
81 337. 打家劫舍 III
82 338. 比特位计数
83 347. 前 K 个高频元素 遍历一次计算次数,排序获取top K
84 394. 字符串解码 使用栈,遇到右括号则开始出栈,解码当前子串
85 399. 除法求值
86 406. 根据身高重建队列
87 416. 分割等和子集
88 437. 路径总和 III
89 438. 找到字符串中所有字母异位词
90 448. 找到所有数组中消失的数字
91 461. 汉明距离
92 494. 目标和
93 538. 把二叉搜索树转换为累加树
94 543. 二叉树的直径
95 560. 和为 K 的子数组
96 581. 最短无序连续子数组
97 617. 合并二叉树
98 621. 任务调度器
99 647. 回文子串
100 739. 每日温度

results matching ""

    No results matching ""