leetcode todolist

数组

数组的改变、移动

453. 最小移动次数使数组元素相等

665. 非递减数列 

283. 移动零

数组的旋转

189. 旋转数组

396. 旋转函数

统计数组中的元素

645. 错误的集合

697. 数组的度

448. 找到所有数组中消失的数字

442. 数组中重复的数据

41. 缺失的第一个正数

数组的遍历

485. 最大连续1的个数

495. 提莫攻击

414. 第三大的数

628. 三个数的最大乘积

二维数组及滚动数组

118. 杨辉三角

119. 杨辉三角 II

661. 图片平滑器

598. 范围求和 II

419. 甲板上的战舰

特定顺序遍历二维数组

54. 螺旋矩阵

59. 螺旋矩阵 II

498. 对角线遍历

二维数组变换

566. 重塑矩

48. 旋转图像

73. 矩阵置零

289. 生命游戏

前缀和数组

303. 区域和检索 - 数组不可变

304. 二维区域和检索 - 矩阵不可变

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



链表

移除与插入链表元素

707. 设计链表

203. 移除链表元素

237. 删除链表中的节点

19. 删除链表的倒数第 N 个结点

83. 删除排序链表中的重复元素

82. 删除排序链表中的重复元素 II

链表的遍历

430. 扁平化多级双向链表

114. 二叉树展开为链表

链表的旋转与反转

61. 旋转链表

24. 两两交换链表中的节点

206. 反转链表

92. 反转链表 II

25. K 个一组翻转链表

链表高精度加法

2. 两数相加

445. 两数相加 II

面试题 02.05. 链表求和

链表的合并

21. 合并两个有序链表

23. 合并K个升序链表

链表中的双指针技巧

86. 分隔链表

19. 删除链表的倒数第 N 个结点

141. 环形链表

142. 环形链表 II

876. 链表的中间结点

143. 重排链表

160. 相交链表

哈希表

哈希表的查找、插入及删除

706. 设计哈希映射

217. 存在重复元素

349. 两个数组的交集

128. 最长连续序列

290. 单词规律

532. 数组中的 k-diff 数对

205. 同构字符串

138. 复制带随机指针的链表

哈希表与索引

1. 两数之和 

599. 两个列表的最小索引总和

219. 存在重复元素 II

哈希表与统计

594. 最长和谐子序列

350. 两个数组的交集 II

554. 砖墙

609. 在系统中查找重复文件

454. 四数相加 II

哈希表与前缀和

560. 和为 K 的子数组

523. 连续的子数组和

525. 连续数组

字符串

字符

520. 检测大写字母

回文串的定义

125. 验证回文串

公共前缀

14. 最长公共前缀

单词

434. 字符串中的单词数

58. 最后一个单词的长度

字符串的反转

344. 反转字符串

541. 反转字符串 II

557. 反转字符串中的单词 III

151. 翻转字符串里的单词

字符的统计

387. 字符串中的第一个唯一字符

389. 找不同

383. 赎金信

242. 有效的字母异位词

49. 字母异位词分组

451. 根据字符出现频率排序

423. 从英文中重建数字

657. 机器人能否返回原点

551. 学生出勤记录 I

696. 计数二进制子串

467. 环绕字符串中唯一的子字符串

数字与字符串间转换

299. 猜数字游戏

412. Fizz Buzz

506. 相对名次

539. 最小时间差

553. 最优除法

537. 复数乘法

592. 分数加减运算

640. 求解方程

38. 外观数列

443. 压缩字符串

8. 字符串转换整数 (atoi)

13. 罗马数字转整数

12. 整数转罗马数字

273. 整数转换英文表示

165. 比较版本号

481. 神奇字符串

子序列

392. 判断子序列

524. 通过删除字母匹配到字典里最长单词

521. 最长特殊序列 Ⅰ

522. 最长特殊序列 II

高精度运算

66. 加一

67. 二进制求和

415. 字符串相加

43. 字符串相乘

306. 累加数

字符串变换

482. 密钥格式化

6. Z 字形变换

68. 文本左右对齐

字符串匹配

28. 实现 strStr()

686. 重复叠加字符串匹配

459. 重复的子字符串

214. 最短回文串

中心拓展法

5. 最长回文子串

647. 回文子串

二叉树

二叉树的遍历

144. 二叉树的前序遍历

94. 二叉树的中序遍历

145. 二叉树的后序遍历

102. 二叉树的层序遍历

103. 二叉树的锯齿形层序遍历

二叉树的构造与修改

105. 从前序与中序遍历序列构造二叉树

106. 从中序与后序遍历序列构造二叉树

889. 根据前序和后序遍历构造二叉树

226. 翻转二叉树

617. 合并二叉树

二叉树的搜索问题

用DFS或BFS均可解决的问题:

513. 找树左下角的值

515. 在每个树行中找最大值

623. 在二叉树中增加一行

只能用DFS解决的问题:

199. 二叉树的右视图

需要两次搜索才能解决的问题:

655. 输出二叉树

865. 具有所有最深节点的最小子树

834. 树中距离之和 

1339. 分裂二叉树的最大乘积

 863. 二叉树中所有距离为 K 的结点

101. 对称二叉树

 222. 完全二叉树的节点个数

404. 左叶子之和 

513. 找树左下角的值

二叉树的路径问题

自顶向下路径问题:

257. 二叉树的所有路径 

面试题04.12.求和路径 

112.路径总和 

437. 路径总和 III 

988. 从叶结点开始的最小字符串

 非自顶向下路径问题:

124. 二叉树中的最大路径和

687. 最长同值路径

543. 二叉树的直径

二叉树属性问题

104. 二叉树的最大深度 

111. 二叉树的最小深度 

222. 完全二叉树的节点个数 

543. 二叉树的直径

二叉树公共祖先问题

235. 二叉搜索树的最近公共祖先 

1483. 树节点的第 K 个祖先

二叉搜索树

98.验证二叉搜索树 

173. 二叉搜索树迭代器 

701. 二叉搜索树中的插入操作 

669. 修剪二叉搜索树 

450. 删除二叉搜索树中的节点 

230. 二叉搜索树中第K小的元素 

235. 二叉搜索树的最近公共祖先

108. 将有序数组转换为二叉搜索树 

783. 二叉搜索树节点最小距离

538. 把二叉搜索树转换为累加树 

1038. 从二叉搜索树到更大和树

平衡二叉树

110. 平衡二叉树 

109. 有序链表转换二叉搜索树 

1382. 将二叉搜索树变平衡

栈与队列

栈的实现

232. 用栈实现队列

225. 用队列实现栈

面试题 03.01. 三合一 

1441. 用栈操作构建数组

单调栈

496. 下一个更大元素 I 

84. 柱状图中最大的矩形

9. 每日温度 

901. 股票价格跨度

42. 接雨水

最小/大栈

面试题 03.02. 栈的最小值

剑指 Offer 30. 包含min函数的栈 

155. 最小栈 

716. 最大栈

字符串去重问题

316.去除重复字母 

1209. 删除字符串中的所有相邻重复项 II 

1081.不同字符的最小子序列

栈与括号匹配

20. 有效的括号 

636. 函数的独占时间 

591. 标签验证器 

32. 最长有效括号

表达式求值

150. 逆波兰表达式求值

224. 基本计算器 

227. 基本计算器 II 

772. 基本计算器 III 

770. 基本计算器 IV

用栈访问最后若干元素

682. 棒球比赛 

71. 简化路径 

388. 文件的最长绝对路径

递归

385. 迷你语法分析器 

341. 扁平化嵌套列表迭代器 

394. 字符串解码

滑动窗口最大值问题

239. 滑动窗口最大值

求前 K 个高频元素

347. 前K个高频元素 

692. 前K个高频单词

二分查找专题

普通二分查找

704. 二分查找 

69. x 的平方根 

35. 搜索插入位置 

153. 寻找旋转排序数组中的最小值 

367. 有效的完全平方数

50. Pow(x, n) 

278. 第一个错误的版本 

4. 寻找两个正序数组的中位数

167. 两数之和 II - 输入有序数组 

744. 寻找比目标字母大的最小字母 

162. 寻找峰值

查找区间

34. 在排序数组中查找元素的第一个和最后一个位置 

658. 找到 K 个最接近的元素 

278. 第一个错误的版本 

74. 搜索二维矩阵

旋转排列数组

33. 搜索旋转排序数组 

81. 搜索旋转排序数组 II 

240. 搜索二维矩阵 II 

48. 旋转图像

448. 找到所有数组中消失的数字 

154. 寻找旋转排序数组中的最小值 II

双指针专题

对撞指针问题

1. 两数之和 

344. 反转字符串 

345. 反转字符串中的元音字母 

125. 验证回文串 

11. 盛最多水的容器

15. 三数之和 

18. 四数之和 

167. 两数之和 II - 输入有序数组 

88. 合并两个有序数组

283. 移动零 

27. 移除元素 

455. 分发饼干 

561. 数组拆分 

9. 回文数

快慢指针问题

876. 链表的中间结点 

206. 反转链表 

19. 删除链表的倒数第 N 个结点 

141. 环形链表

142. 环形链表 II 

21. 合并两个有序链表 

26. 删除有序数组中的重复项

83. 删除排序链表中的重复元素 

82. 删除排序链表中的重复元素 II 

86. 分隔链表 

234. 回文链表

滑动窗口问题

209. 长度最小的子数组 

5. 最长回文子串 

76. 最小覆盖子串 

283. 移动零 

80. 删除有序数组中的重复项

561. 数组拆分 

457. 环形数组是否存在循环 

718. 最长重复子数组

前缀和专题

一维数组的前缀和

560. 和为 K 的子数组 

930. 和相同的二元子数组 

525. 连续数组 

974. 和可被 K 整除的子数组

523. 连续的子数组和 

1248. 统计「优美子数组」

二维数组的前缀和

304. 二维区域和检索 - 矩阵不可变 

1314. 矩阵区域和 

1074. 元素和为目标值的子矩阵数量 

363. 矩形区域不超过 K 的最大数值和

前缀和与二叉树

437. 路径总和 III 

1022. 从根到叶的二进制数之和 

129. 求根节点到叶节点数字之和

你可能感兴趣的:(数据结构,算法)