JavaScript-Algorithms 前端算法体系
一份面向前端开发者的数据结构与算法学习仓库,从基础理论到框架源码应用,结合真实大厂面试题,帮助前端从 0 到 1 构建完整算法体系。
爱鲜报评分
0.0
0 人评分
5.7k
星数
是
中文
—
主语言
是
活跃
2
贡献者
人工分析
EDITORIAL推荐理由
内容以真实前端面试题为主线,覆盖数组、链表、字符串、栈、队列、哈希表、二叉树、堆、图、排序等核心数据结构与算法,并延伸到 V8、virtual-dom diff、babel、webpack tree-shaking 等框架源码场景。作者持续更新多年,题目解析图文并茂,适合想突破前端进阶瓶颈、准备大厂面试的开发者系统学习。
适用场景
- 前端工程师准备大厂算法面试
- 系统学习数据结构与算法基础
- 理解前端框架与工具链中的算法原理
- LeetCode 刷题的中文题解参考
- 团队内部算法学习与分享材料
优点
- 题目均来自真实前端面试,针对性强
- 覆盖数据结构全面,形成完整知识体系
- 结合 V8、virtual-dom、babel、webpack 等前端源码场景讲解
- 图文并茂,解析通俗易懂,适合自学
- 持续更新,社区 star 数较高,内容经过验证
缺点
- 内容以 Issue 和公众号文章形式组织,系统性阅读体验一般
- 部分内容依赖外部链接,离线阅读不便
- 代码示例以 JavaScript 为主,缺少多语言对照
- 仓库主语言未标注,构建与运行方式不明确
上手难度
进阶
JavaScript-Algorithms 前端算法体系
这是一个面向前端开发者的数据结构与算法学习仓库,作者是「前端瓶子君」。它不只是一份 LeetCode 题解合集,而是试图把算法与前端日常开发、框架源码、面试真题串联起来,帮助前端从 0 到 1 构建完整的算法知识体系。
为什么前端也要学算法
很多前端同学觉得日常业务里写不到算法,但一旦需要深入框架或开源库源码,算法基础就会直接决定阅读能力。例如:
virtual-dom的 diff 算法通过约定把时间复杂度从 O(n³) 降到 O(n),核心是树的深度优先搜索babel依赖编译原理中的 parser 生成抽象语法树,再做转换与代码生成- 浏览器 history 的底层可以用栈来实现
webpack的 tree-shaking 优化、V8 的调用栈与消息队列都大量使用算法
看懂这些,才能更好地理解性能瓶颈、写出更高质量的代码。
内容结构
仓库按数据结构与算法主题组织,每个主题下都有大量真实面试题解析:
- 数组:两数之和、三数之和、N 数之和、数组扁平化与去重、LRU 缓存等
- 链表:合并有序链表、判断有环、反转链表、求中间结点、相交节点等
- 字符串:翻转单词、最长公共前缀、回文判断、无重复字符最长子串、字符串相加与相乘
- 栈与队列:最小栈、有效括号、相邻重复项删除、滑动窗口最大值
- 哈希表:数组交集、常数时间插入删除、第一个只出现一次的字符
- 二叉树:前中后序与层序遍历、重构二叉树、最大深度、最近公共祖先、对称与平衡判断
- 堆:最小的 k 个数、前 K 个高频元素、第 K 个最大元素、数据流中位数
- 图:找到小镇的法官、课程表问题、旋转矩阵、螺旋矩阵
- 排序算法:快排原理与实现、洗牌算法等
系列文章与阅读方式
仓库配套了「前端进阶算法」系列文章,从算法效率分析、Chrome V8 中的数组实现,到 LRU、链表、栈、队列、哈希表、树、堆、字符串、排序、查找结构、算法思想等逐层展开。
前端进阶算法 1:如何分析算法的执行效率和资源消耗
前端进阶算法 2:从 Chrome V8 源码看 JavaScript 数组
前端进阶算法 3:从浏览器缓存淘汰策略学习 LRU 算法
前端进阶算法 4:链表原来如此简单
...
前端进阶算法 16:贪心算法套路问题
作者还提供了线上阅读站点,阅读体验比 GitHub Issue 更流畅。
适合谁
- 正在准备大厂前端面试、需要刷算法题的同学
- 想系统补齐数据结构与算法基础的前端工程师
- 希望理解框架源码中算法设计思路的进阶开发者
整体而言,这是一份偏实战、偏面试、同时兼顾源码视角的中文算法学习资料,适合作为前端进阶路上的长期参考。
评论
- 暂无评论,来写第一条吧。