##
Algorithm 2018#####
Section1 - Linear###Array & String
# | LC # | Title | Difficulty | Note |
---|---|---|---|---|
1 | 415 | Add Strings | Easy | |
2 | 445 | Add Two Numbers I, II | Easy | |
3 | 151 | Reverse Words in a String | Medium | |
4 | 186 | Reverse Words in a String II | Medium | |
5 | 557 | Reverse Words in a String III | Easy | |
6 | 15 | 3Sum | Medium | |
7 | 16 | 3Sum Closest | Medium | |
8 | 259 | 3Sum Smaller | Medium | |
9 | 75 | Sort Colors | Medium | |
10 | 475 | Heaters | Easy | |
11 | 134 | Gas Station | Medium | |
12 | 346 | Moving Average from Data Stream | Easy | |
13 | 544 | Output Contest Matches | Medium | |
14 | 246 | Strobogrammatic Number I, II, III | Medium | |
15 | 525 | Continuous Array | Medium | |
16 | 324 | Wiggle Sort II | Medium | |
17 | 554 | Brick Wall | Medium | |
18 | 325 | Maximum Size Subarray Sum Equals k | Medium | |
19 | 561 | Array Partition I | Easy | |
20 | 524 | Longest Word in Dictionary through Deleting | Medium | |
21 | 485 | Max Consecutive Ones I, II | Medium | |
22 | 496 | Next Greater Element I, II, III | Medium | |
23 | 125 | Valid Parentheses | Easy | |
24 | 26 | Remove Duplicate From Sorted Array I, II | Medium | |
25 | 274 | H Index I, II | Medium | |
26 | 11 | Container With Most Water | Medium | |
27 | 560 | Subarray Sum Equals K | Medium | |
28 | 220 | Contains Duplicate I, II, III | Medium | |
29 | 336 | Palindrome Pairs | Hard | |
30 | 421 | Maximum XOR of Two Numbers in an array | Medium | |
31 | 264 | Ugly Number I, II | Medium | |
32 | 581 | Shortest Unsorted Continuous Subarray | Easy | |
33 | 311 | Sparse Matrix Multiplication | Medium | |
34 | 442 | Find all duplicates in an array | Medium | |
35 | 128 | Longest Consecutive Sequence | Hard | |
36 | 49 | Group Anagrams | Medium | |
37 | 360 | Sort Transformed Array | Medium | |
38 | 582 | Kill Process | Medium | |
39 | 29 | Divide Two Integers | Medium |
Sliding Window
# | LC # | Title | Difficulty | Note |
---|---|---|---|---|
1 | 76 | Minimum Window Substring | Hard | |
2 | 438 | Find All Anagrams in a String | Easy | |
3 | 3 | Longest Substring Without Repeating Characters | Medium | |
4 | 340 | Longest Substring With At Most K Distinct Characters | Medium | |
5 | 567 | Permutation in String | Medium |
Missing Number
# | LC # | Title | Difficulty | Note |
---|---|---|---|---|
1 | 41 | First Missing Positive | Easy | |
2 | 268 | Missing Number | Easy | |
3 | 287 | Find the Duplicate Number | Medium | |
4 | 442 | Find All Duplicates in an Array | Medium | |
5 | 448 | Find all Numbers Disappeared in an array | Easy |
Stack
# | LC # | Title | Difficulty | Note |
---|---|---|---|---|
1 | 224 | Basic Calculator | Hard | |
2 | 227 | Basic Calculator II | Medium | |
3 | 42 | Trapping Rain Water I, II | Hard | |
4 | 84 | Largest Rectangle in Histogram | Hard | |
5 | 394 | Decode String | Medium | |
6 | 456 | 132 Pattern | Medium | |
7 | 402 | Remove K Digits | Medium | |
8 | 726 | Number of Atoms | Hard | |
9 | 735 | Asteroid Collision | Medium | |
10 | 316 | Remove Duplicate Letters | Hard |
Bit Manipulation
# | LC # | Title | Difficulty | Note |
---|---|---|---|---|
1 | 371 | Sum of Two Integers | Easy |
Interval
# | LC # | Title | Difficulty | Note |
---|---|---|---|---|
1 | 56 | Merge Intervals | Medium | |
2 | 57 | Insert Interval | Hard | |
3 | 435 | Non-overlapping Intervals | Medium | |
4 | 436 | Find Right Interval | Medium | |
5 | 352 | Data Stream as Disjoint Intervals | Medium |
LinkedList
# | LC # | Title | Difficulty | Note |
---|---|---|---|---|
1 | 206 | Reverse Linked List | Easy | |
2 | 92 | Reverse Linked List II | Medium | |
3 | 25 | Reverse Nodes in k-Group | Hard | |
4 | 21 | Merge Two Sorted Lists | Easy | |
5 | 141 | Linked List Cycle I, II | Medium | |
6 | 234 | Palindrome Linked List | Easy | |
7 | 83 | Remove Duplicate From Sorted List I, II | Medium |
###
Section2 - Binary Search & Tree### Binary Search# | LC # | Title | Difficulty | Note |
---|---|---|---|---|
1 | 35 | Search Insert Position | Easy | |
2 | 153 | Find Minimum in Rotated Sorted Array I, II | Medium | |
3 | 33 | Search in Rotated Sorted Array | Easy | |
4 | 34 | Search For a Range | Easy | |
5 | 69 | Sqrt(x) | Easy | |
6 | 410 | Split Array Largest Sum | Hard | |
7 | 35 | Search Insert Position | Easy | |
8 | 410 | Search Insert Position | Easy | |
9 | 50 | Pow(x, n) | Medium | |
10 | 367 | Valid Perfect Square | Easy | |
11 | 302 | Smallest Rectangle Enclosing Black Pixels | Hard | |
12 | 4 | Median of Two Sorted Arrays | Hard | |
13 | 483 | Smallest Good Base | Hard |
Tree
# | LC # | Title | Difficulty | Note |
---|---|---|---|---|
1 | 450 | Delete Node in a BST | Medium | |
2 | 230 | Kth Smallest Element in a BST | Medium | |
3 | 108 | Convert Sorted Array to BST | Easy | |
4 | 173 | Binary Search Tree Iterator | Medium | |
5 | 285 | Inorder Successor in BST | Medium | |
6 | 222 | Count Complete Tree Nodes | Medium | |
7 | 257 | Binary Tree Paths | Easy | |
8 | 199 | Binary Tree Right Side View | Medium | |
9 | 298 | Binary Tree Longest Consecutive Sequence I, II | Medium | |
10 | 270 | Closest Binary Search Tree Value I, II | Medium | |
11 | 226 | Invert Binary Tree | Easy | |
12 | 104 | Maximum Depth of Binary Tree | Easy | |
13 | 110 | Balanced Binary Tree | Easy | |
14 | 100 | Same Tree | Easy | |
15 | 110 | Balanced Binary Tree | Easy | |
16 | 114 | Flatten Binary Tree to Linked List | Medium | |
17 | 366 | Find Leaves of Binary Tree | Medium | |
18 | 250 | Count Univalue Subtrees | Medium | |
19 | 404 | Sum of Left Leaves | Easy | |
20 | 543 | Diameter of Binary Tree | Easy | |
21 | 98 | Validate Binary Search Tree | Medium | |
22 | 235 | Lowest Common Ancestor of a BT & BST | Easy | |
23 | 111 | Minimum Depth of Binary Tree | Easy | |
24 | 112 | Path Sum I, II, III, IV | Easy | |
25 | 129 | Sum Root to Leaf Numbers | Medium | |
26 | 297 | Serialize and Deserialize BT & BST | Hard | |
27 | 105 | Counstruct BTfrom Preorder and Inorder Traversal | Medium | |
28 | 103 | Binary Tree Zigzag Level Order Traversal | Medium | |
29 | 314 | Binary Tree Vertical Order Traversal | Medium | |
30 | 99 | Recover Binary Search Tree | Hard | |
31 | 536 | Construct Binary Tree from String | Medium | |
32 | 545 | Boundary of Binary Tree | Medium | |
33 | 117 | Populating Next Right Pointers in Each Node I, II | Medium | |
33 | 742 | Closest Leaf in a Binary Tree | Medium | |
34 | 513 | Find Bottom Left Tree Value | Medium | |
35 | 538 | Convert BST To Greater Tree | Easy |
Priority Queue, Sort and Others
# | LC # | Title | Difficulty | Note |
---|---|---|---|---|
1 | 23 | Merge k Sorted Lists | Hard | |
2 | 378 | Kth Smallest Element in a Sorted Matrix | Medium | |
3 | 215 | Kth Largest Element in an Array | Medium | |
4 | 240 | Search a 2D Matrix I, II | Medium | |
5 | 54 | Spiral Matrix | Medium | |
6 | 315 | Count of Smaller Numbers After Self | Medium | |
7 | 363 | Maximum Size Subarray Sum Equals K | Medium | |
8 | 327 | Count of Range Sum | Hard | |
9 | 218 | The Skyline Problem | Hard | |
10 | 493 | Reverse Pairs | Medium | |
11 | 347 | Top K Frequent Element | Medium | |
12 | 373 | Find K Pairs with Smallest Sums | Medium | |
13 | 253 | Meeting RoomsII | Medium | |
14 | 164 | Maximum Gap | Hard | |
15 | 295 | Find Median from Data Stream | Hard | |
16 | 480 | Sliding Window Median | Hard | |
17 | 179 | Largest Number | Hard | |
18 | 451 | Sort Characters By Frequency | Medium | |
19 | 148 | Sort List | Medium |
Trie
# | LC # | Title | Difficulty | Note |
---|---|---|---|---|
1 | 211 | Add and Search Word | Medium | |
2 | 212 | Word Search II | Hard | |
3 | 642 | Design Search Autocomplete System | Hard | |
4 | 425 | Word Squares | Hard |
###
Section3 - Graph###DFS&Backtrack
# | LC # | Title | Difficulty | Note |
---|---|---|---|---|
1 | 46 | Permutations I, II | Medium | |
2 | 90 | Subsets I, II | Medium | |
3 | 267 | Palindrome Permutation | Medium | |
4 | 40 | Combination Sum III | Medium | |
5 | 254 | Factor Combinations | Medium | |
6 | 526 | Beautiful Arrangement | Medium |
# | LC # | Title | Difficulty | Note |
---|---|---|---|---|
1 | 133 | Clone Graph | Medium | |
2 | 261 | Graph Valid Tree | Medium | |
3 | 210 | Course Schedule I, II, III | Medium | |
4 | 305 | Number of Islands I, II | Medium | |
5 | 694 | Number of Distinct Islands I, II | Medium | |
6 | 695 | Max Area of Island | Medium | |
7 | 127 | Word Ladder I, II | Medium | |
8 | 286 | Walls and Gates | Medium | |
9 | K Closest Points | Medium | ||
10 | 323 | Number of Connected Components in an Undirected Graph | Medium | |
11 | 547 | Friend Circles | Medium | |
12 | 417 | Pacific Altantic Water Flow | Medium | |
13 | 317 | Shortest Distance from All Buildings | Medium | |
14 | 505 | The Maze I, II, III | Medium | |
15 | 277 | Find the Celebrity | Medium | |
16 | 301 | Remove Invalid Parentheses | Hard | |
17 | 93 | Restore IP Addresses | Medium | |
18 | 542 | 01 Matrix | Medium | |
19 | 130 | Surrounded Regions | Medium | |
20 | 269 | Alien Dictionary | Hard | |
21 | 444 | Sequence Reconstruction | Hard | |
22 | 529 | Minesweeper | Medium | |
23 | 439 | Ternary Expression Parser | Medium | |
24 | 311 | Minimum Unique Word Abbreviation | Hard | |
25 | 399 | Evaluate Division | Hard | |
26 | 329 | Longest Increasing Path in a Matrix | Hard | |
27 | 310 | Minimum Height Trees | Medium | |
28 | 744 | Network Delay Time | Medium | |
29 | 753 | Open the Lock | Medium | |
30 | 721 | Accounts Merge | Medium | |
31 | 212 | Word Search I, II | Hard | |
32 | 291 | Word Pattern I, II | Hard | |
33 | 562 | Longest Line of Consecutive One in Matrix | Medium |
###
Section4 - DP###A Peek into Dynamic Programming + Dynamic Programming on Coordinates
# | LC # | Title | Difficulty | Note |
---|---|---|---|---|
1 | 62 | Unique Paths I, II | Medium | |
2 | 64 | Minimum Path Sum | Medium | |
3 | 174 | Dungeon Game | Medium | |
4 | 53 | Maximum Subarray | Easy | |
5 | 523 | Continuous Subarray Sum | Medium | |
6 | 152 | Maximum Product Subarray | Medium | |
7 | 322 | Coin Change | Medium | |
8 | 45 | Jump Game II | Medium | |
9 | 674 | Longest Continuous Increasing Subsequence | Medium | |
10 | 338 | Counting Bits | Medium | |
11 | 361 | Bomb Enemy | Medium | |
12 | 639 | Decode Ways I, II | Medium | |
13 | 517 | Super Washing Machines | Hard | |
14 | 221 | Maximal Square | Medium | |
15 | 403 | Frog Jump | Hard | |
16 | K Sum (LintCode ) | Hard | ||
17 | 51 | N-Queens | Hard | |
18 | 89 | Gray Code | Medium | |
19 | 413 | Arithmetic Slices I, II | Medium | |
20 | 135 | Candy | Medium | |
21 | 95 | Unique Binary Search Trees I, II | Medium | |
22 | 418 | Sentence Screen Fitting | Medium | |
23 | 363 | Max Sum of Rectangel No Larger Than K | Hard | |
24 | 514 | Freedom Trail | Hard | |
25 | 368 | Largest Divisible Subset | Medium |
Dynamic Programming on Sequences
# | LC # | Title | Difficulty | Note |
---|---|---|---|---|
1 | 256 | Paint House I, II | Easy | |
2 | 198 | House Robber | Easy | |
3 | 300 | Longest Increasing Subsequence | Medium | |
4 | 673 | Number of Longest Increasing Subsequence | Medium | |
5 | 354 | Russian Doll Envelopes | Medium | |
6 | 121 | Best Time to buy and Sell Stock (6 questions) | Medium | |
7 | 740 | Delete and Earn | Easy |
Dynamic Programming on Partitioning, Bit operation Longest Subsequence and Game Theory
# | LC # | Title | Difficulty | Note |
---|---|---|---|---|
1 | 279 | Perfect Square | Medium | |
2 | 139 | Word Break | Medium | |
3 | 132 | Palindrome Partitioning II | Hard | |
4 | 472 | Concatenated Words | Hard | |
5 | Copy Books (LintCode ) | Hard | ||
6 | 464 | Can I Win | Medium | |
7 | 486 | Predict the Winner | Medium | |
8 | Coins in a Line (LintCode, Google it) | Medium | ||
9 | 338 | Counting bits | Medium |
Dynamic Programming on Knapsack and Intervals
# | LC # | Title | Difficulty | Note |
---|---|---|---|---|
1 | Backpack 6题(Lintcode) | Easy | Google 背包问题9讲 | |
2 | 516 | Longest Palindromic Subsequence | Medium | |
3 | 312 | Burst Balloons | Medium | |
4 | 87 | Scramble String | Hard |
Dynamic Programming on Double Sequence
# | LC # | Title | Difficulty | Note |
---|---|---|---|---|
1 | 72 | Edit Distance | Medium | |
2 | Longest Common Subsequence | Medium | ||
3 | 115 | Distinct Subsequences | Hard | |
4 | 97 | Interleaving String | Hard | |
5 | 474 | Ones and Zeros | Medium | |
6 | 10 | Regular Expression Matching | Hard | |
7 | 44 | Wildcard Matching | Hard |
###
Section5 - Data Structure#### | LC # | Title | Difficulty | Note |
---|---|---|---|---|
1 | 379 | Design Phone Directory | Medium | |
2 | 170 | Two Sum III - Data structure design | Easy | |
3 | 362 | Design Hit Counter | Medium | |
4 | 348 | Design Tic-Tac-Toe | Medium | |
5 | 288 | Unique Word Abbreviation | Medium | |
6 | 381 | Insert Delete GetRandom O(1) | Medium | |
7 | 146 | LRU Cache | Hard | |
8 | 432 | All O`one Data Structure | Hard | |
9 | 353 | Design Snake Game | Medium | |
10 | 289 | Game of Life | Medium | |
11 | 359 | Logger Rate Limiter | Easy | |
12 | 460 | LFU Cache | Hard |