Skip to content

realDuang/leetcode-in-javascript

Repository files navigation

LeetCode in JavaScript / TypeScript

框架通解 · 举一反三 · 真正学会解题,而不是背题。

LeetCode 题解仓库,收录 300+ 道题目的 JavaScript / TypeScript 解法,按数据结构与算法分类整理。

但这个仓库不只是题解集合——更重要的是配套的 专题文档站,它系统梳理了各类经典题型的解题框架与通用模板,帮你从"这道题怎么做"升级为"这类题怎么解"。

🌟 为什么要看专题文档?

刷 LeetCode 最常见的困境:题做了几百道,换一道还是不会。根本原因是 只在记忆解法,没有掌握框架

本仓库的专题文档正是为了解决这个问题——每一篇专题都在提炼一类题型的 核心思维模型和代码框架,让你拿到一道新题时能够:

  1. 识别题型 → 这是哪类问题?
  2. 套用框架 → 这类问题的通用解法结构是什么?
  3. 灵活变通 → 这道题在框架基础上需要做什么调整?

📖 专题目录

以下专题覆盖了 LeetCode 最核心的算法知识体系,建议按顺序阅读:

# 专题 关键内容
0 前言 写给工程师的算法学习观:提炼思想,拓展视野,而非做题家
1 重新认识递归 递归的本质、思维方式与代码模板——一切高级算法的基石
2 二叉树遍历算法 前/中/后序遍历框架(含 BST 中序应用),理解"遍历"与"分解问题"两种思路
3 排序算法 经典排序算法对比与实现,理解分治与交换的思想
4 双指针问题 快慢指针、左右指针、滑动窗口——线性结构问题的利器
5 二分搜索专题 统一二分搜索框架,彻底搞定边界问题
6 回溯问题 排列/组合/子集的通用回溯框架,一套模板解决一类问题
7 深度优先搜索 (DFS) 岛屿问题、连通分量、FloodFill 的 DFS 通解
8 广度优先搜索 (BFS) 最短路径、层序遍历的 BFS 框架与变体
9 动态规划 - 问题推导 DP 的思维推导过程:状态定义 → 转移方程 → 边界处理
10 动态规划 - 背包问题 0-1 背包、完全背包的通用框架与空间优化
11 动态规划 - 子序列问题 LCS、LIS 等经典子序列 DP 模型
12 图遍历算法 图的表示、遍历、环检测与拓扑排序
13 单调栈算法 单调栈框架:下一个更大元素、柱状图等问题的通解

📌 推荐学习路径:递归 → 二叉树 → 回溯 → DFS/BFS → 动态规划 → 其他专题

📂 题解分类

所有题解按算法/数据结构分为 22 个类别,每道题都有完整的思路注释:

分类 题数
动态规划 71
二叉树 38
双指针 22
回溯 20
数组 19
二分查找 18
链表 14
数学 14
DFS 13
分类 题数
12
BFS 11
哈希表 11
滑动窗口 10
贪心 9
字符串 8
6
4
其他 13

🛠️ 开发环境

  • Node.js >= 20
  • pnpm >= 9

📋 常用命令

pnpm dev          # 本地启动文档站
pnpm build        # 构建文档站
pnpm typecheck    # TypeScript 类型检查
pnpm lint         # ESLint 检查
pnpm format       # Prettier 格式化
pnpm check        # 完整基础检查 (typecheck + lint + format:check)

🤝 参与贡献

如发现题解有误或有更优解法,欢迎提 IssuePull Request,不胜感激。

📄 License

MIT © Duang

About

使用 TypeScript 来开刷最有价值的 LeetCode 题型~(附分类及题解)

Topics

Resources

License

Stars

Watchers

Forks

Contributors