diff --git a/README.md b/README.md index cbd5302..4b51165 100644 --- a/README.md +++ b/README.md @@ -70,23 +70,25 @@ English version is on [labuladong.online](https://labuladong.online/algo/en/) to -### [本站简介](https://labuladong.online/algo/home/) -### [配套插件及算法可视化](https://labuladong.online/algo/menu/tools/) - * [配套 Chrome 刷题插件](https://labuladong.online/algo/intro/chrome/) - * [配套 vscode 刷题插件](https://labuladong.online/algo/intro/vscode/) - * [配套 JetBrains 刷题插件](https://labuladong.online/algo/intro/jetbrains/) +* [本站简介](https://labuladong.online/algo/home/) + +* [针对初学和速成的学习规划](https://labuladong.online/algo/menu/plan/) + * [速成目录学习规划](https://labuladong.online/algo/intro/quick-learning-plan/) + * [完整目录学习规划](https://labuladong.online/algo/intro/beginner-learning-plan/) + * [算法刷题的重点和坑](https://labuladong.online/algo/intro/how-to-learn-algorithms/) + * [习题章节的练习/复习方法](https://labuladong.online/algo/intro/how-to-practice/) + +* [配套学习工具使用指南](https://labuladong.online/algo/menu/tools/) + * [AI 助教随时答疑](https://labuladong.online/algo/intro/ai-assistant/) * [算法可视化面板使用说明](https://labuladong.online/algo/intro/visualize/) + * [算法游戏玩法及汇总](https://labuladong.online/algo/intro/game/) + * [配套 Chrome 刷题插件](https://labuladong.online/algo/intro/chrome/) + * [配套 vscode/cursor 刷题插件](https://labuladong.online/algo/intro/vscode/) + * [配套 JetBrains 刷题插件](https://labuladong.online/algo/intro/jetbrains/) * [本站付费会员](https://labuladong.online/algo/intro/site-vip/) -### [针对初学和速成的学习规划](https://labuladong.online/algo/menu/plan/) - * [算法刷题的重点和坑](https://labuladong.online/algo/intro/how-to-learn-algorithms/) - * [初学者学习规划](https://labuladong.online/algo/intro/beginner-learning-plan/) - * [速成学习规划](https://labuladong.online/algo/intro/quick-learning-plan/) - * [习题章节的练习/复习方法](https://labuladong.online/algo/intro/how-to-practice/) - * [算法可视化速查页](https://labuladong.online/algo/intro/visualize-catalog/) - -### [入门:编程语言基础及练习](https://labuladong.online/algo/menu/) +* [入门:编程语言基础及练习](https://labuladong.online/algo/menu/) * [本章导读](https://labuladong.online/algo/intro/programming-language-basic/) * [C++ 语言基础](https://labuladong.online/algo/programming-language-basic/cpp/) * [Java 语言基础](https://labuladong.online/algo/programming-language-basic/java/) @@ -95,8 +97,9 @@ English version is on [labuladong.online](https://labuladong.online/algo/en/) to * [JavaScript 语言基础](https://labuladong.online/algo/intro/js/) * [力扣/LeetCode 解题须知](https://labuladong.online/algo/intro/leetcode/) * [编程语言刷题实践](https://labuladong.online/algo/programming-language-basic/lc-practice/) + * [ACM 模式代码模板](https://labuladong.online/algo/intro/acm-mode/) -### [基础:数据结构及排序精讲](https://labuladong.online/algo/menu/quick-start/) +* [基础:数据结构及排序精讲](https://labuladong.online/algo/menu/quick-start/) * [本章导读](https://labuladong.online/algo/intro/data-structure-basic/) * [时间空间复杂度入门](https://labuladong.online/algo/intro/complexity-basic/) @@ -107,28 +110,35 @@ English version is on [labuladong.online](https://labuladong.online/algo/en/) to * [手把手带你实现单/双链表](https://labuladong.online/algo/menu/linked-list/) * [链表(链式存储)基本原理](https://labuladong.online/algo/data-structure-basic/linkedlist-basic/) * [链表代码实现](https://labuladong.online/algo/data-structure-basic/linkedlist-implement/) + * [【游戏】实现贪吃蛇](https://labuladong.online/algo/game/snake/) + + * [数组链表的种种变换](https://labuladong.online/algo/menu/arr-linked/) + * [环形数组技巧及实现](https://labuladong.online/algo/data-structure-basic/cycle-array/) + * [跳表核心原理](https://labuladong.online/algo/data-structure-basic/skip-list-basic/) + * [位图原理及实现](https://labuladong.online/algo/data-structure-basic/bitmap/) * [手把手带你实现队列/栈](https://labuladong.online/algo/menu/queue-stack/) * [队列/栈基本原理](https://labuladong.online/algo/data-structure-basic/queue-stack-basic/) * [用链表实现队列/栈](https://labuladong.online/algo/data-structure-basic/linked-queue-stack/) - * [环形数组技巧](https://labuladong.online/algo/data-structure-basic/cycle-array/) * [用数组实现队列/栈](https://labuladong.online/algo/data-structure-basic/array-queue-stack/) * [双端队列(Deque)原理及实现](https://labuladong.online/algo/data-structure-basic/deque-implement/) - * [哈希表的原理及实现](https://labuladong.online/algo/menu/) + * [哈希表的原理及实现](https://labuladong.online/algo/menu/hash-table/) * [哈希表核心原理](https://labuladong.online/algo/data-structure-basic/hashmap-basic/) * [用拉链法实现哈希表](https://labuladong.online/algo/data-structure-basic/hashtable-chaining/) * [线性探查法的两个难点](https://labuladong.online/algo/data-structure-basic/linear-probing-key-point/) * [线性探查法的两种代码实现](https://labuladong.online/algo/data-structure-basic/linear-probing-code/) * [哈希集合的原理及代码实现](https://labuladong.online/algo/data-structure-basic/hash-set/) - * [哈希表结构的种种变换](https://labuladong.online/algo/menu/) + * [哈希表结构的种种变换](https://labuladong.online/algo/menu/hash-table-variation/) * [用链表加强哈希表(LinkedHashMap)](https://labuladong.online/algo/data-structure-basic/hashtable-with-linked-list/) * [用数组加强哈希表(ArrayHashMap)](https://labuladong.online/algo/data-structure-basic/hashtable-with-array/) + * [布隆过滤器原理及实现](https://labuladong.online/algo/data-structure-basic/bloom-filter/) * [二叉树结构及遍历](https://labuladong.online/algo/menu/binary-tree/) * [二叉树基础及常见类型](https://labuladong.online/algo/data-structure-basic/binary-tree-basic/) * [二叉树的递归/层序遍历](https://labuladong.online/algo/data-structure-basic/binary-tree-traverse-basic/) + * [DFS 和 BFS 的适用场景](https://labuladong.online/algo/data-structure-basic/use-case-of-dfs-bfs/) * [多叉树的递归/层序遍历](https://labuladong.online/algo/data-structure-basic/n-ary-tree-traverse-basic/) * [二叉树结构的种种变换](https://labuladong.online/algo/menu/binary-tree/) @@ -138,11 +148,16 @@ English version is on [labuladong.online](https://labuladong.online/algo/en/) to * [二叉堆核心原理及可视化](https://labuladong.online/algo/data-structure-basic/binary-heap-basic/) * [二叉堆/优先级队列代码实现](https://labuladong.online/algo/data-structure-basic/binary-heap-implement/) * [线段树核心原理及可视化](https://labuladong.online/algo/data-structure-basic/segment-tree-basic/) + * [数据压缩和霍夫曼树](https://labuladong.online/algo/data-structure-basic/huffman-tree/) * [正在更新 ing](https://labuladong.online/algo/intro/updating/) - * [图论数据结构及遍历](https://labuladong.online/algo/menu/graph-theory/) - * [图结构基础及通用代码实现](https://labuladong.online/algo/data-structure-basic/graph-basic/) + * [图结构基础及算法概览](https://labuladong.online/algo/menu/graph-theory/) + * [图论中的基本术语](https://labuladong.online/algo/data-structure-basic/graph-terminology/) + * [图结构的通用代码实现](https://labuladong.online/algo/data-structure-basic/graph-basic/) * [图结构的 DFS/BFS 遍历](https://labuladong.online/algo/data-structure-basic/graph-traverse-basic/) + * [欧拉图和一笔画游戏](https://labuladong.online/algo/data-structure-basic/eulerian-graph/) + * [图结构最短路径算法概览](https://labuladong.online/algo/data-structure-basic/graph-shortest-path/) + * [最小生成树算法概览](https://labuladong.online/algo/data-structure-basic/graph-minimum-spanning-tree/) * [Union Find 并查集原理](https://labuladong.online/algo/data-structure-basic/union-find-basic/) * [正在更新 ing](https://labuladong.online/algo/intro/updating/) @@ -163,48 +178,61 @@ English version is on [labuladong.online](https://labuladong.online/algo/en/) to * [正在更新 ing](https://labuladong.online/algo/intro/updating/) -### [第零章、核心刷题框架汇总](https://labuladong.online/algo/menu/core/) +* [第零章、核心刷题框架汇总](https://labuladong.online/algo/menu/core/) * [本章导读](https://labuladong.online/algo/intro/core-intro/) * [学习数据结构和算法的框架思维](https://labuladong.online/algo/essential-technique/algorithm-summary/) * [双指针技巧秒杀七道链表题目](https://labuladong.online/algo/essential-technique/linked-list-skills-summary/) * [双指针技巧秒杀七道数组题目](https://labuladong.online/algo/essential-technique/array-two-pointers-summary/) * [滑动窗口算法核心代码模板](https://labuladong.online/algo/essential-technique/sliding-window-framework/) - * [二分搜索算法核心代码模板](https://labuladong.online/algo/essential-technique/binary-search-framework/) + * [二叉树系列算法核心纲领](https://labuladong.online/algo/essential-technique/binary-tree-summary/) + * [一个视角 + 两种思维模式搞定递归](https://labuladong.online/algo/essential-technique/understand-recursion/) * [动态规划解题套路框架](https://labuladong.online/algo/essential-technique/dynamic-programming-framework/) * [回溯算法解题套路框架](https://labuladong.online/algo/essential-technique/backtrack-framework/) * [BFS 算法解题套路框架](https://labuladong.online/algo/essential-technique/bfs-framework/) - * [二叉树系列算法核心纲领](https://labuladong.online/algo/essential-technique/binary-tree-summary/) * [回溯算法秒杀所有排列/组合/子集问题](https://labuladong.online/algo/essential-technique/permutation-combination-subset-all-in-one/) * [贪心算法解题套路框架](https://labuladong.online/algo/essential-technique/greedy/) * [分治算法解题套路框架](https://labuladong.online/algo/essential-technique/divide-and-conquer/) * [算法时空复杂度分析实用指南](https://labuladong.online/algo/essential-technique/complexity-analysis/) -### [第一章、经典数据结构算法](https://labuladong.online/algo/menu/ds/) +* [第一章、经典数据结构算法](https://labuladong.online/algo/menu/ds/) * [手把手刷链表算法](https://labuladong.online/algo/menu/linked-list/) * [双指针技巧秒杀七道链表题目](https://labuladong.online/algo/essential-technique/linked-list-skills-summary/) - * [【强化练习】链表双指针经典习题](https://labuladong.online/algo/problem-set/linkedlist-two-pointers/) + * [链表双指针经典习题](https://labuladong.online/algo/problem-set/linkedlist-two-pointers/) * [单链表的花式反转方法汇总](https://labuladong.online/algo/data-structure/reverse-linked-list-recursion/) * [如何判断回文链表](https://labuladong.online/algo/data-structure/palindrome-linked-list/) * [手把手刷数组算法](https://labuladong.online/algo/menu/array/) * [双指针技巧秒杀七道数组题目](https://labuladong.online/algo/essential-technique/array-two-pointers-summary/) + * [【游戏】消消乐游戏](https://labuladong.online/algo/game/match-three/) * [二维数组的花式遍历技巧](https://labuladong.online/algo/practice-in-action/2d-array-traversal-summary/) + * [数组双指针经典习题](https://labuladong.online/algo/problem-set/array-two-pointers/) + * [【游戏】生命游戏](https://labuladong.online/algo/game/life-game/) * [一个方法团灭 nSum 问题](https://labuladong.online/algo/practice-in-action/nsum/) - * [【强化练习】数组双指针经典习题](https://labuladong.online/algo/problem-set/array-two-pointers/) * [小而美的算法技巧:前缀和数组](https://labuladong.online/algo/data-structure/prefix-sum/) - * [【强化练习】前缀和技巧经典习题](https://labuladong.online/algo/problem-set/perfix-sum/) + * [前缀和技巧经典习题](https://labuladong.online/algo/problem-set/perfix-sum/) * [小而美的算法技巧:差分数组](https://labuladong.online/algo/data-structure/diff-array/) * [滑动窗口算法核心代码模板](https://labuladong.online/algo/essential-technique/sliding-window-framework/) - * [【强化练习】滑动窗口算法经典习题](https://labuladong.online/algo/problem-set/sliding-window/) + * [滑动窗口算法经典习题](https://labuladong.online/algo/problem-set/sliding-window/) * [滑动窗口延伸:Rabin Karp 字符匹配算法](https://labuladong.online/algo/practice-in-action/rabinkarp/) * [二分搜索算法核心代码模板](https://labuladong.online/algo/essential-technique/binary-search-framework/) + * [二分搜索左闭右开写法](https://labuladong.online/algo/essential-technique/binary-search-left-open/) * [实际运用二分搜索时的思维框架](https://labuladong.online/algo/frequency-interview/binary-search-in-action/) - * [【强化练习】二分搜索算法经典习题](https://labuladong.online/algo/problem-set/binary-search/) + * [二分搜索算法经典习题](https://labuladong.online/algo/problem-set/binary-search/) * [带权重的随机选择算法](https://labuladong.online/algo/frequency-interview/random-pick-with-weight/) * [田忌赛马背后的算法决策](https://labuladong.online/algo/practice-in-action/advantage-shuffle/) + * [经典队列/栈算法](https://labuladong.online/algo/menu/queue-stack/) + * [队列实现栈以及栈实现队列](https://labuladong.online/algo/data-structure/stack-queue/) + * [栈的经典习题](https://labuladong.online/algo/problem-set/stack/) + * [括号类问题汇总](https://labuladong.online/algo/problem-set/parentheses/) + * [队列的经典习题](https://labuladong.online/algo/problem-set/queue/) + * [单调栈算法模板解决三道例题](https://labuladong.online/algo/data-structure/monotonic-stack/) + * [单调栈的几种变体及经典习题](https://labuladong.online/algo/problem-set/monotonic-stack/) + * [单调队列结构解决滑动窗口问题](https://labuladong.online/algo/data-structure/monotonic-queue/) + * [单调队列的通用实现及经典习题](https://labuladong.online/algo/problem-set/monotonic-queue/) + * [手把手刷二叉树算法](https://labuladong.online/algo/menu/binary-tree/) * [二叉树系列算法核心纲领](https://labuladong.online/algo/essential-technique/binary-tree-summary/) * [二叉树心法(思路篇)](https://labuladong.online/algo/data-structure/binary-tree-part1/) @@ -216,21 +244,21 @@ English version is on [labuladong.online](https://labuladong.online/algo/en/) to * [二叉搜索树心法(构造篇)](https://labuladong.online/algo/data-structure/bst-part3/) * [二叉搜索树心法(后序篇)](https://labuladong.online/algo/data-structure/bst-part4/) - * [套模板解决 100 道二叉树习题](https://labuladong.online/algo/menu/100-bt/) + * [二叉树算法习题汇总](https://labuladong.online/algo/menu/100-bt/) * [本章导读](https://labuladong.online/algo/intro/binary-tree-practice/) - * [【强化练习】用「遍历」思维解题 I](https://labuladong.online/algo/problem-set/binary-tree-traverse-i/) - * [【强化练习】用「遍历」思维解题 II](https://labuladong.online/algo/problem-set/binary-tree-traverse-ii/) - * [【强化练习】用「遍历」思维解题 III](https://labuladong.online/algo/problem-set/binary-tree-traverse-iii/) - * [【强化练习】用「分解问题」思维解题 I](https://labuladong.online/algo/problem-set/binary-tree-divide-i/) - * [【强化练习】用「分解问题」思维解题 II](https://labuladong.online/algo/problem-set/binary-tree-divide-ii/) - * [【强化练习】同时运用两种思维解题](https://labuladong.online/algo/problem-set/binary-tree-combine-two-view/) - * [【强化练习】利用后序位置解题 I](https://labuladong.online/algo/problem-set/binary-tree-post-order-i/) - * [【强化练习】利用后序位置解题 II](https://labuladong.online/algo/problem-set/binary-tree-post-order-ii/) - * [【强化练习】利用后序位置解题 III](https://labuladong.online/algo/problem-set/binary-tree-post-order-iii/) - * [【强化练习】运用层序遍历解题 I](https://labuladong.online/algo/problem-set/binary-tree-level-i/) - * [【强化练习】运用层序遍历解题 II](https://labuladong.online/algo/problem-set/binary-tree-level-ii/) - * [【强化练习】二叉搜索树经典例题 I](https://labuladong.online/algo/problem-set/bst1/) - * [【强化练习】二叉搜索树经典例题 II](https://labuladong.online/algo/problem-set/bst2/) + * [用「遍历」思维解题 I](https://labuladong.online/algo/problem-set/binary-tree-traverse-i/) + * [用「遍历」思维解题 II](https://labuladong.online/algo/problem-set/binary-tree-traverse-ii/) + * [用「遍历」思维解题 III](https://labuladong.online/algo/problem-set/binary-tree-traverse-iii/) + * [用「分解问题」思维解题 I](https://labuladong.online/algo/problem-set/binary-tree-divide-i/) + * [用「分解问题」思维解题 II](https://labuladong.online/algo/problem-set/binary-tree-divide-ii/) + * [同时运用两种思维解题](https://labuladong.online/algo/problem-set/binary-tree-combine-two-view/) + * [利用后序位置解题 I](https://labuladong.online/algo/problem-set/binary-tree-post-order-i/) + * [利用后序位置解题 II](https://labuladong.online/algo/problem-set/binary-tree-post-order-ii/) + * [利用后序位置解题 III](https://labuladong.online/algo/problem-set/binary-tree-post-order-iii/) + * [运用层序遍历解题 I](https://labuladong.online/algo/problem-set/binary-tree-level-i/) + * [运用层序遍历解题 II](https://labuladong.online/algo/problem-set/binary-tree-level-ii/) + * [二叉搜索树经典例题 I](https://labuladong.online/algo/problem-set/bst1/) + * [二叉搜索树经典例题 II](https://labuladong.online/algo/problem-set/bst2/) * [二叉树的拓展延伸](https://labuladong.online/algo/menu/more-bt/) * [拓展:最近公共祖先系列解题框架](https://labuladong.online/algo/practice-in-action/lowest-common-ancestor-summary/) @@ -240,72 +268,75 @@ English version is on [labuladong.online](https://labuladong.online/algo/en/) to * [拓展:快速排序详解及应用](https://labuladong.online/algo/practice-in-action/quick-sort/) * [拓展:用栈模拟递归迭代遍历二叉树](https://labuladong.online/algo/data-structure/iterative-traversal-binary-tree/) - * [手把手设计数据结构](https://labuladong.online/algo/menu/design/) - * [队列实现栈以及栈实现队列](https://labuladong.online/algo/data-structure/stack-queue/) - * [【强化练习】栈的经典习题](https://labuladong.online/algo/problem-set/stack/) - * [【强化练习】括号类问题汇总](https://labuladong.online/algo/problem-set/parentheses/) - * [【强化练习】队列的经典习题](https://labuladong.online/algo/problem-set/queue/) - * [单调栈算法模板解决三道例题](https://labuladong.online/algo/data-structure/monotonic-stack/) - * [【强化练习】单调栈的几种变体及经典习题](https://labuladong.online/algo/problem-set/monotonic-stack/) - * [单调队列结构解决滑动窗口问题](https://labuladong.online/algo/data-structure/monotonic-queue/) - * [【强化练习】单调队列的通用实现及经典习题](https://labuladong.online/algo/problem-set/monotonic-queue/) + * [经典数据结构设计](https://labuladong.online/algo/menu/design/) * [算法就像搭乐高:手撸 LRU 算法](https://labuladong.online/algo/data-structure/lru-cache/) * [算法就像搭乐高:手撸 LFU 算法](https://labuladong.online/algo/frequency-interview/lfu/) * [常数时间删除/查找数组中的任意元素](https://labuladong.online/algo/data-structure/random-set/) - * [【强化练习】哈希表更多习题](https://labuladong.online/algo/problem-set/hash-table/) - * [【强化练习】优先级队列经典习题](https://labuladong.online/algo/problem-set/binary-heap/) + * [哈希表更多习题](https://labuladong.online/algo/problem-set/hash-table/) + * [优先级队列经典习题](https://labuladong.online/algo/problem-set/binary-heap/) * [TreeMap/TreeSet 代码实现](https://labuladong.online/algo/data-structure-basic/tree-map-implement/) - * [SegmentTree 线段树代码实现](https://labuladong.online/algo/data-structure/segment-tree-implement/) - * [Trie/字典树/前缀树代码实现](https://labuladong.online/algo/data-structure/trie-implement/) - * [【强化练习】Trie 树算法习题](https://labuladong.online/algo/problem-set/trie/) - * [设计朋友圈时间线功能](https://labuladong.online/algo/data-structure/design-twitter/) + * [基本线段树的代码实现](https://labuladong.online/algo/data-structure/segment-tree-implement/) + * [优化:实现动态线段树](https://labuladong.online/algo/data-structure/segment-tree-dynamic/) + * [优化:实现懒更新线段树](https://labuladong.online/algo/data-structure/segment-tree-lazy-update/) + * [线段树经典习题](https://labuladong.online/algo/problem-set/segment-tree/) + * [Trie 树代码实现](https://labuladong.online/algo/data-structure/trie-implement/) + * [Trie 树算法习题](https://labuladong.online/algo/problem-set/trie/) * [设计考场座位分配算法](https://labuladong.online/algo/frequency-interview/exam-room/) - * [【强化练习】更多经典设计习题](https://labuladong.online/algo/problem-set/ds-design/) + * [更多经典设计习题](https://labuladong.online/algo/problem-set/ds-design/) + * [实现霍夫曼编码压缩算法](https://labuladong.online/algo/data-structure/huffman-tree-implementation/) + * [一致性哈希算法的原理及实现](https://labuladong.online/algo/data-structure/consistent-hashing/) * [拓展:如何实现一个计算器](https://labuladong.online/algo/data-structure/implement-calculator/) * [拓展:两个二叉堆实现中位数算法](https://labuladong.online/algo/practice-in-action/find-median-from-data-stream/) * [拓展:数组去重问题(困难版)](https://labuladong.online/algo/frequency-interview/remove-duplicate-letters/) - * [手把手刷图算法](https://labuladong.online/algo/menu/graph/) - * [环检测及拓扑排序算法](https://labuladong.online/algo/data-structure/topological-sort/) - * [众里寻他千百度:名流问题](https://labuladong.online/algo/frequency-interview/find-celebrity/) + * [经典图算法](https://labuladong.online/algo/menu/graph/) * [二分图判定算法](https://labuladong.online/algo/data-structure/bipartite-graph/) + * [Hierholzer 算法寻找欧拉路径](https://labuladong.online/algo/data-structure/eulerian-graph-hierholzer/) + * [欧拉路径经典习题](https://labuladong.online/algo/problem-set/eulerian-path/) + * [环检测算法](https://labuladong.online/algo/data-structure/cycle-detection/) + * [拓扑排序算法](https://labuladong.online/algo/data-structure/topological-sort/) * [Union-Find 并查集算法](https://labuladong.online/algo/data-structure/union-find/) - * [【强化练习】并查集经典习题](https://labuladong.online/algo/problem-set/union-find/) + * [并查集经典习题](https://labuladong.online/algo/problem-set/union-find/) + * [Dijkstra 算法核心原理及实现](https://labuladong.online/algo/data-structure/dijkstra/) + * [Dijkstra 拓展:带限制的最短路问题](https://labuladong.online/algo/data-structure/dijkstra-follow-up/) + * [Dijkstra 算法经典习题](https://labuladong.online/algo/problem-set/dijkstra/) + * [A* 算法核心原理及实现](https://labuladong.online/algo/data-structure/a-star/) * [Kruskal 最小生成树算法](https://labuladong.online/algo/data-structure/kruskal/) * [Prim 最小生成树算法](https://labuladong.online/algo/data-structure/prim/) - * [Dijkstra 算法模板及应用](https://labuladong.online/algo/data-structure/dijkstra/) - * [【强化练习】Dijkstra 算法经典习题](https://labuladong.online/algo/problem-set/dijkstra/) -### [第二章、经典暴力搜索算法](https://labuladong.online/algo/menu/braute-force-search/) +* [第二章、经典暴力搜索算法](https://labuladong.online/algo/menu/braute-force-search/) * [DFS/回溯算法](https://labuladong.online/algo/menu/dfs/) * [回溯算法解题套路框架](https://labuladong.online/algo/essential-technique/backtrack-framework/) * [回溯算法实践:数独和 N 皇后问题](https://labuladong.online/algo/practice-in-action/sudoku-nqueue/) + * [【游戏】实现数独作弊器](https://labuladong.online/algo/game/sudoku/) * [回溯算法秒杀所有排列/组合/子集问题](https://labuladong.online/algo/essential-technique/permutation-combination-subset-all-in-one/) - * [球盒模型:回溯算法穷举的两种视角](https://labuladong.online/algo/practice-in-action/two-views-of-backtrack/) * [解答回溯算法/DFS算法的若干疑问](https://labuladong.online/algo/essential-technique/backtrack-vs-dfs/) * [一文秒杀所有岛屿题目](https://labuladong.online/algo/frequency-interview/island-dfs-summary/) + * [【游戏】扫雷 II](https://labuladong.online/algo/game/minesweeper-ii/) + * [球盒模型:回溯算法穷举的两种视角](https://labuladong.online/algo/practice-in-action/two-views-of-backtrack/) * [回溯算法实践:括号生成](https://labuladong.online/algo/practice-in-action/generate-parentheses/) * [回溯算法实践:集合划分](https://labuladong.online/algo/practice-in-action/partition-to-k-equal-sum-subsets/) - * [【强化练习】回溯算法经典习题 I](https://labuladong.online/algo/problem-set/backtrack-i/) - * [【强化练习】回溯算法经典习题 II](https://labuladong.online/algo/problem-set/backtrack-ii/) - * [【强化练习】回溯算法经典习题 III](https://labuladong.online/algo/problem-set/backtrack-iii/) + * [回溯算法经典习题 I](https://labuladong.online/algo/problem-set/backtrack-i/) + * [回溯算法经典习题 II](https://labuladong.online/algo/problem-set/backtrack-ii/) + * [回溯算法经典习题 III](https://labuladong.online/algo/problem-set/backtrack-iii/) * [BFS 算法](https://labuladong.online/algo/menu/bfs/) * [BFS 算法解题套路框架](https://labuladong.online/algo/essential-technique/bfs-framework/) - * [【强化练习】BFS 经典习题 I](https://labuladong.online/algo/problem-set/bfs/) - * [【强化练习】BFS 经典习题 II](https://labuladong.online/algo/problem-set/bfs-ii/) - * [正在更新 ing](https://labuladong.online/algo/intro/updating/) + * [【游戏】求解迷宫](https://labuladong.online/algo/game/maze/) + * [【游戏】华容道游戏](https://labuladong.online/algo/game/huarong-road/) + * [【游戏】连连看游戏](https://labuladong.online/algo/game/connect-two/) + * [BFS 经典习题 I](https://labuladong.online/algo/problem-set/bfs/) + * [BFS 经典习题 II](https://labuladong.online/algo/problem-set/bfs-ii/) - -### [第三章、经典动态规划算法](https://labuladong.online/algo/menu/dp/) +* [第三章、经典动态规划算法](https://labuladong.online/algo/menu/dp/) * [动态规划基本技巧](https://labuladong.online/algo/menu/dp-basic/) * [动态规划解题套路框架](https://labuladong.online/algo/essential-technique/dynamic-programming-framework/) * [动态规划设计:最长递增子序列](https://labuladong.online/algo/dynamic-programming/longest-increasing-subsequence/) * [base case 和备忘录的初始值怎么定?](https://labuladong.online/algo/dynamic-programming/memo-fundamental/) * [动态规划穷举的两种视角](https://labuladong.online/algo/dynamic-programming/two-views-of-dp/) * [动态规划和回溯算法的思维转换](https://labuladong.online/algo/dynamic-programming/word-break/) - * [对动态规划进行降维打击](https://labuladong.online/algo/dynamic-programming/space-optimization/) + * [对动态规划进行空间压缩](https://labuladong.online/algo/dynamic-programming/space-optimization/) * [最优子结构原理和 dp 数组遍历方向](https://labuladong.online/algo/dynamic-programming/faq-summary/) * [子序列类型问题](https://labuladong.online/algo/menu/subsequence/) @@ -325,6 +356,7 @@ English version is on [labuladong.online](https://labuladong.online/algo/en/) to * [动态规划帮我通关了《魔塔》](https://labuladong.online/algo/dynamic-programming/magic-tower/) * [动态规划帮我通关了《辐射4》](https://labuladong.online/algo/dynamic-programming/freedom-trail/) * [旅游省钱大法:加权最短路径](https://labuladong.online/algo/dynamic-programming/cheap-travel/) + * [多源最短路径:Floyd 算法](https://labuladong.online/algo/data-structure/floyd/) * [经典动态规划:正则表达式](https://labuladong.online/algo/dynamic-programming/regular-expression-matching/) * [经典动态规划:高楼扔鸡蛋](https://labuladong.online/algo/dynamic-programming/egg-drop/) * [经典动态规划:戳气球](https://labuladong.online/algo/dynamic-programming/burst-balloons/) @@ -332,6 +364,12 @@ English version is on [labuladong.online](https://labuladong.online/algo/en/) to * [一个方法团灭 LeetCode 打家劫舍问题](https://labuladong.online/algo/dynamic-programming/house-robber/) * [一个方法团灭 LeetCode 股票买卖问题](https://labuladong.online/algo/dynamic-programming/stock-problem-summary/) + * [动态规划习题集](https://labuladong.online/algo/menu/dp-basic/) + * [打家劫舍问题模式](https://labuladong.online/algo/problem-set/rob-house/) + * [背包问题经典习题](https://labuladong.online/algo/problem-set/knapsack/) + * [动态规划经典习题 I](https://labuladong.online/algo/problem-set/dynamic-programming-i/) + * [动态规划经典习题 II](https://labuladong.online/algo/problem-set/dynamic-programming-ii/) + * [贪心类型问题](https://labuladong.online/algo/menu/greedy/) * [贪心算法解题套路框架](https://labuladong.online/algo/essential-technique/greedy/) * [老司机加油算法](https://labuladong.online/algo/frequency-interview/gas-station-greedy/) @@ -340,20 +378,20 @@ English version is on [labuladong.online](https://labuladong.online/algo/en/) to * [剪视频剪出一个贪心算法](https://labuladong.online/algo/frequency-interview/cut-video/) -### [第四章、其他常见算法技巧](https://labuladong.online/algo/menu/other/) +* [第四章、其他常见算法技巧](https://labuladong.online/algo/menu/other/) * [数学运算技巧](https://labuladong.online/algo/menu/math/) * [一行代码就能解决的算法题](https://labuladong.online/algo/frequency-interview/one-line-solutions/) * [常用的位操作](https://labuladong.online/algo/frequency-interview/bitwise-operation/) + * [必知必会数学技巧](https://labuladong.online/algo/essential-technique/math-techniques-summary/) + * [【游戏】扫雷游戏地图生成器](https://labuladong.online/algo/game/minesweeper/) * [谈谈游戏中的随机算法](https://labuladong.online/algo/frequency-interview/random-algorithm/) * [讲两道常考的阶乘算法题](https://labuladong.online/algo/frequency-interview/factorial-problems/) * [如何高效寻找素数](https://labuladong.online/algo/frequency-interview/print-prime-number/) - * [如何高效进行模幂运算](https://labuladong.online/algo/frequency-interview/quick-power/) * [如何同时寻找缺失和重复的元素](https://labuladong.online/algo/frequency-interview/mismatch-set/) * [几个反直觉的概率问题](https://labuladong.online/algo/frequency-interview/probability-problem/) - * [【强化练习】数学技巧相关习题](https://labuladong.online/algo/problem-set/math-tricks/) + * [数学技巧相关习题](https://labuladong.online/algo/problem-set/math-tricks/) * [经典面试题](https://labuladong.online/algo/menu/interview/) - * [算法笔试「骗分」套路](https://labuladong.online/algo/other-skills/tips-in-exam/) * [如何高效解决接雨水问题](https://labuladong.online/algo/frequency-interview/trapping-rain-water/) * [一文秒杀所有丑数系列问题](https://labuladong.online/algo/frequency-interview/ugly-number-summary/) * [一个方法解决三道区间问题](https://labuladong.online/algo/practice-in-action/interval-problem-summary/) @@ -362,13 +400,41 @@ English version is on [labuladong.online](https://labuladong.online/algo/en/) to * [字符串乘法计算](https://labuladong.online/algo/practice-in-action/multiply-strings/) * [如何判定完美矩形](https://labuladong.online/algo/frequency-interview/perfect-rectangle/) -### [附录](https://labuladong.online/algo/menu/appendix/) - * [labuladong.online 更新日志](https://labuladong.online/algo/changelog/website/) - * [可视化面板更新日志](https://labuladong.online/algo/changelog/visualize/) - * [Chrome 刷题插件更新日志](https://labuladong.online/algo/changelog/chrome/) - * [vscode 刷题插件更新日志](https://labuladong.online/algo/changelog/vscode/) - * [Jetbrain 刷题插件更新日志](https://labuladong.online/algo/changelog/jetbrain/) - * [网站/插件问题反馈](https://labuladong.online/algo/intro/bug-report/) +* [更多内容](https://labuladong.online/algo/menu/appendix/) + * [计算机基础知识](https://labuladong.online/algo/menu/computer-basics/) + * [AI 时代的前端开发入门教程](https://labuladong.online/algo/computer-science/frontend-introduction/) + * [现代加密技术入门](https://labuladong.online/algo/computer-science/encryption-intro/) + * [深入理解 session 和 cookie](https://labuladong.online/algo/other-skills/session-and-cookie/) + * [深入理解 JSON Web Token (JWT)](https://labuladong.online/algo/computer-science/how-jwt-works/) + * [认证和授权的区别与联系](https://labuladong.online/algo/computer-science/authentication-vs-authorization/) + * [深入理解 OAuth 2.0 授权框架](https://labuladong.online/algo/computer-science/oauth2-explained/) + * [OAuth 2.0 和 OIDC 认证](https://labuladong.online/algo/computer-science/oidc/) + * [OAuth 2.0 与 PKCE](https://labuladong.online/algo/computer-science/pkce/) + * [深入理解单点登录 (SSO)](https://labuladong.online/algo/computer-science/sso/) + * [深入理解数字证书和 CA](https://labuladong.online/algo/computer-science/certificate-and-ca/) + * [深入理解 TLS 密钥协商](https://labuladong.online/algo/computer-science/tls-key-exchange/) + * [深入理解 mTLS 双向认证](https://labuladong.online/algo/computer-science/mtls/) + * [初识 Linux 文件系统](https://labuladong.online/algo/other-skills/linux-file-system/) + * [Linux的进程、线程、文件描述符是什么](https://labuladong.online/algo/other-skills/linux-process/) + * [Linux 管道符的坑](https://labuladong.online/algo/other-skills/linux-pipeline/) + * [Linux shell 的使用技巧](https://labuladong.online/algo/other-skills/linux-shell/) + * [浅谈存储系统:LSM 树设计原理](https://labuladong.online/algo/other-skills/lsm-tree/) + * [正在更新 ing](https://labuladong.online/algo/intro/updating/) + + * [设计模式](https://labuladong.online/algo/menu/design-pattern/) + * [单例模式](https://labuladong.online/algo/design-pattern/singleton/) + * [工厂方法模式](https://labuladong.online/algo/design-pattern/factory-method/) + * [抽象工厂模式](https://labuladong.online/algo/design-pattern/abstract-factory/) + * [生成器模式](https://labuladong.online/algo/design-pattern/builder/) + * [原型模式](https://labuladong.online/algo/design-pattern/prototype/) + * [适配器模式](https://labuladong.online/algo/design-pattern/adapter/) + * [组合模式](https://labuladong.online/algo/design-pattern/composite/) + * [装饰模式](https://labuladong.online/algo/design-pattern/decorator/) + * [桥接模式](https://labuladong.online/algo/design-pattern/bridge/) + * [观察者模式](https://labuladong.online/algo/design-pattern/observer/) + * [策略模式](https://labuladong.online/algo/design-pattern/strategy/) + * [正在更新 ing](https://labuladong.online/algo/intro/updating/) +