1. Array
基础 | ||
---|---|---|
27 | Remove Element | |
26 | Remove Duplicates from Sorted Array | |
80 | Remove Duplicates from Sorted Array II | |
277 | Find the Celebrity | |
189 | Rotate Array | |
41 | First Missing Positive | |
299 | Bulls and Cows | |
134 | Gas Station | |
118 | Pascal’s Triangle | 很少考 |
119 | Pascal’s Triangle II | 很少考 |
169 | Majority Element | 很少考 |
229 | Majority Element II | 很少考 |
274 | H-Index | |
275 | H-Index II | Binary Search |
243 | Shortest Word Distance | |
244 | Shortest Word Distance II | |
245 | Shortest Word Distance III | |
217 | Contains Duplicate | |
219 | Contains Duplicate II | 很少考 |
220 | Contains Duplicate III | 很少考 |
55 | Jump Game | |
45 | Jump Game II | |
121 | Best Time to Buy and Sell Stock | |
122 | Best Time to Buy and Sell Stock II | |
123 | Best Time to Buy and Sell Stock III | |
188 | Best Time to Buy and Sell Stock IV | |
309 | Best Time to Buy and Sell Stock with Cooldown | |
11 | Container With Most Water | |
42 | Trapping Rain Water | |
334 | Increasing Triplet Subsequence | |
128 | Longest Consecutive Sequence | |
164 | Maximum Gap | Bucket |
287 | Find the Duplicate Number | |
135 | Candy | 很少考 |
330 | Patching Array | 很少考 |
提高 | ||
4 | Median of Two Sorted Arrays | |
321 | Create Maximum Number | 很少考 |
327 | Count of Range Sum | 很少考 |
289 | Game of Life | |
Interval | ||
57 | Insert Interval | |
56 | Merge Intervals | |
252 | Meeting Rooms | |
253 | Meeting Rooms II | |
352 | Data Stream as Disjoint Intervals | TreeMap |
Counter | ||
239 | Sliding Window Maximum | |
295 | Find Median from Data Stream | |
53 | Maximum Subarray | |
325 | Maximum Size Subarray Sum Equals k | |
209 | Minimum Size Subarray Sum | |
238 | Product of Array Except Self | |
152 | Maximum Product Subarray | |
228 | Summary Ranges | |
163 | Missing Ranges | |
Sort | ||
88 | Merge Sorted Array | |
75 | Sort Colors | |
283 | Move Zeroes | |
376 | Wiggle Subsequence | |
280 | Wiggle Sort | |
324 | Wiggle Sort II |
2. String
基础 | ||
---|---|---|
28 | Implement strStr() | |
14 | Longest Common Prefix | |
58 | Length of Last Word | |
387 | First Unique Character in a String | |
383 | Ransom Note | |
344 | Reverse String | |
151 | Reverse Words in a String | |
186 | Reverse Words in a String II | |
345 | Reverse Vowels of a String | |
205 | Isomorphic Strings | |
293 | Flip Game | |
294 | Flip Game II | |
290 | Word Pattern | |
242 | Valid Anagram | |
49 | Group Anagrams | |
249 | Group Shifted Strings | |
87 | Scramble String | |
179 | Largest Number | 很少考 |
6 | ZigZag Conversion | 很少考 |
161 | One Edit Distance | |
38 | Count and Say | |
358 | Rearrange String k Distance Apart | |
316 | Remove Duplicate Letters | |
271 | Encode and Decode Strings | |
168 | Excel Sheet Column Title | |
171 | Excel Sheet Column Number | |
13 | Roman to Integer | |
12 | Integer to Roman | |
273 | Integer to English Words | |
246 | Strobogrammatic Number | |
247 | Strobogrammatic Number II | |
248 | Strobogrammatic Number III | 很少考 |
提高 | ||
68 | Text Justification | |
65 | Valid Number | |
157 | Read N Characters Given Read4 | |
158 | Read N Characters Given Read4 II - Call multiple times | |
Substring | ||
76 | Minimum Window Substring | Sliding Window |
30 | Substring with Concatenation of All Words | Sliding Window |
3 | Longest Substring Without Repeating Characters | Sliding Window |
340 | Longest Substring with At Most K Distinct Characters | Sliding Window |
395 | Longest Substring with At Least K Repeating Characters | Sliding Window |
159 | Longest Substring with At Most Two Distinct Characters | Sliding Window |
Palindrome | ||
125 | Valid Palindrome | |
266 | Palindrome Permutation | |
5 | Longest Palindromic Substring | |
9 | Palindrome Number | |
214 | Shortest Palindrome | |
336 | Palindrome Pairs | |
131 | Palindrome Partitioning | |
132 | Palindrome Partitioning II | |
267 | Palindrome Permutation II | |
Parentheses | ||
20 | Valid Parentheses | |
22 | Generate Parentheses | |
32 | Longest Valid Parentheses | |
241 | Different Ways to Add Parentheses | |
301 | Remove Invalid Parentheses | |
Subsequence | ||
392 | Is Subsequence | |
115 | Distinct Subsequences | |
187 | Repeated DNA Sequences | 很少考 |
3. Math
基础 | ||
---|---|---|
7 | Reverse Integer | |
165 | Compare Version Numbers | |
66 | Plus One | |
8 | String to Integer (atoi) | |
258 | Add Digits | |
67 | Add Binary | |
43 | Multiply Strings | |
29 | Divide Two Integers | |
69 | Sqrt(x) | |
50 | Pow(x, n) | |
367 | Valid Perfect Square | |
365 | Water and Jug Problem | |
204 | Count Primes | |
Sum | ||
1 | Two Sum | |
167 | Two Sum II - Input array is sorted | |
15 | 3Sum | |
16 | 3Sum Closest | 很少考 |
259 | 3Sum Smaller | 很少考 |
18 | 4Sum | |
很少考 | ||
231 | Power of Two | |
326 | Power of Three | |
342 | Power of Four | |
372 | Super Pow | |
233 | Number of Digit One | |
319 | Bulb Switcher | |
292 | Nim Game | |
202 | Happy Number | |
400 | Nth Digit | |
263 | Ugly Number | |
264 | Ugly Number II | |
306 | Additive Number | |
172 | Factorial Trailing Zeroes | |
343 | Integer Break | |
396 | Rotate Function | |
390 | Elimination Game | |
386 | Lexicographical Numbers | |
357 | Count Numbers with Unique Digits | |
360 | Sort Transformed Array | |
397 | Integer Replacement | |
368 | Largest Divisible Subset |
4. Tree
基础 | ||
---|---|---|
144 | Binary Tree Preorder Traversal | preorder |
94 | Binary Tree Inorder Traversal | Inorder |
145 | Binary Tree Postorder Traversal | postorder |
102 | Binary Tree Level Order Traversal | DFS + BFS |
Preorder | ||
100 | Same Tree | preorder |
101 | Symmetric Tree | preorder |
226 | Invert Binary Tree | preorder + BFS |
257 | Binary Tree Paths | preorder |
112 | Path Sum | preorder |
113 | Path Sum II | preorder |
129 | Sum Root to Leaf Numbers | preorder |
298 | Binary Tree Longest Consecutive Sequence | preorder |
111 | Minimum Depth of Binary Tree | preorder |
Postorder | ||
104 | Maximum Depth of Binary Tree | postorder |
110 | Balanced Binary Tree | postorder |
124 | Binary Tree Maximum Path Sum | postorder |
250 | Count Univalue Subtrees | postorder |
366 | Find Leaves of Binary Tree | postorder |
337 | House Robber III | postorder + preorder |
BFS | ||
107 | Binary Tree Level Order Traversal II | BFS |
103 | Binary Tree Zigzag Level Order Traversal | BFS |
199 | Binary Tree Right Side View | BFS + preorder |
BST | ||
98 | Validate Binary Search Tree | preorder |
235 | Lowest Common Ancestor of a Binary Search Tree | preorder |
236 | Lowest Common Ancestor of a Binary Tree | postorder |
108 | Convert Sorted Array to Binary Search Tree | binary search |
109 | Convert Sorted List to Binary Search Tree | binary search |
173 | Binary Search Tree Iterator | inorder |
230 | Kth Smallest Element in a BST | inorder |
297 | Serialize and Deserialize Binary Tree | BFS |
285 | Inorder Successor in BST | inorder |
270 | Closest Binary Search Tree Value | preorder |
272 | Closest Binary Search Tree Value II | inorder |
99 | Recover Binary Search Tree | inorder |
重要程度 | ||
156 | Binary Tree Upside Down | 很少考 |
114 | Flatten Binary Tree to Linked List | 很少考 |
255 | Verify Preorder Sequence in Binary Search Tree | 很少考 |
333 | Largest BST Subtree | 很少考 |
222 | Count Complete Tree Nodes | 很少考 |
105 | Construct Binary Tree from Preorder and Inorder Traversal | 很少考 |
106 | Construct Binary Tree from Inorder and Postorder Traversal | 很少考 |
116 | Populating Next Right Pointers in Each Node | 重要 |
117 | Populating Next Right Pointers in Each Node II | 重要 |
314 | Binary Tree Vertical Order Traversal | 重要 |
96 | Unique Binary Search Trees | 重要 |
95 | Unique Binary Search Trees II | 很少考 |
331 | Verify Preorder Serialization of a Binary Tree | 很少考 |
5. Backtracking
基础 | ||
---|---|---|
78 | Subsets | |
90 | Subsets II | |
77 | Combinations | |
39 | Combination Sum | |
40 | Combination Sum II | |
216 | Combination Sum III | |
377 | Combination Sum IV | Dynamic Programming |
254 | Factor Combinations | |
46 | Permutations | |
47 | Permutations II | |
31 | Next Permutation | String |
60 | Permutation Sequence | String |
291 | Word Pattern II | |
Enumeration | ||
17 | Letter Combinations of a Phone Number | |
320 | Generalized Abbreviation | 要重录 |
93 | Restore IP Addresses | 很少考 |
282 | Expression Add Operators | |
140 | Word Break II | |
351 | Android Unlock Patterns |
6. Dynamic Programming
一维 | ||
---|---|---|
70 | Climbing Stairs | |
62 | Unique Paths | |
63 | Unique Paths II | |
120 | Triangle | 很少考 |
279 | Perfect Squares | |
139 | Word Break | |
375 | Guess Number Higher or Lower II | |
312 | Burst Balloons | |
322 | Coin Change | |
二维 | ||
256 | Paint House | |
265 | Paint House II | |
64 | Minimum Path Sum | |
72 | Edit Distance | |
97 | Interleaving String | |
174 | Dungeon Game | |
221 | Maximal Square | |
85 | Maximal Rectangle | |
363 | Max Sum of Rectangle No Larger Than K | TreeSet |
化简 | ||
198 | House Robber | |
213 | House Robber II | |
276 | Paint Fence | |
91 | Decode Ways | |
10 | Regular Expression Matching | |
44 | Wildcard Matching |
7. LinkedList
基础 | |
---|---|
206 | Reverse Linked List |
141 | Linked List Cycle |
24 | Swap Nodes in Pairs |
328 | Odd Even Linked List |
92 | Reverse Linked List II |
237 | Delete Node in a Linked List |
19 | Remove Nth Node From End of List |
83 | Remove Duplicates from Sorted List |
203 | Remove Linked List Elements |
82 | Remove Duplicates from Sorted List II |
369 | Plus One Linked List |
2 | Add Two Numbers |
160 | Intersection of Two Linked Lists |
21 | Merge Two Sorted Lists |
提高 | |
234 | Palindrome Linked List |
143 | Reorder List |
142 | Linked List Cycle II |
148 | Sort List |
25 | Reverse Nodes in k-Group |
61 | Rotate List |
86 | Partition List |
23 | Merge k Sorted Lists |
147 | Insertion Sort List |
8. Binary Search
基础 | |
---|---|
278 | First Bad Version |
35 | Search Insert Position |
33 | Search in Rotated Sorted Array |
81 | Search in Rotated Sorted Array II |
153 | Find Minimum in Rotated Sorted Array |
154 | Find Minimum in Rotated Sorted Array II |
162 | Find Peak Element |
374 | Guess Number Higher or Lower |
34 | Search for a Range |
349 | Intersection of Two Arrays |
350 | Intersection of Two Arrays II |
315 | Count of Smaller Numbers After Self |
300 | Longest Increasing Subsequence |
354 | Russian Doll Envelopes |
9. Matrix
48 | Rotate Image |
---|---|
54 | Spiral Matrix |
59 | Spiral Matrix II |
73 | Set Matrix Zeroes |
311 | Sparse Matrix Multiplication |
329 | Longest Increasing Path in a Matrix |
378 | Kth Smallest Element in a Sorted Matrix |
74 | Search a 2D Matrix |
240 | Search a 2D Matrix II |
370 | Range Addition |
79 | Word Search |
296 | Best Meeting Point |
361 | Bomb Enemy |
317 | Shortest Distance from All Buildings |
302 | Smallest Rectangle Enclosing Black Pixels |
36 | Valid Sudoku |
37 | Sudoku Solver |
10. DFS & BFS
基础 | ||
---|---|---|
200 | Number of Islands | |
286 | Walls and Gates | |
130 | Surrounded Regions | |
339 | Nested List Weight Sum | |
364 | Nested List Weight Sum II | |
127 | Word Ladder | |
51 | N-Queens | |
52 | N-Queens II | |
126 | Word Ladder II |
11. Stack & PriorityQueue
Stack | ||
---|---|---|
155 | Min Stack | |
232 | Implement Queue using Stacks | |
225 | Implement Stack using Queues | |
150 | Evaluate Reverse Polish Notation | |
71 | Simplify Path | |
388 | Longest Absolute File Path | |
394 | Decode String | |
224 | Basic Calculator | |
227 | Basic Calculator II | |
385 | Mini Parser | |
84 | Largest Rectangle in Histogram | |
PriorityQueue | ||
215 | Kth Largest Element in an Array | |
347 | Top K Frequent Elements | |
313 | Super Ugly Number | 很少考 |
373 | Find K Pairs with Smallest Sums | 很少考 |
218 | The Skyline Problem | |
332 | Reconstruct Itinerary | |
341 | Flatten Nested List Iterator |
12. Bit Manipulation
基础 | |
---|---|
389 | Find the Difference |
136 | Single Number |
318 | Maximum Product of Word Lengths |
很少考 | |
393 | UTF-8 Validation |
201 | Bitwise AND of Numbers Range |
371 | Sum of Two Integers |
338 | Counting Bits |
89 | Gray Code |
268 | Missing Number |
191 | Number of 1 Bits |
190 | Reverse Bits |
137 | Single Number II |
260 | Single Number III |
13. Topological Sort
基础 | |
---|---|
207 | Course Schedule |
210 | Course Schedule II |
269 | Alien Dictionary |
14. Random
基础 | |
---|---|
模板 | Reservoir Sampling |
384 | Shuffle an Array |
398 | Random Pick Index |
382 | Linked List Random Node |
380 | Insert Delete GetRandom O(1) |
381 | Insert Delete GetRandom O(1) - Duplicates allowed |
138 | Copy List with Random Pointer |
15. Graph
基础 | ||
---|---|---|
133 | Clone Graph | |
399 | Evaluate Division | |
310 | Minimum Height Trees | |
图形学 | ||
335 | Self Crossing | 很少考 |
149 | Max Points on a Line | |
356 | Line Reflection | 很少考 |
391 | Perfect Rectangle | 很少考 |
223 | Rectangle Area | 很少考 |
16. Union FInd
基础 | |
---|---|
261 | Graph Valid Tree |
323 | Number of Connected Components in an Undirected Graph |
305 | Number of Islands II |
17. Trie
基础 | |
---|---|
211 | Add and Search Word - Data structure design |
208 | Implement Trie (Prefix Tree) |
212 | Word Search II |
18. Design
基础 | ||
---|---|---|
359 | Logger Rate Limiter | |
346 | Moving Average from Data Stream | Sliding Window |
362 | Design Hit Counter | |
281 | Zigzag Iterator | |
284 | Peeking Iterator | |
251 | Flatten 2D Vector | |
288 | Unique Word Abbreviation | |
170 | Two Sum III - Data structure design | |
348 | Design Tic-Tac-Toe | |
379 | Design Phone Directory | |
353 | Design Snake Game | |
146 | LRU Cache | |
355 | Design Twitter | |
303 | Range Sum Query - Immutable | |
304 | Range Sum Query 2D - Immutable | |
307 | Range Sum Query - Mutable | Binary Index Tree |
308 | Range Sum Query 2D - Mutable | Binary Index Tree |