+ 我要发布
我发布的 我的标签 发现
浏览器扩展
斑点象@Edge

LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解

# 介绍 本项目包含 LeetCode、《剑指 Offer(第 2 版)》、《剑指 Offer(专项突击版)》、《程序员面试金典(第 6 版)》等题目的相关题解。所有题解均由多种编程语言实现,包括但不限于:Java、Python、C++、Go、TypeScript、Rust,日常更新。欢迎 Star 🌟 关注本项目,获取项目最新动态。 # 站点 Vercel: https://doocs-leetcode.vercel.app GitHub Pages: https://doocs.github.io/leetcode # 算法全解 LeetCode 往期竞赛合集 剑指 Offer(第 2 版) 剑指 Offer(专项突击版) 程序员面试金典(第 6 版) # 专项突破 JavaScript 专项练习 数据库专项练习 # 算法提升专题 1. 基础算法 在排序数组中查找元素的第一个和最后一个位置 - 二分查找 准时到达的列车最小时速 - 二分查找 找到需要补充粉笔的学生编号 - 二分查找 可移除字符的最大数目 - 二分查找 排序数组 - 快速排序、归并排序 字符串相加 - 高精度加法 字符串相乘 - 高精度乘法 区域和检索 - 数组不可变 - 前缀和 二维区域和检索 - 矩阵不可变 - 二维前缀和 区间加法 - 前缀和、差分 用邮票贴满网格图 - 二维前缀和、二维差分 无重复字符的最长子串 - 双指针、哈希表 乘积小于 K 的子数组 - 双指针 位 1 的个数 - 位运算、lowbit 合并区间 - 区间合并 2. 数据结构 设计链表 - 单链表、指针引用、数组实现 下一个更大元素 I - 单调栈 每日温度 - 单调栈 子数组的最小值之和 - 单调栈 最大宽度坡 - 单调栈 最多能完成排序的块 II - 单调栈 子数组范围和 - 单调栈 子数组最小乘积的最大值 - 单调栈 滑动窗口最大值 - 单调队列 满足不等式的最大值 - 单调队列 和至少为 K 的最短子数组 - 单调队列 带限制的子序列和 - 动态规划、单调队列优化 单词规律 II - 哈希表、回溯 最短回文串 - 字符串哈希 回文对 - 字符串哈希 最长重复子串 - 字符串哈希、二分查找 不同的循环子字符串 - 字符串哈希 3. 搜索 图像渲染- 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、记忆化搜索 4. 动态规划(DP) 杨辉三角 - 线性 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、记忆化搜索 5. 高级数据结构 二维网格图中探测环 - 并查集、检测环 除法求值 - 并查集、权值维护 由斜杠划分区域 - 并查集、连通分量个数 水位上升的泳池中游泳 - 并查集 交换字符串中的元素 - 并查集 打砖块 - 并查集、逆向思维 尽量减少恶意软件的传播 II - 并查集、逆向思维 检查边长度限制的路径是否存在 - 并查集、离线思维 保证图可完全遍历 - 双并查集 区域和检索 - 数组可修改 - 树状数组、线段树 通过指令创建有序数组 - 树状数组、线段树 统计数组中好三元组数目 - 树状数组、线段树 最多 K 次交换相邻数位后得到的最小整数 - 树状数组 二维区域和检索 - 可变 - 二维树状数组、线段树 计算右侧小于当前元素的个数 - 离散化树状数组、线段树 区间和的个数 - 离散化树状数组、线段树 翻转对 - 离散化树状数组、分治归并、线段树 最长递增子序列的个数 - 离散化树状数组、区间最值问题 奇妙序列 - 动态开点线段树、懒标记 Range 模块 - 动态开点线段树、懒标记 我的日程安排表 III - 动态开点线段树、懒标记 每天绘制的新区域数量 - 动态开点线段树、懒标记、区间染色模型 由单个字符重复的最长子字符串 - 线段树、动态最大子段和模型 矩形面积 II - 线段树、离散化、扫描线 6. 图论 网络延迟时间 - 最短路、Dijkstra 算法、Bellman Ford 算法、SPFA 算法 得到要求路径的最小带权子图 - 最短路、Dijkstra 算法 连接所有点的最小费用 - 最小生成树、Prim 算法、Kruskal 算法 最低成本联通所有城市 - 最小生成树、Kruskal 算法、并查集 水资源分配优化 - 最小生成树、Kruskal 算法、并查集 找到最小生成树里的关键边和伪关键边 - 最小生成树、Kruskal 算法、并查集 判断二分图 - 染色法判定二分图、并查集
你可能想看的