科学工具
科学工具让世界更美好
让世界更美好

LeetCode刷题指南:包含 LeetCode、《剑指 Offer(第 2 版)》、《剑指 Offer(专项突击版)》、《程序员面试金典(第 6 版)》题解LeetCode刷题指南:包含 LeetCode、《剑指 Offer(第 2 版)》、《剑指 Offer(专项突击版)》、《程序员面试金典(第 6 版)》题解

本项目涵盖了LeetCode、《剑指Offer(第2版)》《程序员面试金典(第6版)》等的解法,编程语言涉及Java、Python、C++、Go、TypeScript、Rust等。

目录结构与更新记录

名称 最后提交信息
.github 更新工作流
.husky 添加配置文件.editorconfig(#3336)
basic 使用rustfmt格式化Rust代码(#3140)
lcci 新增LCCI题目08.06~08.09解法(#4068)
lcof 更新剑指Offer题目046文档(#3795)
solution 新增LeetCode题目2929解法(#4452)
.editorconfig 添加配置文件(#3336)
.gitignore 更新.gitignore
README.md 添加deepwiki徽章(#4376)
package.json 更新LeetCode题目(#4296)

1、基础算法

二分查找:在排序数组中查找元素边界、求解最小时速等问题

排序算法:快速排序与归并排序实现数组排序

高精度运算:字符串形式的大数加减法与乘法

前缀和与差分:处理数组区间查询及更新操作

双指针与哈希表:解决无重复子串、乘积小于K的子数组等问题

位运算:统计二进制中1的个数、Lowbit技巧应用

2、数据结构

单调栈:处理下一个更大元素、每日温度、子数组最小值等序列问题

单调队列:滑动窗口最大值、最短子数组求和等场景

哈希表与字符串哈希:实现单词规律、回文对、最长重复子串等字符串问题

动态规划优化:结合单调队列优化子序列和问题

3、搜索算法

BFS/DFS基础:图像渲染、岛屿数量、单词搜索等连通性问题

多源BFS:01矩阵最短距离、地图最高点求解

最短路径模型:使用双向BFS和A*算法解决转盘锁、单词接龙等最小步数问题

回溯与剪枝:处理火柴拼正方形、工作分配等组合优化问题

4、动态规划(DP)

线性DP:数字三角形模型(最小路径和、摘樱桃)、最长递增子序列模型

背包问题:0-1背包(分割等和子集)、完全背包(零钱兑换)、分组背包

数位DP:统计数字1的个数、不含连续1的非负整数等数位统计问题

5、高级数据结构

并查集:检测网格环、除法求值(带权并查集)、连通分量统计

树状数组与线段树:处理数组区间查询修改、离散化优化、动态开点与懒标记应用

扫描线与区间染色:矩形面积计算、日程安排冲突检测等场景

6、图论

最短路径算法:Dijkstra、Bellman-Ford、SPFA求解网络延迟问题

最小生成树:Prim与Kruskal算法解决城市连通、资源分配优化问题

二分图判定:染色法与并查集结合判断图的二分性

欢迎加入刷题小分队,贡献步骤如下:

1、Fork仓库:将项目派生到个人GitHub账户

2、克隆到本地:通过Git命令将仓库克隆至本地开发环境

3、创建分支:切换到新分支进行代码修改

4、提交变更:使用git add/commit/push命令更新至个人仓库

5、提交PR:向主仓库发起合并请求,等待维护人员审核