主题文章
算法
从数据结构、不变量和复杂度出发,用 TypeScript 推导并验证常见算法。先掌握数据结构和复杂度,再用不变量、反例与测试推导查找、图、区间和缓存算法。21 篇文章算法与数据结构
数据结构基础从访问模式出发选择数组、链表、栈、队列、树与图。复杂度分析用时间和空间增长率评估算法,而不是只比较一次运行耗时。数组、哈希与双指针从两数之和开始,理解数组扫描、Map 查找和双指针移动为什么不会漏掉答案。字符串算法从字符单位开始,学习规范化、双指针与滑动窗口。栈与括号匹配利用后进先出不变量解决匹配、撤销与表达式问题。队列与滑动窗口用先进先出和单调队列处理任务流与窗口最大值。链表合并与反转围绕 next 指针不变量完成链表反转与有序合并。链表倒数节点与快慢指针通过固定间距指针处理倒数位置和删除操作。环形链表使用快慢指针判断环、定位入口并分析相遇条件。排序算法理解稳定性、比较器、归并排序和不同数据分布下的取舍。二叉树的迭代遍历用显式栈表达前序、中序和后序遍历。二叉树的递归与层序遍历比较深度优先和广度优先的状态组织方式。二叉搜索树利用有序不变量完成查找、插入、删除和验证。深度优先搜索用递归或栈探索树、图与组合空间。递归与回溯思维把选择、约束、撤销抽象为可验证的搜索树。动态规划从重叠子问题和状态转移建立可复用的求解模型。