JS 算法数据结构教练
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @kunlungrowth/dsa-js-data-structures-algorithms-javascript。
技能介绍
很多前端工程师刷算法题时容易陷入两个误区:要么看到题目就直接套双层循环,要么背了一堆解法却说不清为什么用这种结构。JS 算法数据结构教练要解决的就是这个问题——它不只给代码,而是强迫你在做每道题前先回答:为什么这里用哈希而不是双指针?时间复杂度为什么是 O(n) 而不是 O(n²)?
按信号匹配方法
这个技能的核心资产是一张「识别信号表」,把你常见的题目描述映射到对应的数据结构和算法模板。比如:
- 看到 两个数之和 → 哈希表 O(n) 替代双层循环
- 看到 有序数组查找 → 二分
- 看到 最近最少使用(LRU) → 用
Map的保序特性实现 - 看到 树层序遍历 → BFS + 队列
- 看到 最优子结构 → 动态规划,先定状态再写转移方程
它鼓励你用 JS 自带的特性(Map/Set/数组方法),但要求你理解底层原理,而不是当成黑盒调用。
卡住时的自救流程
当面对一道 DP 题毫无头绪,或者树的递归写得乱七八糟时,技能内置了一套分层提示流程:
- 降级:DP 不会先手动填小表,找「最后一步决策」。
- 提示分层:递归写不稳先画递归树,再补
base case与边界。 - 重做:同一模板做 3 道同类题(如 0/1 背包变体)固化。
- 登记:把「为什么这里用 Map 而非数组」写成一条规律卡。
此外还提供了在职学习的 10 周节奏模板,核心铁律是新题与复习旧题保持 1:1 的比例,每周日做一套模拟并复盘错因。
适用边界
这是一个教学辅助工具,不是代写神器。它不提供题解代写、不承诺「刷多少题就能上岸」,目的是帮你建立真实的算法能力。涉及 JS 语言 API 的具体细节,请以 MDN 和当前引擎的实现为准,技能本身不覆盖语言版本差异。
使用场景
- 准备前端面试时,遇到动态规划题不知道如何定义状态和转移方程
- 写业务代码时遇到 LRU 缓存需求,想用 Map 实现但不清楚保序原理
- 刷 LeetCode 时遇到树层序遍历,BFS 和队列配合写不稳或边界处理有误
- 对算法复杂度不敏感,写完代码后无法判断 O(n) 还是 O(n²)
适合人员
- 准备跳槽的前端工程师,希望系统补齐算法短板以通过大厂技术面
- 遇到复杂数据处理瓶颈的 Node.js 后端开发,需要用更优的数据结构优化性能
- 正在学习计算机科学的转行人员,想在 JavaScript 语境下建立算法思维
- 有一定编码经验但没刷过题的程序员,想在日常工作中写出更高效的业务代码