Leetcode 题解(目前已更新至第300题)

题型分类刷,通关Leetcode!

  • 数据结构
    • 链表
    • 队列
    • 二叉树
    • 哈希表/散列表
    • 字符串
  • 算法
    • 模拟
    • 排序
    • 二分
    • 双指针
    • 前缀和
    • 搜索
    • 动态规划
    • 贪心
  • 数学
    • 完全平方
    • 位运算
    • 质数
    • 容斥原理
    • 同余
    • 博弈论

数据结构

链表

19. 删除链表的倒数第 N 个结点
21. 合并两个有序链表
23 合并K个升序链表
24. 两两交换链表中的节点
25. K 个一组翻转链表
61 旋转链表
82. 删除排序链表中的重复元素 II
83. 删除排序链表中的重复元素
86. 分隔链表
92. 反转链表 II
138. 复制带随机指针的链表
141. 环形链表
142. 环形链表 II
143. 重排链表
146. LRU 缓存机制
147. 对链表进行插入排序
148. 排序链表
160. 相交链表
202. 快乐数
203. 移除链表元素
206. 反转链表
234. 回文链表
237. 删除链表中的节点

20. 有效的括号
84. 柱状图中最大的矩形
85. 最大矩形
150. 逆波兰表达式求值
155. 最小栈
224. 基本计算器
227. 基本计算器 II
232. 用栈实现队列

队列

30 串联所有单词的字串
220. 存在重复元素 III
225. 用队列实现栈
239. 滑动窗口最大值

二叉树

94. 二叉树的中序遍历
95. 不同的二叉搜索树 Ⅱ
96. 不同的二叉搜索树
98. 验证二叉搜索树
99. 恢复二叉搜索树
100. 相同的树
101. 对称二叉树
102. 二叉树的层序遍历
103. 二叉树的锯齿形层序遍历
104. 二叉树的最大深度
105. 从前序与中序遍历序列构造二叉树
106. 从中序与后序遍历序列构造二叉树
107. 二叉树的层序遍历 II
108. 将有序数组转换为二叉搜索树
109. 有序链表转换二叉搜索树
110. 平衡二叉树
111. 二叉树的最小深度
112. 路径总和
113. 路径总和 II
114. 二叉树展开为链表
115. 不同的子序列
116. 填充每个节点的下一个右侧节点指针
117. 填充每个节点的下一个右侧节点指针 II
124. 二叉树中的最大路径和
129. 求根节点到叶节点数字之和
144. 二叉树的前序遍历
145. 二叉树的后序遍历
173. 二叉搜索树迭代器
199. 二叉树的右视图
218. 天际线问题——(临时)
222. 完全二叉树的节点个数
226. 翻转二叉树
230. 二叉搜索树中第K小的元素
235. 二叉搜索树的最近公共祖先
236. 二叉树的最近公共祖先
257. 二叉树的所有路径
297. 二叉树的序列化与反序列化

哈希表/散列表

1. 两数之和
41. 缺失的第一个正数
128. 最长连续序列
167. 两数之和 II - 输入有序数组
187. 重复的DNA序列
205. 同构字符串
217. 存在重复元素
219. 存在重复元素 II
242. 有效的字母异位词
290. 单词规律
299. 猜数字游戏

295. 数据流的中位数

字符串

28. 实现 strStr()
65. 有效数字
71. 简化路径
125. 验证回文串
151. 翻转字符串里的单词
208. 实现 Trie (前缀树)
211. 添加与搜索单词 - 数据结构设计
212. 单词搜索 II
214. 最短回文串

207. 课程表
210. 课程表 II

算法

模拟

2. 两数相加
6. Z 字形变换
7. 整数反转
8. 字符串转换整数 (atoi)
9. 回文数
12. 整数转罗马数字
13. 罗马数字转整数
42. 接雨水
43. 字符串相乘
48. 旋转图像
54. 螺旋矩阵
58. 最后一个单词的长度
59. 螺旋矩阵 II
66. 加一
67. 二进制求和
73. 矩阵置零
89. 格雷编码
166. 分数到小数
169. 多数元素
189. 旋转数组
229. 求众数 II
240. 搜索二维矩阵 II
268. 丢失的数字
273. 整数转换英文表示
283. 移动零
284. 窥探迭代器
289. 生命游戏

排序

4 寻找两个正序数组的中位数
49. 字母异位词分组
75. 颜色分类
88. 合并两个有序数组
164. 最大间距
179. 最大数
215. 数组中的第K个最大元素
274. H 指数

二分

33. 搜索旋转排序数组
34. 在排序数组中查找元素的第一个和最后一个位置
35. 搜索插入位置
69. Sqrt(x)
74. 搜索二维矩阵
81. 搜索旋转排序数组 II
153. 寻找旋转排序数组中的最小值
154. 寻找旋转排序数组中的最小值 II
162. 寻找峰值
275. H 指数 II
278. 第一个错误的版本
287. 寻找重复数

双指针

3. 无重复字符的最长子串
11. 盛最多水的容器
26. 删除有序数组中的重复项
27. 移除元素
32. 最长有效括号
38. 外观数列
68. 文本左右对齐
76. 最小覆盖子串
80. 删除有序数组中的重复项 II
134. 加油站
165. 比较版本号
209. 长度最小的子数组
228. 汇总区间

前缀和

238. 除自身以外数组的乘积

搜索

5. 最长回文子串
14. 最长公共前缀
15. 三数之和
16. 最接近的三数之和
17. 电话号码的字母
18. 四数之和
22. 括号生成
36. 有效的数独
37. 解数独
39. 组合总和
40. 组合总和 II
46. 全排列
47. 全排列 II
51-52. N皇后问题
60. 排列序列
77. 组合
78. 子集
79. 单词搜索
90. 子集 II
93. 复原 IP 地址
126. 单词接龙 II
127. 单词接龙
130. 被围绕的区域
133. 克隆图
149. 直线上最多的点数
200. 岛屿数量
216. 组合总和 III
241. 为运算表达式设计优先级
282. 给表达式添加运算符

动态规划

10. 正则表达式匹配
44. 通配符匹配
45. 跳跃游戏 II
53. 最大子序和
55. 跳跃游戏
62-63. 不同路径
64. 最小路径和
70. 爬楼梯
72. 编辑距离
87. 扰乱字符串
91. 解码方法
97. 交错字符串
118. 杨辉三角
119. 杨辉三角 II
120. 三角形最小路径和
121. 买卖股票的最佳时机
122. 买卖股票的最佳时机 II
123. 买卖股票的最佳时机 III
131. 分割回文串
132. 分割回文串 II
135. 分发糖果
139. 单词拆分
140. 单词拆分 II
152. 乘积最大子数组
174. 地下城游戏
188. 买卖股票的最佳时机 IV
198. 打家劫舍
213. 打家劫舍 II
221. 最大正方形
233. 数字 1 的个数

贪心

56 区间合并
57 插入区间
300. 最长递增子序列

数学

完全平方

279. 完全平方数

位运算

29. 两数相除
50. Pow(x, n)
136. 只出现一次的数字
137. 只出现一次的数字 II
168. Excel表列名称
171. Excel 表列序号
190. 颠倒二进制位
191. 位1的个数
201. 数字范围按位与
231. 2 的幂
260. 只出现一次的数字 III

质数

172. 阶乘后的零
204. 计数质数
263. 丑数
264. 丑数 II

容斥原理

223. 矩形面积

同余

258. 各位相加

博弈论

292. Nim 游戏

你可能感兴趣的:(算法,leetcode,算法,数据结构,1024程序员节)