@@ -21,3 +21,226 @@ image::images/quick-sort-01.gif[{image_attr}]
21
21
== TODO
22
22
23
23
* [ ] https://leetcode.cn/problems/number-of-islands/solutions/211211/dao-yu-lei-wen-ti-de-tong-yong-jie-fa-dfs-bian-li-/[200. 岛屿数量 - 岛屿类问题的通用解法、DFS 遍历框架^]
24
+
25
+ == 解题范式
26
+
27
+ . Two Pointers
28
+ .. Pair with Target Sum (easy)
29
+ .. Find Non-Duplicate Number Instances (easy)
30
+ .. Squaring a Sorted Array (easy)
31
+ .. Triplet Sum to Zero (medium)
32
+ .. Triplet Sum Close to Target (medium)
33
+ .. Triplets with Smaller Sum (medium)
34
+ .. Subarrays with Product Less than a Target (medium)
35
+ .. Dutch National Flag Problem (medium)
36
+ .. Problem Challenge 1: Quadruple Sum to Target (medium)
37
+ .. Problem Challenge 2: Comparing Strings containing Backspaces (medium)
38
+ .. Problem Challenge 3: Minimum Window Sort (medium)
39
+ . Fast & Slow Pointers
40
+ .. LinkedList Cycle (easy)
41
+ .. Middle of the LinkedList (easy)
42
+ .. Start of LinkedList Cycle (medium)
43
+ .. Happy Number (medium)
44
+ .. Problem Challenge 1: Palindrome LinkedList (medium)
45
+ .. Problem Challenge 2: Rearrange a LinkedList (medium)
46
+ .. Problem Challenge 3: Cycle in a Circular Array (hard)
47
+ . Sliding Window
48
+ .. Maximum Sum Subarray of Size K (easy)
49
+ .. Smallest Subarray With a Greater Sum (easy)
50
+ .. Longest Substring with K Distinct Characters (medium)
51
+ .. Fruits into Baskets (medium)
52
+ .. Longest Substring with Same Letters after Replacement (hard)
53
+ .. Longest Subarray with Ones after Replacement (hard)
54
+ .. Problem Challenge 1: Permutation in a String (hard)
55
+ .. Problem Challenge 2: String Anagrams (hard)
56
+ .. Problem Challenge 3: Smallest Window containing Substring (hard)
57
+ .. Problem Challenge 4: Words Concatenation (hard)
58
+ . Merge Intervals
59
+ .. Merge Intervals (medium)
60
+ .. Insert Interval (medium)
61
+ .. Intervals Intersection (medium)
62
+ .. Conflicting Appointments (medium)
63
+ .. Problem Challenge 1: Minimum Meeting Rooms (hard)
64
+ .. Problem Challenge 2: Maximum CPU Load (hard)
65
+ .. Problem Challenge 3: Employee Free Time (hard)
66
+ . Cyclic Sort
67
+ .. Cyclic Sort (easy)
68
+ .. Find the Missing Number (easy)
69
+ .. Find all Missing Numbers (easy)
70
+ .. Find the Duplicate Number (easy)
71
+ .. Find all Duplicate Numbers (easy)
72
+ .. Problem Challenge 1: Find the Corrupt Pair (easy)
73
+ .. Problem Challenge 2: Find the Smallest Missing Positive Number (medium)
74
+ .. Problem Challenge 3: Find the First K Missing Positive Numbers (hard)
75
+ . In-place Reversal of a Linked List
76
+ .. Reverse a LinkedList (easy)
77
+ .. Reverse a Sub-list (medium)
78
+ .. Reverse every K-element Sub-list (medium)
79
+ .. Problem Challenge 1: Reverse alternating K-element Sub-list (medium)
80
+ .. Problem Challenge 2: Rotate a LinkedList (medium)
81
+ . Stacks
82
+ .. Operations on Stack
83
+ .. Implementing Stack Data Structure
84
+ .. Applications of Stack
85
+ .. Problem 1: Balanced Parentheses
86
+ .. Problem 2: Reverse a String
87
+ .. Problem 3: Decimal to Binary Conversion
88
+ .. Problem 4: Next Greater Element
89
+ .. Problem 5: Sorting a Stack
90
+ .. Problem 6: Simplify Path
91
+ . Monotonic Stack
92
+ .. Remove Nodes From Linked List (medium)
93
+ .. Remove All Adjacent Duplicates In String (easy)
94
+ .. Next Greater Element (easy)
95
+ .. Daily Temperatures (easy)
96
+ .. Remove All Adjacent Duplicates in String II (medium)
97
+ .. Remove K Digits (hard)
98
+ . Hash Maps
99
+ .. Introduction to Hash Tables
100
+ .. Issues with Hash Tables
101
+ .. Problem 1: First Non-repeating Character (easy)
102
+ .. Problem 2: Largest Unique Number (easy)
103
+ .. Problem 3: Maximum Number of Balloons (easy)
104
+ .. Problem 4: Longest Palindrome(easy)
105
+ .. Problem 5: Ransom Note (easy)
106
+ . Tree Breadth First Search
107
+ .. Binary Tree Level Order Traversal (easy)
108
+ .. Reverse Level Order Traversal (easy)
109
+ .. Zigzag Traversal (medium)
110
+ .. Level Averages in a Binary Tree (easy)
111
+ .. Minimum Depth of a Binary Tree (easy)
112
+ .. Level Order Successor (easy)
113
+ .. Connect Level Order Siblings (medium)
114
+ .. Problem Challenge 1: Connect All Level Order Siblings (medium)
115
+ .. Problem Challenge 2: Right View of a Binary Tree (easy)
116
+ . Tree Depth First Search
117
+ .. Binary Tree Path Sum (easy)
118
+ .. All Paths for a Sum (medium)
119
+ .. Sum of Path Numbers (medium)
120
+ .. Path With Given Sequence (medium)
121
+ .. Count Paths for a Sum (medium)
122
+ .. Problem Challenge 1: Tree Diameter (medium)
123
+ .. Problem Challenge 2: Path with Maximum Sum (hard)
124
+ . Graphs
125
+ .. Graph Representations
126
+ .. Graph as an Abstract Data Type (ADT)
127
+ .. Graph Traversal - Depth First Search(DFS)
128
+ .. Graph Traversal - Breadth First Search (BFS)
129
+ .. Problem 1: Find if Path Exists in Graph(easy)
130
+ .. Problem 2: Number of Provinces (medium)
131
+ .. Problem 3: Minimum Number of Vertices to Reach All Nodes(medium)
132
+ . Island (Matrix Traversal)
133
+ .. Number of Islands (easy)
134
+ .. Biggest Island (easy)
135
+ .. Flood Fill (easy)
136
+ .. Number of Closed Islands (easy)
137
+ .. Problem Challenge 1 (easy)
138
+ .. Problem Challenge 2 (medium)
139
+ .. Problem Challenge 3 (medium)
140
+ . Two Heaps
141
+ .. Find the Median of a Number Stream (medium)
142
+ .. Sliding Window Median (hard)
143
+ .. Maximize Capital (hard)
144
+ .. Problem Challenge 1: Next Interval (hard)
145
+ . Subsets
146
+ .. Subsets (easy)
147
+ .. Subsets With Duplicates (easy)
148
+ .. Permutations (medium)
149
+ .. String Permutations by changing case (medium)
150
+ .. Balanced Parentheses (hard)
151
+ .. Unique Generalized Abbreviations (hard)
152
+ .. Problem Challenge 1: Evaluate Expression (hard)
153
+ .. Problem Challenge 2: Structurally Unique Binary Search Trees (hard)
154
+ .. Problem Challenge 3: Count of Structurally Unique Binary Search Trees (hard)
155
+ . Modified Binary Search
156
+ .. Order-agnostic Binary Search (easy)
157
+ .. Ceiling of a Number (medium)
158
+ .. Next Letter (medium)
159
+ .. Number Range (medium)
160
+ .. Search in a Sorted Infinite Array (medium)
161
+ .. Minimum Difference Element (medium)
162
+ .. Bitonic Array Maximum (easy)
163
+ .. Problem Challenge 1: Search Bitonic Array (medium)
164
+ .. Problem Challenge 2: Search in Rotated Array (medium)
165
+ .. Problem Challenge 3: Rotation Count (medium)
166
+ . Bitwise XOR
167
+ .. Single Number (easy)
168
+ .. Two Single Numbers (medium)
169
+ .. Complement of Base 10 Number (medium)
170
+ .. Problem Challenge 1: Flip and Invert an Image (hard)
171
+ . Top 'K' Elements
172
+ .. Top 'K' Numbers (easy)
173
+ .. Kth Smallest Number (easy)
174
+ .. 'K' Closest Points to the Origin (easy)
175
+ .. Connect Ropes (easy)
176
+ .. Top 'K' Frequent Numbers (medium)
177
+ .. Frequency Sort (medium)
178
+ .. Kth Largest Number in a Stream (medium)
179
+ .. 'K' Closest Numbers (medium)
180
+ .. Maximum Distinct Elements (medium)
181
+ .. Sum of Elements (medium)
182
+ .. Rearrange String (hard)
183
+ .. Problem Challenge 1: Rearrange String K Distance Apart (hard)
184
+ .. Problem Challenge 2: Scheduling Tasks (hard)
185
+ .. Problem Challenge 3: Frequency Stack (hard)
186
+ . Greedy Algorithms
187
+ .. Valid Palindrome II (easy)
188
+ .. Maximum Length of Pair Chain (medium)
189
+ .. Minimum Add to Make Parentheses Valid (medium)
190
+ .. Remove Duplicate Letters (medium)
191
+ .. Largest Palindromic Number (medium)
192
+ .. Removing Minimum and Maximum From Array (medium)
193
+ . 0/1 Knapsack (Dynamic Programming)
194
+ .. 0/1 Knapsack (medium)
195
+ .. Equal Subset Sum Partition (medium)
196
+ .. Subset Sum (medium)
197
+ .. Minimum Subset Sum Difference (hard)
198
+ .. Problem Challenge 1: Count of Subset Sum (hard)
199
+ .. Problem Challenge 2: Target Sum (hard)
200
+ . Backtracking
201
+ .. Combination Sum (medium)
202
+ .. Word Search (medium)
203
+ .. Factor Combinations (medium)
204
+ .. Split a String Into the Max Number of Unique Substrings (medium)
205
+ .. Sudoku Solver (hard)
206
+ . Trie
207
+ .. Implement Trie (Prefix Tree) (medium)
208
+ .. Index Pairs of a String (easy)
209
+ .. Design Add and Search Words Data Structure (medium)
210
+ .. Extra Characters in a String (medium)
211
+ .. Search Suggestions System (medium)
212
+ . Topological Sort (Graph)
213
+ .. Topological Sort (medium)
214
+ .. Tasks Scheduling (medium)
215
+ .. Tasks Scheduling Order (medium)
216
+ .. All Tasks Scheduling Orders (hard)
217
+ .. Alien Dictionary (hard)
218
+ .. Problem Challenge 1: Reconstructing a Sequence (hard)
219
+ .. Problem Challenge 2: Minimum Height Trees (hard)
220
+ . Union Find
221
+ .. Redundant Connection (medium)
222
+ .. Number of Provinces (medium)
223
+ .. Is Graph Bipartite? (medium)
224
+ .. Path With Minimum Effort (medium)
225
+ . Ordered Set
226
+ .. Merge Similar Items (easy)
227
+ .. 132 Pattern (medium)
228
+ .. My Calendar I (medium)
229
+ .. Longest Continuous Subarray (medium)
230
+ . Prefix Sum
231
+ .. Find the Middle Index in Array (easy)
232
+ .. Left and Right Sum Differences (easy)
233
+ .. Maximum Size Subarray Sum Equals k (medium)
234
+ .. Binary Subarrays With Sum (medium)
235
+ .. Subarray Sums Divisible by K (medium)
236
+ .. Sum of Absolute Differences in a Sorted Array (medium)
237
+ .. Subarray Sum Equals K (medium)
238
+ . Multi-threaded
239
+ .. Same Tree (medium)
240
+ .. Invert Binary Tree (medium)
241
+ .. Binary Search Tree Iterator (medium)
242
+
243
+
244
+ == 参考资料
245
+
246
+ . https://www.designgurus.io/course/grokking-the-coding-interview[Grokking the Coding Interview Patterns^]
0 commit comments