Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

itcompare/algorithm-tutorial

Open more actions menu

Repository files navigation

logo

star fork build code style

ALGORITHM

💾 algorithm 是一个数据结构与算法学习笔记。

掌握数据结构与算法,你看待问题的深度,解决问题的角度就会完全不一样。

📖 内容

img

💻 刷题

链表

双指针技巧

题目 难度 掌握度
141. 环形链表 💚 ✔️
142. 环形链表 II 💛
160. 相交链表 💚 ✔️
19. 删除链表的倒数第 N 个结点 💛 ✔️
21. 合并两个有序链表 💚 ✔️
23. 合并 K 个升序链表 ❤️ ✔️
86. 分隔链表 💛 ✔️
876. 链表的中间结点 💚 ✔️
面试题 02. 返回倒数第 k 个节点 💚 ✔️
82. 删除排序链表中的重复元素 II 💛
2. 两数相加 💛 ✔️
445. 两数相加 II 💛 ✔️

单链表反转

题目 难度 掌握度
61. 旋转链表 💛 ✔️
206. 反转链表 💚 ✔️
92. 反转链表 II 💛
25. K 个一组翻转链表 ❤️

回文链表

题目 难度 掌握度
234. 回文链表 💚

数组

双指针技巧

题目 难度 掌握度
27. 移除元素 💚 ✔️
283. 移动零 💚 ✔️
LCR 179. 查找总价格为目标值的两个商品 💚 ✔️
1. 两数之和 💚 ✔️
167. 两数之和 II - 输入有序数组
LCR 006. 两数之和 II - 输入有序数组
💛 ✔️
26. 删除有序数组中的重复项 💚 ✔️
80. 删除有序数组中的重复项 II 💛 ✔️
344. 反转字符串 💚 ✔️
125. 验证回文串 💚 ✔️
5. 最长回文子串 💛
75. 颜色分类 💛 ✔️
88. 合并两个有序数组 💚
977. 有序数组的平方 💚 ✔️
1329. 将矩阵按对角线排序 💛
1260. 二维网格迁移 💚
867. 转置矩阵 💚 ✔️
14. 最长公共前缀 💚 ✔️
378. 有序矩阵中第 K 小的元素 💛
373. 查找和最小的 K 对数字 💛

二维数组遍历

题目 难度 掌握度
151. 反转字符串中的单词 💛
48. 旋转图像 💛
54. 螺旋矩阵
LCR 146. 螺旋遍历二维数组
💛
59. 螺旋矩阵 II 💛

滑动窗口算法

题目 难度 掌握度
3. 无重复字符的最长子串
438. 找到字符串中所有字母异位词
567. 字符串的排列
76. 最小覆盖子串
1658. 将 x 减到 0 的最小操作数
713. 乘积小于 K 的子数组
1004. 最大连续 1 的个数 III ✔️
424. 替换后的最长重复字符
219. 存在重复元素 II
220. 存在重复元素 III
209. 长度最小的子数组
395. 至少有 K 个重复字符的最长子串

二分查找算法

题目 掌握度
34. 在排序数组中查找元素的第一个和最后一个位置
704. 二分查找 ✔️
LCR 172. 统计目标成绩的出现次数 ✔️
875. 爱吃香蕉的珂珂
1011. 在 D 天内送达包裹的能力
410. 分割数组的最大值

前缀和数组

题目 掌握度
303. 区域和检索 - 数组不可变 ✔️
304. 二维区域和检索 - 矩阵不可变

差分数组

题目 掌握度
1094. 拼车
1109. 航班预订统计
370. 区间加法

栈和队列

队列实现栈以及栈实现队列

题目 掌握度
225. 用队列实现栈 ✔️
232. 用栈实现队列 ✔️

栈的经典习题

题目 掌握度
71. 简化路径 ✔️
143. 重排链表 ✔️
20. 有效的括号 ✔️
150. 逆波兰表达式求值 ✔️
388. 文件的最长绝对路径
155. 最小栈 ✔️
最大频率栈](https://leetcode.cn/problems/maximum-frequency-stack/)

队列的经典习题

题目 掌握度
933. 最近的请求次数
622. 设计循环队列

单调栈算法模板

题目 掌握度
496. 下一个更大元素 I
503. 下一个更大元素 II
739. 每日温度
剑指 Offer II 038. 每日温度

二叉树

基础

题目 掌握度
104. 二叉树的最大深度 ✔️
111. 二叉树的最小深度 ✔️
543. 二叉树的直径
114. 二叉树展开为链表
226. 翻转二叉树 ✔️
654. 最大二叉树 ✔️
297. 二叉树的序列化与反序列化
222. 完全二叉树的节点个数 ✔️

DFS

题目 掌握度
144. 二叉树的前序遍历 ✔️
94. 二叉树的中序遍历 ✔️
145. 二叉树的后序遍历 ✔️
872. 叶子相似的树 ✔️

用「遍历」思维解题

题目 掌握度
257. 二叉树的所有路径 ✔️
129. 求根节点到叶节点数字之和 ✔️
199. 二叉树的右视图 ✔️
988. 从叶结点开始的最小字符串 ✔️
1022. 从根到叶的二进制数之和 ✔️
1457. 二叉树中的伪回文路径 ✔️
404. 左叶子之和 ✔️
623. 在二叉树中增加一行 ✔️
508. 出现次数最多的子树元素和
563. 二叉树的坡度
814. 二叉树剪枝
1325. 删除给定值的叶子节点 ✔️

用「分解」思维解题

题目 掌握度
105. 从前序与中序遍历序列构造二叉树 ✔️
106. 从中序与后序遍历序列构造二叉树 ✔️
889. 根据前序和后序遍历构造二叉树 ✔️
331. 验证二叉树的前序序列化
894. 所有可能的真二叉树
998. 最大二叉树 II
1110. 删点成林
100. 相同的树 ✔️
101. 对称二叉树 ✔️
951. 翻转等价二叉树
124. 二叉树中的最大路径和

用「层序遍历」思维解题

题目 掌握度
102. 二叉树的层序遍历 ✔️
107. 二叉树的层序遍历 II ✔️
103. 二叉树的锯齿形层序遍历 ✔️
116. 填充每个节点的下一个右侧节点指针 ✔️
117. 填充每个节点的下一个右侧节点指针 II ✔️
662. 二叉树最大宽度 ✔️
515. 在每个树行中找最大值 ✔️
637. 二叉树的层平均值 ✔️
958. 二叉树的完全性检验 ✔️
1161. 最大层内元素和 ✔️
1302. 层数最深叶子节点的和 ✔️
1609. 奇偶树 ✔️
429. N 叉树的层序遍历 ✔️
919. 完全二叉树插入器
863. 二叉树中所有距离为 K 的结点
LCR 149. 彩灯装饰记录 I ✔️
LCR 150. 彩灯装饰记录 II ✔️
LCR 151. 彩灯装饰记录 III ✔️

二叉搜索树

题目 掌握度
230. 二叉搜索树中第 K 小的元素 ✔️
538. 把二叉搜索树转换为累加树 ✔️
450. 删除二叉搜索树中的节点
700. 二叉搜索树中的搜索 ✔️
701. 二叉搜索树中的插入操作 ✔️
98. 验证二叉搜索树
96. 不同的二叉搜索树
95. 不同的二叉搜索树 II
108. 将有序数组转换为二叉搜索树
783. 二叉搜索树节点最小距离
235. 二叉搜索树的最近公共祖先

题目 掌握度
797. 所有可能的路径

二分图判定算法

题目 掌握度
785. 判断二分图
886. 可能的二分法
剑指 Offer II 106. 二分图

环检测及拓扑排序算法

题目 掌握度
207. 课程表
210. 课程表 II

DFS

子集、组合、排列相关问题,都可以考虑使用回溯算法求解。

数独、N 皇后问题

题目 掌握度
37. 解数独
51. N 皇后
52. N皇后 II

排列、组合、子集问题

题目 掌握度
77. 组合
78. 子集
90. 子集 II
39. 组合总和
40. 组合总和 II
216. 组合总和 III
46. 全排列
47. 全排列 II

岛屿问题

题目 掌握度
1020. 飞地的数量
1254. 统计封闭岛屿的数目
1905. 统计子岛屿
200. 岛屿数量
695. 岛屿的最大面积
694. 不同岛屿的数量🔒

练习

题目 掌握度
967. 连续差相同的数字
491. 递增子序列
980. 不同路径 III
131. 分割回文串
93. 复原 IP 地址
17. 电话号码的字母组合
79. 单词搜索

BFS

题目 难度 掌握度
752. 打开转盘锁 💛
773. 滑动谜题 ❤️
919. 完全二叉树插入器 💛
841. 钥匙和房间 💛 ✔️
433. 最小基因变化 💛
1926. 迷宫中离入口最近的出口 💛 ✔️
1091. 二进制矩阵中的最短路径 💛
994. 腐烂的橘子 💛
721. 账户合并 💛
127. 单词接龙 🔴
365. 水壶问题 💛

动态规划

斐波那契

题目 难度 掌握度
509. 斐波那契数 💚 ✔️
1137. 第 N 个泰波那契数 💚 ✔️
70. 爬楼梯 💚 ✔️
746. 使用最小花费爬楼梯 💚 ✔️
198. 打家劫舍 💛 ✔️
740. 删除并获得点数 💛 ✔️

一维

题目 难度 掌握度
2140. 解决智力问题 💛
322. 零钱兑换 💛
2466. 统计构造好字符串的方案数 💛
91. 解码方法 💛
983. 最低票价 💛
790. 多米诺和托米诺平铺 💛

矩阵

题目 难度 掌握度
62. 不同路径 💛 ✔️
63. 不同路径 II 💛 ✔️
64. 最小路径和 💛 ✔️
120. 三角形最小路径和 💛 ✔️
931. 下降路径最小和 💛 ✔️
221. 最大正方形 💛 ✔️

字符串

题目 难度 掌握度
5. 最长回文子串 💛
139. 单词拆分 💛
516. 最长回文子序列 💛
72. 编辑距离 💛
583. 两个字符串的删除操作 💛
712. 两个字符串的最小ASCII删除和 💛
115. 不同的子序列 ❤️

最长递增/公共子序列

题目 难度 掌握度
300. 最长递增子序列 💛
673. 最长递增子序列的个数 💛
646. 最长数对链 💛 ✔️
1218. 最长定差子序列 💛
1027. 最长等差数列 💛
1143. 最长公共子序列 💛
1035. 不相交的线 💛
1312. 让字符串成为回文串的最少插入次数 ❤️

买卖股票的最佳时间/状态机

其他

题目 难度 掌握度
322. 零钱兑换 💛
354. 俄罗斯套娃信封问题 ❤️
53. 最大子数组和 💛
416. 分割等和子集
518. 零钱兑换 II

贪心算法

题目 难度 掌握度
55. 跳跃游戏 💛
45. 跳跃游戏 II 💛

分治算法

题目 掌握度
23. 合并 K 个升序链表 ✔️

📚 资料

🚪 传送

| 技术文档归档 | 算法和数据结构教程系列 |

About

📚 算法和数据结构教程

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Java 98.9%
  • Other 1.1%
Morty Proxy This is a proxified and sanitized view of the page, visit original site.