Skip to content

ITrover/Algorithm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

Leetcode 算法题

Hash相关

题目 关键字
387. 字符串中的第一个唯一字符 哈希表
381. O(1) 时间插入、删除和获取随机元素 - 允许重复 哈希表、技巧、数据结构组合使用 重点题
42. 有效的字母异位词 哈希表、数组、排序
454. 四数相加 II 哈希表
146. LRU缓存机制 哈希表、双向链表 重点题
290. 单词规律 哈希表、双向映射 重点题
205. 同构字符串 哈希表、双向映射
1128. 等价多米诺骨牌对的数量 Map/数组、计数
888. 公平的糖果棒交换 哈希表
447. 回旋镖的数量 哈希表 + 枚举
226. 翻转二叉树 递归
98. 验证二叉搜索树 先序遍历/递归/层次遍历
124. 二叉树中的最大路径和 后序遍历/递归
剑指 Offer 26. 树的子结构 递归、树的遍历、穷举 重点题
128. 最长连续序列 哈希表 + 枚举
496. 下一个更大元素 哈希表 + 单调栈
2013. 检测正方形 哈希表
41. 缺失的第一个正数 原地哈希

树的遍历

题目 关键字
129. 求根到叶子节点数字之和 先序遍历、递归
1325. 删除给定值的叶子节点叉树的最近公共祖先](src/swordToOffer/lowestCommonAncestor) 递归 重点题
230. 二叉搜索树中第K小的元素 中序遍历
剑指 Offer 68 - I. 二叉搜索树的最近公共祖先 迭代、递归、二叉搜索树的特性、后序遍历
103. 二叉树的锯齿形层序遍历 DFS、BFS、队列 重点题
100. 相同的树 递归
173. 二叉搜索树迭代器 中序遍历
872. 叶子相似的树 递归
437. 路径总和 III dfs/前缀和
337. 打家劫舍 dfs
1245. 树的直径 dfs

动态规划

题目 关键字
1277. 统计全为 1 的正方形子矩阵 动态规划
118. 杨辉三角 动态规划
300. 最长上升子序列 动态规划、二分查找、贪心算法 重点题
1143. 最长公共子序列 动态规划 重点题
416. 分割等和子集 动态规划/0-1背包问题 重点题
LCP 19. 秋叶收藏集 动态规划 重点题
514. 自由之路 动态规划、dfs 重点题
零钱兑换 动态规划、dfs 重点题
309. 最佳买卖股票时机含冷冻期 动态规划、bfs 重点题
剑指 Offer 49. 丑数 动态规划 重点题
746. 使用最小花费爬楼梯 动态规划 重点题
198. 打家劫舍 动态规划
13. 打家劫舍 II 动态规划 重点题
354. 俄罗斯套娃信封问题 动态规划、二分查找 重点题
132. 分割回文串 II 动态规划 重点题
1137. 第 N 个泰波那契数 动态规划
516. 最长回文子序列 动态规划
63. 不同路径 II 动态规划、回溯
583. 两个字符串的删除操作 动态规划
639. 解码方法 II 回溯 dfs 记忆/动态规划 重点题
1218. 最长定差子序列 动态规划 重点题
718. 最长重复子数组 动态规划
221. 最大正方形 动态规划/前缀和、二分查找
494. 目标和 动态规划

模拟

题目 关键字
463. 岛屿的周长 模拟、暴力破解、BFS
57. 插入区间 模拟、分段求解 重点题
1370. 上升下降字符串 模拟、借助数组
88. 合并两个有序数组 模拟、数组
189. 旋转数组 模拟、向前冒泡
[1018. 可被 5 整除的二进制前缀](src/e veryday/prefixesDivBy5) 模拟,暴力求解
867. 转置矩阵 模拟
482. 密钥格式化 模拟
498. 对角线遍历 模拟

快慢指针

题目 关键字
202. 快乐数 快慢指针/哈希表/出现循环的判断
876. 链表的中间结点 快慢指针

双指针

题目 关键字
941. 有效的山脉数组 双指针/模拟
328. 奇偶链表 双指针、链表操作
283. 移动零 双指针
922. 按奇偶排序数组 II 双指针
剑指 Offer 52. 两个链表的第一个公共节点 双指针、技巧
524. 通过删除字母匹配到字典里最长单词 双指针
392. 判断子序列 双指针/String的indexOf方法
435. 无重叠区间 双指针/按照末尾排序
86. 分隔链表 双指针
978. 最长湍流子数组 双指针/动态规划
832. 翻转图像 双指针
80. 删除有序数组中的重复项 II 三指针
18. 四数之和 双指针

字典树

题目 关键字
648. 单词替换 字典树/hash表 重点题
211. 添加与搜索单词 - 数据结构设计 字典树/hash表
剑指 Offer II 065. 最短的单词编码 字典树

回溯

题目 关键字
139. 单词拆分 回溯/动态规划 重点题
40. 组合总和 II 回溯、剪枝 重点题
剑指 Offer 38. 字符串的排列 回溯、dfs、剪枝 重点题
131. 分割回文串 回溯、动态规划预处理、记忆
90. 子集 II 回溯
17. 电话号码的字母组合 回溯
282. 给表达式添加运算符 回溯 重点题
79. 单词搜索 回溯
1601. 最多可达成的换楼请求 二进制枚举/回溯
2044. 统计按位或能得到最大值的子集数目 二进制枚举/回溯

二叉搜索树

题目 关键字
450. 删除二叉搜索树中的节点 递归

链表

题目 关键字
146. LRU缓存机制 双向链表/LinkedHashMap 重点题
147. 对链表进行插入排序 链表、伪头
148. 排序链表 链表、递归、归并排序
237. 删除链表中的节点 链表操作
剑指 Offer 24. 反转链表 双指针/递归/栈
89. 数组形式的整数加法 /栈/链表/数组/题目条件
725. 分隔链表 链表操作
430. 扁平化多级双向链表 链表操作、dfs

题目 关键字
127. 单词接龙 BFS、队列、Hash表 重点题
剑指 Offer II 109. 开密码锁 bfs 重点题

位运算

题目 关键字
1356. 根据数字二进制下 1 的数目排序 位运算、改变排序规则、题目条件利用
剑指 Offer 56 - I. 数组中数字出现的次数 位运算、分组异或
389. 找不同 异或/排序/计数/求和
371. 两整数之和 位运算
405. 数字转换为十六进制数 位运算
面试题 16.01. 交换数字 位运算
393. UTF-8 编码验证 位运算

技巧性

题目 关键字
73. 矩阵置零 数组、技巧
31. 下一个排列 找规律
406. 根据身高重建队列 思路、排序、插入
剑指 Offer 64. 求1+2+…+n 技巧性、&&短路的利用
剑指 Offer 66. 构建乘积数组 技巧性、规律
169. 多数元素 摩尔投票法/哈希/快排思想
剑指 Offer 30. 包含min函数的栈 使用辅助栈
43. 字符串相乘 字符串相乘 重点题
907. 子数组的最小值之和 最小栈 重点题
448. 找到所有数组中消失的数字 数组原地修改 重点题
1006. 笨阶乘 暴力/栈/发现规律
453. 最小操作次数使数组元素相等 技巧
229. 求众数 II 摩尔投票法/哈希
204. 计数质数 埃及筛/线性筛

排序

题目 关键字
327. 区间和的个数 归并排序、动态规划、分治 重点题
973. 最接近原点的 K 个点 快速排序/优先队列
1122. 数组的相对排序 修改排序规则/计数
1030. 距离顺序排列矩阵单元格 桶排序/排序/BFS/几何
164. 最大间距 桶排序/基数排序
剑指Offer45.把数组排成最小的数 修改排序规则 重点题
49. 字母异位词分组 排序/计数、哈希 重点题
75. 颜色分类 桶排序/双指针/技巧
451. 根据字符出现频率排序 哈希、桶排序、堆排序
1046. 最后一块石头的重量 大顶堆
703. 数据流中的第 K 大元素 小顶堆 重点题
274. H 指数 排序 重点题
1996. 游戏中弱角色的数量 排序 重点题
969. 煎饼排序 排序
980. 找出不同的二进制字符串 排序/哈希表

贪心算法

题目 关键字
122. 买卖股票的最佳时机 II 贪心算法、动态规划
402. 移掉K位数字 贪心算法/单调栈(注意越界问题)
134. 加油站 贪心算法、枚举 重点题
452. 用最少数量的箭引爆气球 贪心算法、排序、区间合并 重点题
738. 单调递增的数字 贪心算法、发现规律 重点题
714. 买卖股票的最佳时机含手续费 贪心算法、动态规划 重点题
455. 分发饼干 排序 + 贪心算法
605. 种花问题 贪心、判断条件考虑周全
665. 非递减数列 贪心、分情况讨论 重点题
135. 分发糖果 贪心 重点题
674. 最长连续递增序列 贪心 重点题
316. 去除重复字母 贪心+单调栈 重点题
502. IPO 堆、贪心算法 重点题
517. 超级洗衣机 贪心算法 重点题
1414. 和为 K 的最少斐波那契数字数目 贪心算法 重点题
1405. 最长快乐字符串 贪心算法 重点题
621. 任务调度器 贪心算法
6553. 最优除法 数学+贪心
LCP 33. 蓄水 贪心
781. 森林中的兔子 贪心
954. 二倍数对数组 排序+贪心

数字

题目 关键字
258. 各位相加 递归、找规律、表达式
172. 阶乘后的零 数学公式、技巧、找因子 重点题
231. 2的幂 余/二进制 重点题
1232. 缀点成线 斜率
166. 分数到小数 长除法 重点题

二分查找

题目 关键字
222. 完全二叉树的节点个数 二分查找、位运算、完全二叉树
34. 在排序数组中查找元素的第一个和最后一个位置 二分查找
74. 搜索二维矩阵 二分查找
1011. 在 D 天内送达包裹的能力 二分查找 重点题
1482. 制作 m 束花所需的最少天数 二分查找 重点题
162. 寻找峰值 二分查找
1894. 找到需要补充粉笔的学生编号 二分查找+前缀和
240. 搜索二维矩阵 II 二分查找
3287. 寻找重复数 二分查找/快慢指针
1146. 快照数组 二分查找

数学推导

题目 关键字
剑指 Offer 14- I. 剪绳子 数学推导、贪心算法、循环求余 重点题
剑指 Offer 16. 数值的整数次方 二分法、快速幂 重点题

滑动窗口

题目 关键字
剑指 Offer 59 - I. 滑动窗口的最大值 双端队列、单调队列 重点题
239. 滑动窗口最大值 双端队列、单调队列 重点题
DD-2020006. 简单游戏 滑动窗口、贪心算法 重点题
424. 替换后的最长重复字符 滑动窗口、双指针 重点题
643. 子数组最大平均数 I 滑动窗口
1423. 可获得的最大点数 滑动窗口/前缀和
992. K 个不同整数的子数组 滑动窗口 重点题
567. 字符串的排列 滑动窗口
1438. 绝对差不超过限制的最长连续子数组 滑动窗口、有序集合、单调队列
1052. 爱生气的书店老板 滑动窗口
395. 至少有 K 个重复字符的最长子串 滑动窗口、枚举/分治法 重点题
930. 和相同的二元子数组 滑动窗口/前缀和

前缀和

题目 关键字
560. 和为K的子数组 前缀和、HashMap 重点题
724. 寻找数组的中心索引 前缀和

分情况讨论

题目 关键字
面试题 01.05. 一次编辑 分情况讨论
468. 验证IP地址 分情况讨论
564. 寻找最近的回文数 模拟、分情况讨论

题目 关键字
547. 省份数量 图的遍历
207. 课程表 dfs/拓扑排序

并查集

题目 关键字
1202. 交换字符串中的元素 并查集
684. 冗余连接 并查集
1319. 连通网络的操作次数 并查集
1579. 保证图可完全遍历 并查集
面试题 17.07. 婴儿名字 并查集

BFS

题目 关键字
1091. 二进制矩阵中的最短路径 BFS 重点题
279. 完全平方数 BFS 重点题
2045. 到达目的地的第二短时间 BFS 重点题
2039. 网络空闲的时刻 BFS

数据结构

题目 关键字
232. 用栈实现队列
503. 下一个更大元素 II 单调栈 循环数组 重点题
1047. 删除字符串中的所有相邻重复项
面试题 16.26. 计算器
面试题 03.05. 栈排序
剑指 Offer II 025. 链表中的两数相加
443. 压缩字符串
82. 删除排序链表中的重复元素 II 链表
414. 第三大的数 有序集合
剑指 Offer II 036. 后缀表达式
622. 设计循环队列 队列
034. 股票价格波动 数据结构组合
739. 每日温度 单调栈
394. 字符串解码 栈/递归
1249. 移除无效的括号
432. 全 O(1) 的数据结构 数据结构组合(双向链表+hash
1190. 反转每对括号间的子串

数学

题目 关键字
1486. 数组异或操作 数学
223. 矩形面积 数学
29. 两数相除) 倍增加、数学

About

数据结构算法

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages