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 |