Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork9.1k
🔥LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解
License
doocs/leetcode
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
本项目包含 LeetCode、《剑指 Offer(第 2 版)》、《剑指 Offer(专项突击版)》、《程序员面试金典(第 6 版)》等题目的相关题解。所有题解均由多种编程语言实现,包括但不限于:Java、Python、C++、Go、TypeScript、Rust。我们正在全力更新,欢迎 Star 🌟 关注本项目,获取项目最新动态。
- 在排序数组中查找元素的第一个和最后一个位置 -
二分查找
- 准时到达的列车最小时速 -
二分查找
- 可移除字符的最大数目 -
二分查找
- 排序数组 -
快速排序
、归并排序
- 字符串相加 -
高精度加法
- 字符串相乘 -
高精度乘法
- 区域和检索 - 数组不可变 -
前缀和
- 二维区域和检索 - 矩阵不可变 -
二维前缀和
- 区间加法 -
前缀和
、差分
- 用邮票贴满网格图 -
二维前缀和
、二维差分
- 无重复字符的最长子串 -
双指针
、哈希表
- 乘积小于 K 的子数组 -
双指针
- 位 1 的个数 -
位运算
、lowbit
- 合并区间 -
区间合并
- 设计链表 -
单链表
、指针引用
、数组实现
- 下一个更大元素 I -
单调栈
- 每日温度 -
单调栈
- 子数组的最小值之和 -
单调栈
- 最大宽度坡 -
单调栈
- 最多能完成排序的块 II -
单调栈
- 子数组范围和 -
单调栈
- 子数组最小乘积的最大值 -
单调栈
- 滑动窗口最大值 -
单调队列
- 满足不等式的最大值 -
单调队列
- 和至少为 K 的最短子数组 -
单调队列
- 带限制的子序列和 -
动态规划
、单调队列优化
- 单词规律 II -
哈希表
、回溯
- 最短回文串 -
字符串哈希
- 回文对 -
字符串哈希
- 最长重复子串 -
字符串哈希
、二分查找
- 不同的循环子字符串 -
字符串哈希
- 图像渲染-
BFS
、DFS
、Flood Fill 算法
、连通性模型
- 岛屿数量 -
BFS
、Flood Fill 算法
- 01 矩阵 -
多源 BFS
- 地图中的最高点 -
多源 BFS
- 进击的骑士 -
BFS
、最短路模型
- 二进制矩阵中的最短路径 -
BFS
、最短路模型
- 迷宫中离入口最近的出口 -
BFS
、最短路模型
- 网格中的最短路径 -
BFS
、最短路模型
- 打开转盘锁 -
最小步数模型
、双向 BFS
、A* 算法
- 单词接龙 -
最小步数模型
、双向 BFS
- 转化数字的最小运算数 -
最小步数模型
、双向 BFS
- 滑动谜题 -
BFS
、最小步数模型
、A* 算法
- 访问所有节点的最短路径 -
BFS
、最小步数模型
、A* 算法
- 为高尔夫比赛砍树 -
BFS
、A* 算法
- 使网格图至少有一条有效路径的最小代价 -
双端队列 BFS
- 到达角落需要移除障碍物的最小数目 -
双端队列 BFS
- 迷宫 -
DFS
、连通性模型
、Flood Fill 算法
- 单词搜索 -
DFS
、搜索顺序
、回溯
- 黄金矿工 -
DFS
、搜索顺序
、回溯
- 火柴拼正方形 -
DFS
、回溯
、剪枝
- 划分为 k 个相等的子集 -
DFS
、回溯
、剪枝
- 完成所有工作的最短时间 -
DFS
、回溯
、剪枝
- 公平分发饼干 -
DFS
、回溯
、剪枝
- 矩阵中的最长递增路径 -
DFS
、记忆化搜索
- 网格图中递增路径的数目 -
DFS
、记忆化搜索
- 翻转游戏 II -
DFS
、状态压缩
、记忆化搜索
- 统计所有可行路径 -
DFS
、记忆化搜索
- 切披萨的方案数 -
DFS
、记忆化搜索
- 杨辉三角 -
线性 DP
、数字三角形模型
- 最小路径和 -
线性 DP
、数字三角形模型
- 摘樱桃 -
线性 DP
、数字三角形模型
- 摘樱桃 II -
线性 DP
、数字三角形模型
- 最长递增子序列 -
线性 DP
、最长上升子序列模型
- 无重叠区间 -
线性 DP
、最长上升子序列模型
、贪心优化
- 删列造序 III -
线性 DP
、最长上升子序列模型
- 俄罗斯套娃信封问题 -
线性 DP
、最长上升子序列模型
、贪心优化
- 堆叠长方体的最大高度 -
排序
、线性 DP
、最长上升子序列模型
- 无矛盾的最佳球队 -
排序
、线性 DP
、最长上升子序列模型
- 最长公共子序列 -
线性 DP
、最长公共子序列模型
- 两个字符串的最小 ASCII 删除和 -
线性 DP
、最长公共子序列模型
- 两个字符串的删除操作 -
线性 DP
、最长公共子序列模型
- 目标和 -
0-1 背包问题
- 分割等和子集 -
0-1 背包问题
- 最后一块石头的重量 II -
0-1 背包问题
- 零钱兑换 -
完全背包问题
- 组合总和 Ⅳ -
完全背包问题
- 从栈中取出 K 个硬币的最大面值和 -
分组背包问题
- 数字 1 的个数 -
数位 DP
、记忆化搜索
- 统计各位数字都不同的数字个数 -
数位 DP
、记忆化搜索
、状态压缩
- 不含连续 1 的非负整数 -
数位 DP
、记忆化搜索
- 旋转数字 -
数位 DP
、记忆化搜索
- 最大为 N 的数字组合 -
数位 DP
、记忆化搜索
- 统计特殊整数 -
数位 DP
、记忆化搜索
- 二维网格图中探测环 -
并查集
、检测环
- 除法求值 -
并查集
、权值维护
- 由斜杠划分区域 -
并查集
、连通分量个数
- 水位上升的泳池中游泳 -
并查集
- 交换字符串中的元素 -
并查集
- 打砖块 -
并查集
、逆向思维
- 尽量减少恶意软件的传播 II -
并查集
、逆向思维
- 检查边长度限制的路径是否存在 -
并查集
、离线思维
- 保证图可完全遍历 -
双并查集
- 区域和检索 - 数组可修改 -
树状数组
、线段树
- 通过指令创建有序数组 -
树状数组
、线段树
- 统计数组中好三元组数目 -
树状数组
、线段树
- 最多 K 次交换相邻数位后得到的最小整数 -
树状数组
- 二维区域和检索 - 可变 -
二维树状数组
、线段树
- 计算右侧小于当前元素的个数 -
离散化树状数组
、线段树
- 区间和的个数 -
离散化树状数组
、线段树
- 翻转对 -
离散化树状数组
、分治归并
、线段树
- 最长递增子序列的个数 -
离散化树状数组
、区间最值问题
- 奇妙序列 -
动态开点线段树
、懒标记
- Range 模块 -
动态开点线段树
、懒标记
- 我的日程安排表 III -
动态开点线段树
、懒标记
- 每天绘制的新区域数量 -
动态开点线段树
、懒标记
、区间染色模型
- 由单个字符重复的最长子字符串 -
线段树
、动态最大子段和模型
- 矩形面积 II -
线段树
、离散化
、扫描线
- 网络延迟时间 -
最短路
、Dijkstra 算法
、Bellman Ford 算法
、SPFA 算法
- 得到要求路径的最小带权子图 -
最短路
、Dijkstra 算法
- 连接所有点的最小费用 -
最小生成树
、Prim 算法
、Kruskal 算法
- 最低成本联通所有城市 -
最小生成树
、Kruskal 算法
、并查集
- 水资源分配优化 -
最小生成树
、Kruskal 算法
、并查集
- 找到最小生成树里的关键边和伪关键边 -
最小生成树
、Kruskal 算法
、并查集
- 判断二分图 -
染色法判定二分图
、并查集
刷编程题的最大好处就是可以锻炼解决问题的思维能力。相信我,「如何去思考」 本身也是一项需要不断学习和练习的技能。非常感谢前微软工程师、现蚂蚁金服技术专家@kfstorm 贡献了本项目的所有C# 题解。
如果你对本项目感兴趣,并且希望加入我们刷题小分队,欢迎随时提交PR。请参考如下步骤:
- 将本项目 fork 到你的个人 GitHub 帐户,然后 clone 到你的本地机器;
- 进入 leetcode 目录,切换到一个新的分支;
- 对项目做出一些变更,然后使用 git add、commit、push 等命令将你的本地变更提交到你的远程 GitHub 仓库;
- 将你的变更以 PR 的形式提交过来,项目的维护人员会在第一时间对你的变更进行 review!
- 你也可以参考帮助文档https://help.github.com/cn 了解更多细节。
graph TD; A[LeetCode 仓库 <br> doocs/leetcode.git] -- 1.Fork(派生) --> B[你的 GitHub 仓库 <br> yourusername/leetcode.git]; B -- 2.Git 克隆 --> C[本地开发环境]; C -- 3.创建新分支并修改代码 --> D[本地修改后的代码]; D -- 4.提交 & 推送到你的仓库 --> B; B -- 5.提交 Pull Request(合并请求) --> A;
感谢以下所有朋友对本项目的贡献!
感谢以下个人、组织对本项目的支持和赞助!
"You help the developer community practice for interviews, and there is nothing better we could ask for." --Alan Yessenbayev
本项目著作权归GitHub 开源社区 Doocs 所有,商业转载请联系 @yanglbme 获得授权,非商业转载请注明出处。
欢迎各位小伙伴们添加 @yanglbme 的个人微信(微信号:YLB0109),备注 「leetcode」。后续我们会创建算法、技术相关的交流群,大家一起交流学习,分享经验,共同进步。
About
🔥LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解
Topics
Resources
License
Code of conduct
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Sponsor this project
Uh oh!
There was an error while loading.Please reload this page.
Packages0
Uh oh!
There was an error while loading.Please reload this page.