|
1 |
| -[](https://github.com/zdong1995/LeetCode-Solution-Well-Explained) [](https://github.com/zdong1995/Pattern-Summary-for-Algorithm-Problems)    |
| 1 | +[](https://github.com/zdong1995/LeetCode-Solution-Well-Explained) [](https://github.com/zdong1995/Pattern-Summary-for-Algorithm-Problems)  [](README-EN.md)  |
2 | 2 |
|
3 | 3 | 
|
4 | 4 | 文章首发于公众号『[董小染](./docs/img/wechat.png)』,算法文章主页:[https://dongxiaoran.com/algo/](https://dongxiaoran.com/algo/)
|
5 | 5 |
|
6 | 6 | ---
|
7 | 7 |
|
8 |
| -⭐️ Repo 中含有按类别总结的源码,便于本地 debug 练习。对于没有收录的题目,欢迎点击上方 Badge 链接阅读我的 [LeetCode Solution Well Explained](https://github.com/zdong1995/LeetCode-Solution-Well-Explained) 代码,如果对你有帮助欢迎在 **Github 点个 Star**。 |
| 8 | +PS: 本仓库含有按类别总结题目的源码,便于本地 debug 练习。对于没有收录的题目,欢迎点击上方 Badge 链接阅读我的 [LeetCode Solution Well Explained](https://github.com/zdong1995/LeetCode-Solution-Well-Explained) 代码。如果对你有帮助欢迎在 **Github 点个 Star**,给我继续更新的动力,谢谢! |
9 | 9 |
|
10 | 10 | 
|
11 | 11 |
|
12 |
| -在当前 LeetCode 千题时代下,刷完所有的题目是不现实的,因此更重要的是培养自己的**算法思维**和扎实**数据结构知识**,举一反三,深化思维,争取**做一题解决一类题目**,一通百通,高效快速准备算法面试。 |
| 12 | +在当前 LeetCode 千题时代下,刷完所有的题目是不现实的,因此更重要的是培养自己的**算法思维**和扎实**数据结构知识**,举一反三,深化思维。我们的目的不是完成题目,而是掌握思维过程和解决问题的能力,争取**做一题解决一类题目**,一通百通,高效快速准备算法面试。 |
13 | 13 |
|
14 |
| -本仓库归纳总结了 LeetCode 的同类型及相似思路的题目,按照从易到难的顺序,从线性到非线性数据结构的『增删改查』,从基础 Iterative 到深化 Recursion 思想,从 Intuitive 的算法到高阶的优化技巧,选取都是我认为比较经典或培养算法思维的题目,带你搭建起来自己的思维框架和套路模板。 |
| 14 | +本仓库归纳总结了 LeetCode 的同类型及相似思路的题目,按照从易到难的顺序,从线性到非线性数据结构的『**增删改查**』,从基础 Iterative 到深化 Recursion 思想,从 Intuitive 的算法到高阶的优化技巧,选取都是我认为比较经典或培养算法思维的题目,带你搭建起来自己的**思维框架**和**套路模板**。 |
15 | 15 |
|
16 |
| -- 第一部分:从基础数据结构入手,从递归思想的入门与深化,再到高频的双指针和排序算法。 |
17 |
| -- 第二部分:掌握搜索算法,宽度优先,深度优先,到记忆存储,剪枝优化,入门动态规划。 |
| 16 | +- 第一部分:从基础数据结构入手,从**递归**思想的入门与深化,再到高频的**双指针**和排序算法。 |
| 17 | +- 第二部分:掌握搜索算法,宽度优先,深度优先,到**记忆化存储**,**剪枝**优化,入门**动态规划**。 |
18 | 18 | - 第三部分:高频面试题目分析,复杂题目讲解,高级数据结构等。
|
19 | 19 |
|
20 | 20 | 
|
|
24 | 24 | - [半年零基础到 LeetCode 300 题,我的算法学习方法论](https://dongxiaoran.com/algo/basic/intro/)
|
25 | 25 | - [当我们谈论刷题时,到底在刷什么](https://dongxiaoran.com/algo/basic/how/)
|
26 | 26 |
|
27 |
| - |
28 |
| -## 目录 |
| 27 | +### 目录 |
29 | 28 |
|
30 | 29 | 1. [基础数据结构与算法](https://github.com/zdong1995/Pattern-Summary-for-Algorithm-Problems#1-基础数据结构与算法)
|
31 | 30 | 2. [优雅重要的递归思维](https://github.com/zdong1995/Pattern-Summary-for-Algorithm-Problems#2-优雅重要的递归思维)
|
|
36 | 35 | 7. [数学归纳法与动态规划 \(DP\)](https://github.com/zdong1995/Pattern-Summary-for-Algorithm-Problems#7-从数学归纳法入门动态规划)
|
37 | 36 | 8. [高频题目类型讲解](https://github.com/zdong1995/Pattern-Summary-for-Algorithm-Problems#8-高频题目类型讲解)
|
38 | 37 |
|
39 |
| -## 1. 基础数据结构与算法 |
40 |
| - |
41 |
| -### 1.1 LinkedList 的 Iterative 操作 |
42 |
| -#### ⌨️ Article: [一题顶四题,一道题掌握 LinkedList 的 Iterative](https://dongxiaoran.com/algo/basic/iterativelist/) |
43 |
| - |
44 |
| -#### 👻 Algorithm Questions: |
| 38 | +### 1. 基础数据结构与算法 |
45 | 39 |
|
46 |
| -- LC143: Reorder List |
47 |
| -- LC876: Find the middle node of Linked List |
48 |
| -- LC206: Reverse Linked List |
49 |
| -- LC21: Merge Two Sorted Linked list |
| 40 | +#### 1.1 LinkedList 的 Iterative 操作 |
| 41 | +- **Article**: [一题顶四题,一道题掌握 LinkedList 的 Iterative](https://dongxiaoran.com/algo/basic/iterativelist/) |
| 42 | +- **Algorithm Questions**: |
| 43 | + - LC143: Reorder List |
| 44 | + - LC876: Find the middle node of Linked List |
| 45 | + - LC206: Reverse Linked List |
| 46 | + - LC21: Merge Two Sorted Linked list |
| 47 | +- **Solution**: [My Java Code](src/main/java/algorithm/basic/iterative) |
50 | 48 |
|
51 |
| -#### ✅ Solution: [My Java Code](src/main/java/algorithm/basic/iterative) |
52 |
| - |
53 |
| -### 1.2 Tree Iterative Traversal as Multi-level LinkedList |
54 |
| - |
55 |
| -#### ⌨️ Article: [Tree 还可以这样 O(1) 空间遍历?四题带你深入理解 LinkedList 与 Tree 的关系](https://dongxiaoran.com/algo/basic/treetolist/) |
| 49 | +#### 1.2 Tree Iterative Traversal as Multi-level LinkedList |
56 | 50 |
|
57 |
| -#### 👻 Algorithm Questions: |
58 |
| -- LC114: Flatten Binary Tree to Linked List |
59 |
| -- LC430: Flatten a Multilevel Doubly Linked List |
60 |
| -- LC116: Populating Next Right Pointers in Each Node |
61 |
| -- LC117: Populating Next Right Pointers in Each Node II |
62 |
| -#### ✅ Solution: [My Java Code](src/main/java/algorithm/basic/iterativetree) |
| 51 | +- **Article**: [Tree 还可以这样 O(1) 空间遍历?四题带你深入理解 LinkedList 与 Tree 的关系](https://dongxiaoran.com/algo/basic/treetolist/) |
| 52 | +- **Algorithm Questions**: |
| 53 | + - LC114: Flatten Binary Tree to Linked List |
| 54 | + - LC430: Flatten a Multilevel Doubly Linked List |
| 55 | + - LC116: Populating Next Right Pointers in Each Node |
| 56 | + - LC117: Populating Next Right Pointers in Each Node II |
| 57 | +- **Solution**: [My Java Code](src/main/java/algorithm/basic/iterativetree) |
63 | 58 |
|
64 | 59 |
|
65 |
| -## 2. 优雅重要的递归思维 |
| 60 | +### 2. 优雅重要的递归思维 |
66 | 61 |
|
67 | 62 | - [ ] Introduction to Recursion
|
68 | 63 |
|
|
72 | 67 |
|
73 | 68 | - [ ] Recursion to Iterative
|
74 | 69 |
|
75 |
| -## 3. 巧妙高效的双指针 |
| 70 | +### 3. 巧妙高效的双指针 |
76 | 71 |
|
77 | 72 | - [x] Two Sum Pattern: [Code](src/main/java/algorithm/pointers/twosum)
|
78 | 73 | - [ ] Slow-Fast Pointers
|
|
85 | 80 |
|
86 | 81 | - [ ] Partition
|
87 | 82 |
|
88 |
| -## 4. 轻松手写排序算法 |
| 83 | +### 4. 轻松手写排序算法 |
89 | 84 |
|
90 | 85 | - [ ] Merge Sort
|
91 | 86 |
|
|
0 commit comments