My leetcode answers
- Bit Manipulation
- Array
- String
- Linked List
- Stack
- Queue
- Heap
- Tree
- Hash Table
- Math
- Two Pointers
- Sort
- Recursion
- Binary Search
- Binary Search Tree
- Breadth-First Search
- Depth-First Search
- Backtracking
- Dynamic Programming
- Greedy
- Graph
- Geometry
- Simulation
- Design
- Python
| # | Title | Solution | Time | Space | Difficulty | Tag | Note |
|---|---|---|---|---|---|---|---|
| 136 | Single Number | O(n) | O(1) | Easy | |||
| 137 | Single Number II | O(n) | O(1) | Medium | |||
| 190 | Reverse Bits | Python | O(1) | O(1) | Easy | Apple | |
| 191 | Number of 1 Bits | Python | O(1) | O(1) | Easy | Apple | |
| 201 | Bitwise AND of Numbers Range | O(1) | O(1) | Medium | |||
| 231 | Power of Two | Python | O(1) | O(1) | Easy | LintCode | |
| 260 | Single Number III | O(n) | O(1) | Medium | |||
| 268 | Missing Number | Python | O(n) | O(1) | Medium | LintCode | |
| 318 | Maximum Product of Word Lengths | O(n) ~ O(n^2) | O(n) | Medium | Bit Manipulation, Counting Sort, Pruning | ||
| 342 | Power of Four | Python | O(1) | O(1) | Easy | ||
| 371 | Sum of Two Integers | Python | O(1) | O(1) | Easy | LintCode | |
| 389 | Find the Difference | Python | O(n) | O(1) | Easy | ||
| 393 | UTF-8 Validation | Python | O(n) | O(1) | Medium | Google🔥 | |
| 401 | Binary Watch | Python | O(1) | O(1) | Easy | Google🔥 | |
| 411 | Minimum Unique Word Abbreviation | O(2^n) | O(n) | Hard | 🔒 | ||
| 421 | Maximum XOR of Two Numbers in an Array | O(n) | O(n) | Medium | |||
| 461 | Hamming Distance | O(1) | O(1) | Easy | |||
| 462 | Minimum Moves to Equal Array Elements II | O(n) on average | O(1) | Medium | |||
| 477 | Total Hamming Distance | O(n) | O(1) | Medium | |||
| 645 | Set Mismatch | O(n) | O(1) | Easy | |||
| 693 | Binary Number with Alternating Bits | O(1) | O(1) | Easy | |||
| 762 | Prime Number of Set Bits in Binary Representation | O(1) | O(1) | Easy | |||
| 868 | Binary Gap | O(1) | O(1) | Easy | |||
| 898 | Bitwise ORs of Subarrays | O(n) | O(1) | Medium |
| # | Title | Solution | Time | Space | Difficulty | Tag | Note |
|---|---|---|---|---|---|---|---|
| 015 | 3 Sum | O(n^2) | O(1) | Medium | Two Pointers | ||
| 016 | 3 Sum Closest | O(n^2) | O(1) | Medium | Two Pointers | ||
| 018 | 4 Sum | O(n^3) | O(1) | Medium | Two Pointers | ||
| 026 | Remove Duplicates from Sorted Array | O(n) | O(1) | Easy | Two Pointers | ||
| 027 | Remove Element | O(n) | O(1) | Easy | |||
| 031 | Next Permutation | O(n) | O(1) | Medium | Google🔥 | Tricky | |
| 041 | First Missing Positive | O(n) | O(1) | Hard | Tricky | ||
| 048 | Rotate Image | Python | O(n^2) | O(1) | Medium | Apple | |
| 054 | Spiral Matrix | O(m * n) | O(1) | Medium | Google🔥 | ||
| 059 | Spiral Matrix II | O(n^2) | O(1) | Medium | |||
| 066 | Plus One | Python | O(n) | O(1) | Easy | Google🔥 | |
| 073 | Set Matrix Zeroes | O(m * n) | O(1) | Medium | |||
| 080 | Remove Duplicates from Sorted Array II | O(n) | O(1) | Medium | Two Pointers | ||
| 118 | Pascal's Triangle | Python | O(n^2) | O(1) | Easy | Apple | |
| 119 | Pascal's Triangle II | Python | O(n^2) | O(1) | Easy | ||
| 121 | Best Time to Buy and Sell Stock | O(n) | O(1) | Easy | |||
| 128 | Longest Consecutive Sequence | O(n) | O(n) | Hard | Google🔥 | Tricky | |
| 157 | Read N Characters Given Read4 | O(n) | O(1) | Easy | 🔒 | ||
| 158 | Read N Characters Given Read4 II - Call multiple times | O(n) | O(1) | Hard | 🔒 | ||
| 163 | Missing Ranges | Python | O(n) | O(1) | Medium | 🔒Google🔥 | |
| 169 | Majority Element | O(n) | O(1) | Easy | |||
| 189 | Rotate Array | O(n) | O(1) | Easy | |||
| 209 | Minimum Size Subarray Sum | O(n) | O(1) | Medium | Binary Search | ||
| 215 | Kth Largest Element in an Array | Python | O(n) ~ O(n^2) | O(1) | Medium | Apple,EPI | |
| 228 | Summary Ranges | Python | O(n) | O(1) | Medium | Google🔥 | |
| 229 | Majority Element II | O(n) | O(1) | Medium | |||
| 238 | Product of Array Except Self | Python | O(n) | O(1) | Medium | Apple | |
| 240 | Search a 2D Matrix II | Python | O(m + n) | O(1) | Medium | Google🔥Apple | |
| 243 | Shortest Word Distance | O(n) | O(1) | Easy | 🔒 | ||
| 245 | Shortest Word Distance III | O(n) | O(1) | Medium | 🔒 | ||
| 251 | Flatten 2D Vector | O(1) | O(1) | Medium | 🔒 | ||
| 277 | Find the Celebrity | O(n) | O(1) | Medium | 🔒, EPI | ||
| 289 | Game of Life | Python | O(m * n) | O(1) | Medium | Google🔥 | |
| 293 | Flip Game | Python | O(n * (c+1)) | O(1) | Easy | 🔒Google🔥 | |
| 296 | Best Meeting Point | O(m * n) | O(m + n) | Hard | 🔒 | ||
| 311 | Sparse Matrix Multiplication | O(m * n * l) | O(m * l) | Medium | 🔒 | ||
| 334 | Increasing Triplet Subsequence | O(n) | O(1) | Medium | |||
| 370 | Range Addition | O(k + n) | O(1) | Medium | 🔒 | ||
| 384 | Shuffle an Array | O(n) | O(n) | Medium | EPI | ||
| 396 | Rotate Function | O(n) | O(1) | Easy | |||
| 412 | Fizz Buzz | O(n) | O(1) | Easy | |||
| 414 | Third Maximum Number | Python | O(n) | O(1) | Easy | ||
| 419 | Battleships in a Board | O(m * n) | O(1) | Medium | |||
| 422 | Valid Word Square | O(m * n) | O(1) | Easy | 🔒Google🔥 | ||
| 442 | Find All Duplicates in an Array | O(n) | O(1) | Medium | |||
| 448 | Find All Numbers Disappeared in an Array | O(n) | O(1) | Easy | |||
| 531 | Lonely Pixel I | O(m * n) | O(m + n) | Medium | 🔒 | ||
| 533 | Lonely Pixel II | O(m * n) | O(m * n) | Medium | 🔒 | ||
| 565 | Array Nesting | Python | O(n) | O(1) | Medium | Apple | |
| 566 | Reshape the Matrix | O(m * n) | O(m * n) | Easy | |||
| 581 | Shortest Unsorted Continuous Subarray | O(n) | O(1) | Easy | |||
| 605 | Can Place Flowers | O(n) | O(1) | Easy | |||
| 624 | Maximum Distance in Arrays | O(n) | O(1) | Easy | 🔒 | ||
| 643 | Maximum Average Subarray I | O(n) | O(1) | Easy | Math | ||
| 644 | Maximum Average Subarray II | O(n) | O(n) | Hard | Google🔥 | Math | |
| 661 | Image Smoother | O(m * n) | O(1) | Easy | |||
| 665 | Non-decreasing Array | O(n) | O(1) | Easy | |||
| 667 | Beautiful Arrangement II | O(n) | O(1) | Medium | |||
| 670 | Maximum Swap | O(logn) | O(logn) | Medium | |||
| 674 | Longest Continuous Increasing Subsequence | O(n) | O(1) | Easy | |||
| 683 | K Empty Slots | O(n) | O(n) | Hard | Google🔥 | ||
| 697 | Degree of an Array | O(n) | O(n) | Easy | |||
| 713 | Subarray Product Less Than K | O(n) | O(1) | Medium | |||
| 717 | 1-bit and 2-bit Characters | O(n) | O(1) | Easy | Greedy | ||
| 723 | Candy Crush | O((R * C)^2) | O(1) | Medium | |||
| 724 | Find Pivot Index | O(n) | O(1) | Easy | |||
| 729 | My Calendar I | O(nlogn) | O(n) | Medium | Google🔥 | ||
| 731 | My Calendar II | O(n^2) | O(n) | Medium | Google🔥 | ||
| 732 | My Calendar III | O(n^2) | O(n) | Hard | |||
| 747 | Largest Number At Least Twice of Others | O(n) | O(1) | Easy | |||
| 755 | Pour Water | O(v * n) | O(1) | Medium | |||
| 766 | Toeplitz Matrix | Python | O(m * n) | O(1) | Easy | Google🔥 | |
| 768 | Max Chunks To Make Sorted II | O(nlogn) | O(n) | Hard | |||
| 769 | Max Chunks To Make Sorted | O(n) | O(1) | Medium | |||
| 778 | Swim in Rising Water | O(n^2) | O(n^2) | Hard | Union Find | ||
| 792 | Number of Matching Subsequences | O(n + w) | O(1) | Medium | |||
| 794 | Valid Tic-Tac-Toe State | O(1) | O(1) | Medium | |||
| 795 | Number of Subarrays with Bounded Maximum | O(n) | O(1) | Medium | |||
| 803 | Bricks Falling When Hit | O(r * c) | O(r * c) | Hard | Google🔥 | Union Find | |
| 807 | Max Increase to Keep City Skyline | O(n^2) | O(n) | Medium | |||
| 821 | Shortest Distance to a Character | O(n) | O(1) | Easy | |||
| 830 | Positions of Large Groups | O(n) | O(1) | Easy | |||
| 832 | Flipping an Image | O(n^2) | O(1) | Easy | |||
| 835 | Image Overlap | O(n^4) | O(n^2) | Medium | |||
| 840 | Magic Squares In Grid | O(m * n) | O(1) | Easy | |||
| 842 | Split Array into Fibonacci Sequence | O(n^3) | O(n) | Medium | |||
| 845 | Longest Mountain in Array | O(n) | O(1) | Medium | |||
| 849 | Maximize Distance to Closest Person | O(n) | O(1) | Easy | |||
| 860 | Lemonade Change | O(n) | O(1) | Easy | |||
| 868 | Transpose Matrix | O(r * c) | O(1) | Easy | |||
| 885 | Spiral Matrix III | O(max(m, n)^2) | O(1) | Medium | |||
| 888 | Fair Candy Swap | O(m + n) | O(m + n) | Easy | |||
| 896 | Monotonic Array | O(n) | O(1) | Easy | |||
| 905 | Sort Array By Parity | O(n) | O(1) | Easy | |||
| 909 | Snakes and Ladders | O(n^2) | O(n^2) | Medium | |||
| 915 | Partition Array into Disjoint Intervals | O(n) | O(n) | Medium | |||
| 918 | Maximum Sum Circular Subarray | O(n) | O(1) | Medium | |||
| 921 | Minimum Add to Make Parentheses Valid | O(n) | O(1) | Medium | |||
| 922 | Sort Array By Parity II | O(n) | O(1) | Easy | |||
| 923 | 3Sum With Multiplicity | O(n^2) | O(n) | Medium |
| # | Title | Solution | Time | Space | Difficulty | Tag | Note |
|---|---|---|---|---|---|---|---|
| 005 | Longest Palindromic Substring | O(n) | O(n) | Medium | Manacher's Algorithm |
||
| 006 | ZigZag Conversion | O(n) | O(1) | Easy | |||
| 008 | String to Integer (atoi) | O(n) | O(1) | Easy | |||
| 014 | Longest Common Prefix | O(n * k) | O(1) | Easy | |||
| 028 | Implement strStr() | Python | O(n + k) | O(k) | Easy | Apple | KMP Algorithm |
| 038 | Count and Say | O(n * 2^n) | O(2^n) | Easy | |||
| 043 | Multiply Strings | O(m * n) | O(m + n) | Medium | |||
| 058 | Length of Last Word | O(n) | O(1) | Easy | |||
| 067 | Add Binary | O(n) | O(1) | Easy | |||
| 068 | Text Justification | O(n) | O(1) | Hard | |||
| 125 | Valid Palindrome | O(n) | O(1) | Easy | |||
| 151 | Reverse Words in a String | Python | O(n) | O(1) | Medium | Apple | |
| 161 | One Edit Distance | O(m + n) | O(1) | Medium | 🔒 | ||
| 165 | Compare Version Numbers | Python | O(n) | O(1) | Easy | Apple | |
| 186 | Reverse Words in a String II | O(n) | O(1) | Medium | 🔒 | ||
| 214 | Shortest Palindrome | O(n) | O(n) | Hard | KMP Algorithm Manacher's Algorithm |
||
| 242 | Valid Anagram | Python | O(n) | O(1) | Easy | LintCode | |
| 271 | Encode and Decode Strings | Python | O(n) | O(1) | Medium | 🔒Google🔥 | |
| 273 | Integer to English Words | O(1) | O(1) | Hard | |||
| 306 | Addictive Number | O(n^3) | O(n) | Medium | |||
| 383 | Ransom Note | Python | O(n) | O(1) | Easy | Apple,EPI | |
| 405 | Convert a Number to Hexadecimal | Python | O(n) | O(1) | Easy | ||
| 408 | Valid Word Abbreviation | O(n) | O(1) | Easy | 🔒 | ||
| 415 | Add Strings | O(n) | O(1) | Easy | Google🔥 | ||
| 420 | Strong Password Checker | O(n) | O(1) | Hard | |||
| 434 | Number of Segments in a String | O(n) | O(1) | Easy | |||
| 443 | String Compression | O(n) | O(1) | Easy | |||
| 459 | Repeated Substring Pattern | O(n) | O(n) | Easy | KMP Algorithm |
||
| 468 | Validate IP Address | O(1) | O(1) | Medium | |||
| 482 | License Key Formatting | Python Java | O(n) | O(n) | Easy | Google🔥 | |
| 520 | Detect Capital | O(l) | O(1) | Easy | |||
| 521 | Longest Uncommon Subsequence I | O(min(a, b)) | O(1) | Easy | |||
| 522 | Longest Uncommon Subsequence II | O(l * n^2) | O(1) | Medium | Sort | ||
| 524 | Longest Word in Dictionary through Deleting | Python | O((d * l) * logd) | O(1) | Medium | Google🔥 | Sort |
| 527 | Word Abbreviation | O(n * l) ~ O(n^2 * l^2) | O(n * l) | Hard | 🔒 | ||
| 539 | Minimum Time Difference | O(nlogn) | O(n) | Medium | |||
| 541 | Reverse String II | Python | O(n) | O(1) | Easy | ||
| 551 | Student Attendance Record I | O(n) | O(1) | Easy | |||
| 556 | Next Greater Element III | O(1) | O(1) | Medium | |||
| 557 | Reverse Words in a String III | O(n) | O(1) | Easy | |||
| 564 | Find the Closest Palindrome | O(l) | O(l) | Hard | |||
| 591 | Tag Validator | O(n) | O(n) | Hard | |||
| 616 | Add Bold Tag in String | Python Java | O(n * d * l) | O(n) | Medium | 🔒Google🔥 | |
| 647 | Palindromic Substrings | O(n) | O(n) | Medium | Manacher's Algorithm |
||
| 648 | Replace Words | O(n) | O(t) | Medium | Trie | ||
| 657 | Judge Route Circle | O(n) | O(1) | Easy | |||
| 678 | Valid Parenthesis String | O(n) | O(1) | Medium | |||
| 680 | Valid Palindrome II | O(n) | O(1) | Easy | |||
| 681 | Next Closest Time | Python Java | O(1) | O(1) | Medium | Google🔥 | |
| 686 | Repeated String Match | Python | O(n + m) | O(1) | Easy | Google🔥 | Rabin-Karp Algorithm |
| 696 | Count Binary Substrings | O(n) | O(1) | Easy | |||
| 720 | Longest Word in Dictionary | O(n) | O(t) | Easy | Trie | ||
| 722 | Remove Comments | O(n) | O(k) | Medium | |||
| 751 | IP to CIDR | O(n) | O(1) | Medium | |||
| 758 | Bold Words in String | O(n * l) | O(t) | Easy | 🔒, variant of Add Bold Tag in String | ||
| 791 | Custom Sort String | O(n) | O(1) | Medium | |||
| 796 | Rotate String | O(n) | O(1) | Easy | KMP Algorithm Rabin-Karp Algorithm |
||
| 804 | Unique Morse Code Words | O(n) | O(n) | Easy | |||
| 806 | Number of Lines To Write String | O(n) | O(1) | Easy | |||
| 809 | Expressive Words | O(n + s) | O(l + s) | Medium | |||
| 816 | Ambiguous Coordinates | O(n^4) | O(n) | Medium | |||
| 819 | Most Common Word | O(m + n) | O(m + n) | Easy | |||
| 820 | Short Encoding of Words | O(n) | O(t) | Medium | Trie | ||
| 824 | Goat Latin | O(n + w^2) | O(l) | Easy | |||
| 831 | Masking Personal Information | O(1) | O(1) | Medium | |||
| 833 | Find And Replace in String | O(n + m) | O(n) | Medium | |||
| 839 | Similar String Groups | O(n^2 * l) | O(n) | Hard | Union Find | ||
| 848 | Shifting Letters | O(n) | O(1) | Medium | |||
| 859 | Buddy Strings | O(n) | O(1) | Easy | |||
| 880 | Decoded String at Index | O(n) | O(1) | Medium | |||
| 884 | Uncommon Words from Two Sentences | O(m + n) | O(m + n) | Easy | |||
| 890 | Find and Replace Pattern | O(n * l) | O(1) | Medium | |||
| 893 | Groups of Special-Equivalent Strings | O(n * l) | O(n) | Easy | |||
| 916 | Word Subsets | O(m + n) | O(1) | Medium | |||
| 917 | Reverse Only Letters | O(n) | O(1) | Easy |
| # | Title | Solution | Time | Space | Difficulty | Tag | Note |
|---|---|---|---|---|---|---|---|
| 002 | Add Two Numbers | O(n) | O(1) | Medium | |||
| 021 | Merge Two Sorted Lists | Python | O(n) | O(1) | Easy | Apple | |
| 023 | Merge k Sorted Lists | O(nlogk) | O(1) | Hard | Google🔥 | Heap, Divide and Conquer | |
| 024 | Swap Nodes in Pairs | O(n) | O(1) | Easy | |||
| 025 | Reverse Nodes in k-Group | O(n) | O(1) | Hard | |||
| 061 | Rotate List | O(n) | O(1) | Medium | |||
| 082 | Remove Duplicates from Sorted List II | O(n) | O(1) | Medium | |||
| 083 | Remove Duplicates from Sorted List | O(n) | O(1) | Easy | |||
| 092 | Reverse Linked List II | O(n) | O(1) | Medium | |||
| 138 | Copy List with Random Pointer | O(n) | O(1) | Hard | |||
| 160 | Intersection of Two Linked Lists | O(m + n) | O(1) | Easy | |||
| 203 | Remove Linked List Elements | Python | O(n) | O(1) | Easy | ||
| 206 | Reverse Linked List | Python | O(n) | O(1) | Easy | Apple | |
| 234 | Palindrome Linked List | Python | O(n) | O(1) | Easy | ||
| 237 | Delete Node in a Linked List | Python | O(1) | O(1) | Easy | Apple | |
| 328 | Odd Even Linked List | O(n) | O(1) | Medium | |||
| 369 | Plus One Linked List | O(n) | O(1) | Medium | 🔒Google🔥 | Two Pointers | |
| 445 | Add Two Numbers II | O(m + n) | O(m + n) | Medium | |||
| 725 | Split Linked List in Parts | O(n + k) | O(1) | Medium | |||
| 817 | Linked List Components | O(m + n) | O(m) | Medium |
| # | Title | Solution | Time | Space | Difficulty | Tag | Note |
|---|---|---|---|---|---|---|---|
| 020 | Valid Parentheses | O(n) | O(n) | Easy | Google🔥 | ||
| 032 | Longest Valid Parentheses | O(n) | O(1) | Hard | |||
| 071 | Simplify Path | O(n) | O(n) | Medium | |||
| 084 | Largest Rectangle in Histogram | O(n) | O(n) | Hard | Ascending Stack, DP | ||
| 085 | Maximal Rectangle | O(m * n) | O(n) | Hard | EPI | Ascending Stack | |
| 101 | Symmetric Tree | O(n) | O(h) | Easy | |||
| 150 | Evaluate Reverse Polish Notation | O(n) | O(n) | Medium | |||
| 155 | Min Stack | O(n) | O(1) | Easy | Google🔥 | ||
| 173 | Binary Search Tree Iterator | O(1) | O(h) | Medium | Google🔥 | ||
| 224 | Basic Calculator | O(n) | O(n) | Hard | |||
| 227 | Basic Calculator II | O(n) | O(n) | Medium | |||
| 232 | Implement Queue using Stacks | O(1), amortized | O(n) | Easy | EPI, LintCode | ||
| 255 | Verify Preorder Sequence in Binary Search Tree | O(n) | O(1) | Medium | 🔒 | ||
| 272 | Closest Binary Search Tree Value II | O(h + k) | O(h) | Hard | 🔒 | ||
| 331 | Verify Preorder Serialization of a Binary Tree | O(n) | O(1) | Medium | |||
| 341 | Flatten Nested List Iterator | Python | O(n) | O(h) | Medium | 🔒Google🔥 | Iterator |
| 385 | Mini Parser | O(n) | O(h) | Medium | |||
| 394 | Decode String | Python | O(n) | O(h) | Medium | Google🔥 | |
| 439 | Ternary Expression Parser | O(n) | O(1) | Medium | 🔒 | ||
| 456 | 132 Pattern | O(n) | O(n) | Medium | |||
| 636 | Exclusive Time of Functions | O(n) | O(n) | Medium | |||
| 682 | Baseball Game | O(n) | O(n) | Easy | |||
| 726 | Number of Atoms | O(n) | O(n) | Hard | |||
| 735 | Asteroid Collision | O(n) | O(n) | Medium | |||
| 736 | Parse Lisp Expression | O(n^2) | O(n^2) | Hard | |||
| 739 | Daily Temperatures | O(n) | O(n) | Medium | |||
| 770 | Basic Calculator IV | add: O(d * t) sub: O(d * t) mul: O(d * t^2) eval: O(d * t) to_list: O(d * tlogt) |
O(e + d * t) | Hard | |||
| 772 | Basic Calculator III | O(n) | O(n) | Hard | |||
| 853 | Car Fleet | O(nlogn) | O(n) | Medium | |||
| 856 | Score of Parentheses | O(n) | O(1) | Medium | |||
| 872 | Leaf-Similar Trees | O(n) | O(h) | Easy | |||
| 895 | Maximum Frequency Stack | O(1) | O(n) | Hard | Hash | ||
| 901 | Online Stock Span | O(n) | O(n) | Medium |
| # | Title | Solution | Time | Space | Difficulty | Tag | Note |
|---|---|---|---|---|---|---|---|
| 239 | Sliding Window Maximum | O(n) | O(k) | Hard | EPI, LintCode | ||
| 281 | Zigzag Iterator | Python | O(n) | O(k) | Medium | 🔒Google🔥 | |
| 346 | Moving Average from Data Stream | Python | O(1) | O(w) | Easy | 🔒Google🔥 | |
| 862 | Shortest Subarray with Sum at Least K | O(n) | O(n) | Hard |
| # | Title | Solution | Time | Space | Difficulty | Tag | Note |
|---|---|---|---|---|---|---|---|
| 264 | Ugly Number II | O(n) | O(1) | Medium | CTCI, LintCode | BST, Heap | |
| 295 | Find Median from Data Stream | O(nlogn) | O(n) | Hard | Google🔥 | BST, Heap | |
| 313 | Super Ugly Number | O(n * k) | O(n + k) | Medium | BST, Heap | ||
| 358 | Rearrange String k Distance Apart | O(n) | O(n) | Hard | 🔒 | Greedy, Heap | |
| 373 | Find K Pairs with Smallest Sums | O(k * log(min(n, m, k))) | O(min(n, m, k)) | Medium | |||
| 378 | Kth Smallest Element in a Sorted Matrix | O(k * log(min(n, m, k))) | O(min(n, m, k)) | Medium | LintCode | ||
| 407 | Trapping Rain Water II | O(m * n * (logm + logn)) | O(m * n) | Hard | Google🔥 | ||
| 632 | Smallest Range | O(nlogk) | O(k) | Hard | |||
| 846 | Hand of Straights | O(nlogn) | O(n) | Medium | |||
| 855 | Exam Room | seat: O(logn) leave: O(logn) |
O(n) | Medium | BST, Hash | ||
| 857 | Minimum Cost to Hire K Workers | O(nlogn) | O(n) | Hard | Sort | ||
| 871 | Minimum Number of Refueling Stops | O(nlogn) | O(n) | Hard | Sort |
| # | Title | Solution | Time | Space | Difficulty | Tag | Note |
|---|---|---|---|---|---|---|---|
| 094 | Binary Tree Inorder Traversal | O(n) | O(1) | Medium | Morris Traversal |
||
| 099 | Recover Binary Search Tree | O(n) | O(1) | Hard | Morris Traversal |
||
| 144 | Binary Tree Preorder Traversal | O(n) | O(1) | Medium | Morris Traversal |
||
| 145 | Binary Tree Postorder Traversal | O(n) | O(1) | Hard | Morris Traversal |
||
| 208 | Implement Trie (Prefix Tree) | O(n) | O(1) | Medium | Google🔥 | Trie | |
| 211 | Add and Search Word - Data structure design | O(min(n, h)) | O(min(n, h)) | Medium | Trie, DFS | ||
| 226 | Invert Binary Tree | O(n) | O(h), O(w) | Easy | |||
| 297 | Serialize and Deserialize Binary Tree | O(n) | O(h) | Hard | Google🔥 | DFS | |
| 307 | Range Sum Query - Mutable | ctor: O(n), update: O(logn), query: O(logn) | O(n) | Medium | LintCode | DFS, Segment Tree, BIT | |
| 308 | Range Sum Query 2D - Mutable | ctor: O(m * n), update: O(logm + logn), query: O(logm + logn) | O(m * n) | Hard | 🔒Google🔥 | DFS, Segment Tree, BIT | |
| 315 | Count of Smaller Numbers After Self | O(nlogn) | O(n) | Hard | Google🔥 | BST, BIT, Divide and Conquer | |
| 525 | Contiguous Array | O(n) | O(n) | Medium | |||
| 529 | Minesweeper | O(m * n) | O(m + n) | Medium | |||
| 536 | Construct Binary Tree from String | O(n) | O(h) | Medium | 🔒 | ||
| 538 | Convert BST to Greater Tree | O(n) | O(h) | Easy | |||
| 543 | Diameter of Binary Tree | O(n) | O(h) | Easy | |||
| 545 | Boundary of Binary Tree | O(n) | O(h) | Medium | 🔒 | ||
| 548 | Split Array with Equal Sum | O(n^2) | O(n) | Medium | 🔒 | ||
| 563 | Binary Tree Tilt | O(n) | O(n) | Easy | |||
| 572 | Subtree of Another Tree | O(m * n) | O(h) | Easy | |||
| 606 | Construct String from Binary Tree | O(n) | O(h) | Easy | |||
| 617 | Merge Two Binary Trees | O(n) | O(h) | Easy | |||
| 623 | Add One Row to Tree | O(n) | O(h) | Medium | |||
| 637 | Average of Levels in Binary Tree | O(n) | O(h) | Easy | |||
| 652 | Find Duplicate Subtrees | O(n) | O(n) | Medium | DFS, Hash | ||
| 653 | Two Sum IV - Input is a BST | O(n) | O(h) | Easy | Two Pointers | ||
| 654 | Maximum Binary Tree | O(n) | O(n) | Medium | LintCode | Descending Stack | |
| 655 | Print Binary Tree | O(n) | O(h) | Medium | |||
| 662 | Maximum Width of Binary Tree | O(n) | O(h) | Medium | DFS | ||
| 663 | Equal Tree Partition | O(n) | O(n) | Medium | 🔒 | Hash | |
| 677 | Map Sum Pairs | O(n) | O(t) | Medium | Trie | ||
| 684 | Redundant Connection | O(n) | O(n) | Medium | Union Find | ||
| 685 | Redundant Connection II | O(n) | O(n) | Hard | Union Find | ||
| 687 | Longest Univalue Path | Python | O(n) | O(h) | Easy | Google🔥 | |
| 699 | Falling Squares | O(nlogn) | O(n) | Hard | Segment Tree | ||
| 814 | Binary Tree Pruning | O(n) | O(h) | Medium | DFS | ||
| 850 | Rectangle Area II | O(nlogn) | O(n) | Hard | Segment Tree | ||
| 863 | All Nodes Distance K in Binary Tree | O(n) | O(n) | Medium | DFS + BFS | ||
| 866 | Smallest Subtree with all the Deepest Nodes | O(n) | O(h) | Medium | DFS | ||
| 889 | Construct Binary Tree from Preorder and Postorder Traversal | O(n) | O(h) | Medium | DFS, stack | ||
| 897 | Increasing Order Search Tree | O(n) | O(h) | Easy | DFS | ||
| 919 | Complete Binary Tree Inserter | ctor: O(n) insert: O(1) get_root: O(1) |
O(n) | Medium |
| # | Title | Solution | Time | Space | Difficulty | Tag | Note |
|---|---|---|---|---|---|---|---|
| 001 | Two Sum | Python | O(n) | O(n) | Easy | Apple | |
| 003 | Longest Substring Without Repeating Characters | O(n) | O(1) | Medium | |||
| 030 | Substring with Concatenation of All Words | O((m + n) * k) | O(n * k) | Hard | |||
| 036 | Valid Sudoku | Python | O(9^2) | O(9) | Easy | Apple | |
| 049 | Group Anagrams | Python | O(n * glogg) | O(n) | Medium | ||
| 076 | Minimum Window Substring | O(n) | O(k) | Hard | |||
| 149 | Max Points on a Line | O(n^2) | O(n) | Hard | Apple | ||
| 159 | Longest Substring with At Most Two Distinct Characters | O(n) | O(1) | Hard | 🔒Google🔥 | ||
| 170 | Two Sum III - Data structure design | O(n) | O(n) | Easy | 🔒 | ||
| 187 | Repeated DNA Sequences | O(n) | O(n) | Medium | |||
| 202 | Happy Number | O(k) | O(k) | Easy | |||
| 204 | Count Primes | O(n) | O(n) | Easy | |||
| 205 | Isomorphic Strings | Python | O(n) | O(1) | Easy | ||
| 217 | Contains Duplicate | Python | O(n) | O(n) | Easy | ||
| 219 | Contains Duplicate II | Python | O(n) | O(n) | Easy | ||
| 244 | Shortest Word Distance II | ctor: O(n), lookup: O(a + b) | O(n) | Medium | 🔒 | ||
| 246 | Strobogrammatic Number | Python | O(n) | O(1) | Easy | 🔒Google🔥 | |
| 249 | Group Shifted Strings | Python | O(nlogn) | O(n) | Easy | 🔒Google🔥 | |
| 266 | Palindrome Permutation | O(n) | O(1) | Easy | 🔒 | ||
| 288 | Unique Word Abbreviation | Python | ctor: O(n), lookup: O(1) | O(k) | Easy | 🔒Google🔥 | |
| 290 | Word Pattern | Python | O(n) | O(c) | Easy | variant of Isomorphic Strings | |
| 299 | Bulls and Cows | O(n) | O(1) | Easy | |||
| 305 | Number of Islands II | Python | O(klgmn) | Hard | Google🔥🔒 | Union Find | |
| 314 | Binary Tree Vertical Order Traversal | O(n) | O(n) | Medium | 🔒 | BFS | |
| 323 | Number of Connected Components in an Undirected Graph | O(n) | O(n) | Medium | 🔒 | Union Find | |
| 325 | Maximum Size Subarray Sum Equals k | O(n) | O(n) | Medium | 🔒 | ||
| 336 | Palindrome Pairs | O(n * k^2) | O(n * k) | Hard | |||
| 340 | Longest Substring with At Most K Distinct Characters | O(n) | O(1) | Hard | 🔒Google🔥 | ||
| 356 | Line Reflection | O(n) | O(n) | Medium | 🔒 | Hash, Two Pointers | |
| 387 | First Unique Character in a String | Python | O(n) | O(n) | Easy | ||
| 388 | Longest Absolute File Path | Python java | O(n) | O(d) | Medium | Google🔥 | Stack |
| 409 | Longest Palindrome | Python | O(n) | O(1) | Easy | ||
| 424 | Longest Repeating Character Replacement | O(n) | O(1) | Medium | |||
| 438 | Find All Anagrams in a String | Python | O(n) | O(1) | Easy | ||
| 447 | Number of Boomerangs | O(n^2) | O(n) | Easy | |||
| 454 | 4Sum II | O(n^2) | O(n^2) | Medium | |||
| 463 | Island Perimeter | Python | O(m*n) | O(1) | Easy | Google🔥 | |
| 470 | Implement Rand10() Using Rand7() | O(1) | O(1) | Medium | |||
| 473 | Matchsticks to Square | O(n * s * 2^n) | O(n * (2^n + s)) | Medium | |||
| 523 | Continuous Subarray Sum | O(n) | O(k) | Medium | |||
| 532 | K-diff Pairs in an Array | O(n) | O(n) | Easy | |||
| 554 | Brick Wall | O(n) | O(m) | Medium | |||
| 560 | Subarray Sum Equals K | O(n) | O(n) | Medium | |||
| 561 | Array Partition I | O(r) | O(r) | Easy | |||
| 575 | Distribute Candies | O(n) | O(n) | Easy | |||
| 594 | Longest Harmonious Subsequence | O(n) | O(n) | Easy | |||
| 599 | Minimum Index Sum of Two Lists | O((m + n) * l) | O(m * l) | Easy | |||
| 609 | Find Duplicate File in System | O(n * l) | O(n * l) | Medium | |||
| 721 | Accounts Merge | O(nlogn) | O(n) | Medium | Union Find | ||
| 734 | Sentence Similarity | Python | O(n + p) | O(p) | Easy | 🔒Google🔥 | |
| 737 | Sentence Similarity II | Python | O(n + p) | O(p) | Medium | 🔒Google🔥 | Union Find |
| 748 | Shortest Completing Word | O(n) | O(1) | Easy | |||
| 760 | Find Anagram Mappings | O(n) | O(n) | Easy | |||
| 771 | Jewels and Stones | O(m + n) | O(n) | Easy | |||
| 811 | Subdomain Visit Count | O(n) | O(n) | Easy | |||
| 822 | Card Flipping Game | O(n) | O(n) | Medium | |||
| 825 | Friends Of Appropriate Ages | O(a^2 + n) | O(a) | Medium | |||
| 869 | Reordered Power of 2 | O(1) | O(1) | Medium | |||
| 873 | Length of Longest Fibonacci Subsequence | O(n^2) | O(n) | Medium |
| # | Title | Solution | Time | Space | Difficulty | Tag | Note |
|---|---|---|---|---|---|---|---|
| 007 | Reverse Integer | Python | O(1) | O(1) | Easy | Apple | |
| 009 | Palindrome Number | O(1) | O(1) | Easy | |||
| 012 | Integer to Roman | O(n) | O(1) | Medium | |||
| 013 | Roman to Integer | O(n) | O(1) | Easy | |||
| 029 | Divide Two Integers | O(1) | O(1) | Medium | |||
| 050 | Pow(x, n) | O(1) | O(1) | Medium | Google🔥 | ||
| 060 | Permutation Sequence | O(n^2) | O(n) | Medium | Cantor Ordering |
||
| 065 | Valid Number | O(n) | O(1) | Hard | Automata |
||
| 089 | Gray Code | O(2^n) | O(1) | Medium | |||
| 166 | Fraction to Recurring Decimal | O(logn) | O(1) | Medium | |||
| 168 | Excel Sheet Column Title | Python | O(logn) | O(1) | Easy | ||
| 171 | Excel Sheet Column Number | O(n) | O(1) | Easy | |||
| 172 | Factorial Trailing Zeroes | O(1) | O(1) | Easy | |||
| 223 | Rectangle Area | O(1) | O(1) | Easy | |||
| 233 | Number of Digit One | O(1) | O(1) | Hard | CTCI, LintCode | ||
| 248 | Strobogrammatic Number III | O(5^(n/2)) | O(n) | Hard | 🔒 | ||
| 258 | Add Digits | Python | O(1) | O(1) | Easy | ||
| 263 | Ugly Number | Python | O(1) | O(1) | Easy | ||
| 292 | Nim Game | Python | O(1) | O(1) | Easy | LintCode | |
| 319 | Bulb Switcher | O(1) | O(1) | Medium | |||
| 326 | Power of Three | Python | O(1) | O(1) | Easy | ||
| 335 | Self Crossing | O(n) | O(1) | Hard | |||
| 338 | Counting Bits | O(n) | O(n) | Medium | |||
| 343 | Integer Break | O(logn) | O(1) | Medium | Tricky, DP | ||
| 365 | Water and Jug Problem | O(logn) | O(1) | Medium | Bézout's identity |
||
| 372 | Super Pow | O(n) | O(1) | Medium | |||
| 382 | Linked List Random Node | O(n) | O(1) | Medium | Reservoir Sampling |
||
| 386 | Lexicographical Numbers | O(n) | O(1) | Medium | |||
| 390 | Elimination Game | O(logn) | O(1) | Medium | |||
| 391 | Perfect Rectangle | O(n) | O(n) | Hard | Google🔥 | ||
| 398 | Random Pick Index | O(n) | O(1) | Medium | Reservoir Sampling |
||
| 400 | Nth Digit | O(logn) | O(1) | Easy | |||
| 413 | Arithmetic Slices | O(n) | O(1) | Medium | |||
| 423 | Reconstruct Original Digits from English | O(n) | O(1) | Medium | GCJ2016 - Round 1B | ||
| 441 | Arranging Coins | O(nlogn) | O(1) | Easy | Binary Search | ||
| 453 | Minimum Moves to Equal Array Elements | O(n) | O(1) | Easy | |||
| 458 | Poor Pigs | O(n) | O(1) | Easy | |||
| 469 | Convex Polygon | O(n) | O(1) | Medium | 🔒Google🔥 | ||
| 470 | Implement Rand10() Using Rand7() | O(1) | O(1) | Medium | |||
| 478 | Generate Random Point in a Circle | O(1) | O(1) | Medium | |||
| 497 | Random Point in Non-overlapping Rectangles | ctor: O(n) pick: O(logn) |
O(n) | Medium | |||
| 517 | Super Washing Machines | O(n) | O(1) | Hard | |||
| 519 | Random Flip Matrix | ctor: O(1) pick: O(1) reset: O(n) |
O(n) | Medium | |||
| 528 | Random Pick with Weight | ctor: O(n) pick: O(logn) |
O(n) | Medium | |||
| 537 | Complex Number Multiplication | O(1) | O(1) | Medium | |||
| 553 | Optimal Division | O(n) | O(1) | Medium | |||
| 573 | Squirrel Simulation | O(n) | O(1) | Medium | 🔒 | ||
| 592 | Fraction Addition and Subtraction | O(nlogx) | O(n) | Medium | |||
| 593 | Valid Square | O(1) | O(1) | Medium | |||
| 598 | Range Addition II | O(p) | O(1) | Easy | |||
| 625 | Minimum Factorization | O(loga) | O(1) | Medium | 🔒 | ||
| 628 | Maximum Product of Three Numbers | O(n) | O(1) | Easy | |||
| 633 | Sum of Square Numbers | O(sqrt(c) * logc) | O(1) | Easy | |||
| 634 | Find the Derangement of An Array | O(n) | O(1) | Medium | 🔒 | ||
| 640 | Solve the Equation | O(n) | O(n) | Medium | |||
| 651 | 4 Keys Keyboard | O(1) | O(1) | Medium | 🔒 | Math, DP | |
| 660 | Remove 9 | O(logn) | O(1) | Hard | 🔒 | ||
| 672 | Bulb Switcher II | O(1) | O(1) | Medium | |||
| 728 | Self Dividing Numbers | O(n) | O(1) | Medium | |||
| 754 | Reach a Number | O(logn) | O(1) | Medium | |||
| 775 | Global and Local Inversions | O(n) | O(1) | Medium | |||
| 779 | K-th Symbol in Grammar | O(1) | O(1) | Medium | |||
| 780 | Reaching Points | O(log(max(m, n))) | O(1) | Hard | |||
| 781 | Rabbits in Forest | O(n) | O(n) | Medium | |||
| 782 | Transform to Chessboard | O(n^2) | O(n) | Hard | |||
| 789 | Escape The Ghosts | O(n) | O(1) | Medium | |||
| 800 | Similar RGB Color | O(1) | O(1) | Easy | 🔒 | Google🔥 | |
| 810 | Chalkboard XOR Game | O(1) | O(1) | Hard | |||
| 812 | Largest Triangle Area | O(n^3) | O(1) | Easy | |||
| 829 | Consecutive Numbers Sum | O(sqrt(n)) | O(1) | Medium | |||
| 836 | Rectangle Overlap | O(1) | O(1) | Easy | |||
| 858 | Mirror Reflection | O(1) | O(1) | Medium | |||
| 867 | Prime Palindrome | O(n^(1/2) * (logn + n^(1/2))) | O(logn) | Medium | |||
| 883 | Projection Area of 3D Shapes | O(n^2) | O(1) | Easy | |||
| 887 | Super Egg Drop | O(klogn) | O(1) | Hard | |||
| 891 | Sum of Subsequence Widths | O(n) | O(1) | Hard | |||
| 899 | Orderly Queue | O(n^2) | O(n) | Hard | |||
| 902 | Numbers At Most N Given Digit Set | O(logn) | O(logn) | Hard | |||
| 906 | Super Palindromes | O(n^0.25 * logn) | O(logn) | Hard | |||
| 907 | Sum of Subarray Minimums | O(n) | O(n) | Medium | Ascending Stack | ||
| 908 | Smallest Range I | O(n) | O(1) | Easy | |||
| 910 | Smallest Range II | O(nlogn) | O(1) | Medium | |||
| 914 | X of a Kind in a Deck of Cards | O(n * (logn)^2) | O(n) | Easy |
| # | Title | Solution | Time | Space | Difficulty | Tag | Note |
|---|---|---|---|---|---|---|---|
| 056 | Merge Intervals | Python | O(nlogn) | O(1) | Hard | Google🔥 | |
| 057 | Insert Interval | O(n) | O(1) | Hard | Google🔥 | ||
| 075 | Sort Colors | O(n) | O(1) | Medium | Tri Partition | ||
| 088 | Merge Sorted Array | O(n) | O(1) | Easy | |||
| 147 | Insertion Sort List | O(n^2) | O(1) | Medium | |||
| 148 | Sort List | O(nlogn) | O(logn) | Medium | |||
| 164 | Maximum Gap | O(n) | O(n) | Hard | Tricky | ||
| 179 | Largest Number | O(nlogn) | O(1) | Medium | |||
| 218 | The Skyline Problem | O(nlogn) | O(n) | Hard | Google🔥 | Sort, BST | |
| 252 | Meeting Rooms | O(nlogn) | O(n) | Easy | 🔒 | ||
| 253 | Meeting Rooms II | O(nlogn) | O(n) | Medium | 🔒 | ||
| 274 | H-Index | Python | O(n) | O(n) | Medium | Counting Sort | |
| 280 | Wiggle Sort | Python Java | O(n) | O(1) | Medium | 🔒Google🔥 | |
| 324 | Wiggle Sort II | O(n) on average | O(1) | Medium | variant of Sort Colors | Tri Partition | |
| 347 | Top K Frequent Elements | O(n) | O(n) | Medium | Quick Select, Heap, Bucket Sort | ||
| 406 | Queue Reconstruction by Height | Python | O(n * sqrt(n)) | O(n) | Medium | Google🔥 | Tricky |
| 451 | Sort Characters By Frequency | O(n) | O(n) | Medium | |||
| 692 | Top K Frequent Words | O(n + klogk) on average | O(n) | Medium | Quick Select, Heap, Bucket Sort |
| # | Title | Solution | Time | Space | Difficulty | Tag | Note |
|---|---|---|---|---|---|---|---|
| 019 | Remove Nth Node From End of List | O(n) | O(1) | Easy | |||
| 086 | Partition List | O(n) | O(1) | Medium | |||
| 141 | Linked List Cycle | O(n) | O(1) | Easy | |||
| 142 | Linked List Cycle II | O(n) | O(1) | Medium | |||
| 143 | Reorder List | O(n) | O(1) | Medium | |||
| 167 | Two Sum II - Input array is sorted | Python | O(n) | O(1) | Medium | ||
| 259 | 3Sum Smaller | Python Java | O(n^2) | O(1) | Medium | 🔒Google🔥 | |
| 283 | Move Zeroes | Python | O(n) | O(1) | Easy | ||
| 287 | Find the Duplicate Number | O(n) | O(1) | Hard | Binary Search, Two Pointers | ||
| 344 | Reverse String | O(n) | O(1) | Easy | |||
| 345 | Reverse Vowels of a String | Python | O(n) | O(1) | Easy | Google🔥 | |
| 349 | Intersection of Two Arrays | Python | O(m + n) | O(min(m, n)) | Easy | EPI | Hash, Binary Search |
| 350 | Intersection of Two Arrays II | Python | O(m + n) | O(1) | Easy | EPI | Hash, Binary Search |
| 360 | Sort Transformed Array | Python Java | O(n) | O(1) | Medium | 🔒Google🔥 | |
| 457 | Circular Array Loop | O(n) | O(1) | Medium | |||
| 567 | Permutation in String | O(n) | O(1) | Medium | |||
| 611 | Valid Triangle Number | O(n^2) | O(1) | Medium | |||
| 777 | Swap Adjacent in LR String | O(n) | O(1) | Medium | |||
| 826 | Most Profit Assigning Work | O(mlogm + nlogn) | O(n) | Medium | |||
| 828 | Unique Letter String | O(n) | O(1) | Hard | |||
| 844 | Backspace String Compare | Python | O(m + n) | O(1) | Easy | Google🔥 | |
| 876 | Middle of the Linked List | O(n) | O(1) | Easy | |||
| 904 | Fruit Into Baskets | O(n) | O(1) | Medium |
| # | Title | Solution | Time | Space | Difficulty | Tag | Note |
|---|---|---|---|---|---|---|---|
| 004 | Median of Two Sorted Arrays | O(log(min(m, n))) | O(1) | Hard | Google🔥Apple | ||
| 033 | Search in Rotated Sorted Array | O(logn) | O(1) | Hard | |||
| 034 | Search for a Range | O(logn) | O(1) | Medium | |||
| 305 | Search Insert Position | O(logn) | O(1) | Medium | |||
| 069 | Sqrt(x) | Python | O(logn) | O(1) | Medium | Apple | |
| 074 | Search a 2D Matrix | O(logm + logn) | O(1) | Medium | |||
| 081 | Search in Rotated Sorted Array II | O(logn) | O(1) | Medium | |||
| 153 | Find Minimum in Rotated Sorted Array | O(logn) | O(1) | Medium | |||
| 154 | Find Minimum in Rotated Sorted Array II | O(logn) ~ O(n) | O(1) | Hard | |||
| 162 | Find Peak Element | O(logn) | O(1) | Medium | Google🔥 | ||
| 222 | Count Complete Tree Nodes | O((logn)^2) | O(1) | Medium | |||
| 275 | H-Index II | O(logn) | O(1) | Medium | Binary Search | ||
| 278 | First Bad Version | Python | O(logn) | O(1) | Easy | LintCode | |
| 300 | Longest Increasing Subsequence | O(nlogn) | O(n) | Medium | CTCI, LintCode | Binary Search, DP | |
| 302 | Smallest Rectangle Enclosing Black Pixels | O(nlogn) | O(1) | Hard | 🔒Google🔥 | ||
| 354 | Russian Doll Envelopes | O(nlogn) | O(1) | Hard | Google🔥 | ||
| 363 | Max Sum of Rectangle No Larger Than K | O(min(m, n)^2 * max(m, n) * logn(max(m, n))) | O(max(m, n)) | Hard | |||
| 367 | Valid Perfect Square | Python | O(logn) | O(1) | Medium | ||
| 374 | Guess Number Higher or Lower | O(logn) | O(1) | Easy | |||
| 410 | Split Array Largest Sum | O(nlogs) | O(1) | Hard | |||
| 436 | Find Right Interval | O(nlogn) | O(n) | Medium | |||
| 475 | Heaters | O((m + n) * logn) | O(1) | Easy | |||
| 540 | Single Element in a Sorted Array | O(logn) | O(1) | Medium | |||
| 658 | Find K Closest Elements | O(logn + k) | O(1) | Medium | Google🔥 | ||
| 668 | Kth Smallest Number in Multiplication Table | O(m * log(m * n)) | O(1) | Hard | |||
| 719 | Find K-th Smallest Pair Distance | O(nlogn + nlogw) | O(1) | Hard | |||
| 744 | Find Smallest Letter Greater Than Target | O(logn) | O(1) | Easy | |||
| 774 | Minimize Max Distance to Gas Station | O(nlogr) | O(1) | Hard | Google🔥 | ||
| 786 | K-th Smallest Prime Fraction | O(nlogr) | O(1) | Hard | |||
| 793 | Preimage Size of Factorial Zeroes Function | O((logn)^2) | O(1) | Hard | |||
| 852 | Peak Index in a Mountain Array | O(logn) | O(1) | Easy | |||
| 864 | Random Pick with Blacklist | ctor: O(b) pick: O(1) |
O(b) | Hard | |||
| 875 | Koko Eating Bananas | O(nlogr) | O(1) | Medium | |||
| 878 | Nth Magical Number | O(logn) | O(1) | Hard | |||
| 894 | All Possible Full Binary Trees | O(n * 4^n / n^(3/2)) | O(n * 4^n / n^(3/2)) | Medium | |||
| 911 | Online Election | ctor: O(n) query : O(logn) |
O(n) | Medium |
| # | Title | Solution | Time | Space | Difficulty | Tag | Note |
|---|---|---|---|---|---|---|---|
| 220 | Contains Duplicate III | O(nlogk) | O(k) | Medium | |||
| 230 | Kth Smallest Element in a BST | O(max(h, k)) | O(min(h, k)) | Medium | Google🔥 | ||
| 235 | Lowest Common Ancestor of a Binary Search Tree | Python | O(h) | O(1) | Easy | EPI | |
| 270 | Closest Binary Search Tree Value | O(h) | O(1) | Easy | 🔒 | ||
| 285 | Inorder Successor in BST | O(h) | O(1) | Medium | 🔒 | ||
| 352 | Data Stream as Disjoint Intervals | O(logn) | O(n) | Hard | |||
| 449 | Serialize and Deserialize BST | O(n) | O(h) | Medium | |||
| 450 | Delete Node in a BST | O(h) | O(h) | Medium | |||
| 530 | Minimum Absolute Difference in BST | O(n) | O(h) | Easy | |||
| 776 | Split BST | O(n) | O(h) | Medium | 🔒 | ||
| 783 | Minimum Distance Between BST Nodes | O(n) | O(h) | Easy |
| # | Title | Solution | Time | Space | Difficulty | Tag | Note |
|---|---|---|---|---|---|---|---|
| 102 | Binary Tree Level Order Traversal | Python | O(n) | O(n) | Easy | Apple | |
| 107 | Binary Tree Level Order Traversal II | O(n) | O(n) | Easy | |||
| 103 | Binary Tree Zigzag Level Order Traversal | O(n) | O(n) | Medium | |||
| 117 | Populating Next Right Pointers in Each Node II | O(n) | O(1) | Hard | |||
| 127 | Word Ladder | O(n * d) | O(d) | Medium | |||
| 130 | Surrounded Regions | O(m * n) | O(m + n) | Medium | |||
| 133 | Clone Graph | O(n) | O(n) | Medium | Google🔥 | ||
| 207 | Course Schedule | Python | O(|V| + |E|) | O(|E|) | Medium | Apple | Topological Sort |
| 210 | Course Schedule II | O(|V| + |E|) | O(|E|) | Medium | Topological Sort | ||
| 261 | Graph Valid Tree | O(|V| + |E|) | O(|V| + |E|) | Medium | Google🔥 | ||
| 269 | Alien Dictionary | O(n) | O(1) | Hard | 🔒 | Topological Sort, BFS, DFS | |
| 286 | Walls and Gates | Python | O(m * n) | O(g) | Medium | 🔒Google🔥 | |
| 310 | Minimum Height Trees | O(n) | O(n) | Medium | Google🔥 | ||
| 317 | Shortest Distance from All Buildings | O(k * m * n) | O(m * n) | Hard | 🔒Google🔥 | ||
| 433 | Minimum Genetic Mutation | O(n * b) | O(b) | Medium | |||
| 444 | Sequence Reconstruction | O(n * s) | O(n) | Medium | 🔒 | Topological Sort | |
| 490 | The Maze | Python | O(m * n) | O(m * n) | Medium | 🔒Google🔥 | |
| 542 | 01 Matrix | O(m * n) | O(m * n) | Medium | DP | ||
| 666 | Path Sum IV | O(n) | O(w) | Medium | 🔒 | Topological Sort | |
| 675 | Cut Off Trees for Golf Event | O(t * m * n) | O(m * n) | Hard | A* Search Algorithm |
||
| 742 | Closest Leaf in a Binary Tree | O(n) | O(n) | Medium | |||
| 743 | Network Delay Time | O(|E| * log|V|) | O(|E|) | Medium | Dijkstra's algorithm |
||
| 752 | Open the Lock | O(k * n^k + d) | O(k * n^k + d) | Medium | |||
| 773 | Sliding Puzzle | O((m * n) * (m * n)!) | O((m * n) * (m * n)!) | Hard | A* Search Algorithm |
||
| 787 | Cheapest Flights Within K Stops | O(|E| * log|V|) | O(|E|) | Medium | Dijkstra's algorithm |
||
| 815 | Bus Routes | O(|E| + |V|) | O(|E| + |V|) | Hard | |||
| 854 | K-Similar Strings | O(n * n!/(c_a!*...*c_z!)) | O(n * n!/(c_a!*...*c_z!)) | Hard | |||
| 865 | Shortest Path to Get All Keys | O(k * r * c + k^3*2^k) | O(k*2^k) | Hard | Dijkstra's algorithm |
||
| 882 | Reachable Nodes In Subdivided Graph | O(|E| * log|V|) | O(|E|) | Hard | Dijkstra's algorithm |
||
| 886 | Possible Bipartition | O(|V| + |E|) | O(|V| + |E|) | Medium |
| # | Title | Solution | Time | Space | Difficulty | Tag | Note |
|---|---|---|---|---|---|---|---|
| 112 | Path Sum | Python | O(n) | O(h) | Easy | ||
| 113 | Path Sum II | O(n) | O(h) | Medium | |||
| 199 | Binary Tree Right Side View | O(n) | O(h) | Medium | |||
| 200 | Number of Islands | Python Java | O(m * n) | O(m * n) | Medium | Google🔥 | |
| 236 | Lowest Common Ancestor of a Binary Tree | Python | O(n) | O(h) | Medium | Apple,EPI | |
| 247 | Strobogrammatic Number II | Python | O(n^2 * 5^(n/2)) | O(n) | Medium | 🔒Google🔥 | |
| 250 | Count Univalue Subtrees | O(n) | O(h) | Medium | 🔒 | ||
| 257 | Binary Tree Paths | Python | O(n * h) | O(h) | Easy | Google🔥Apple | |
| 282 | Expression Add Operators | O(4^n) | O(n) | Hard | |||
| 301 | Remove Invalid Parentheses | O(C(n, c)) | O(c) | Hard | |||
| 329 | Longest Increasing Path in a Matrix | Python | O(m * n) | O(m * n) | Hard | Google🔥 | |
| 332 | Reconstruct Itinerary | O(t! / (n1! * n2! * ... nk!)) | O(t) | Medium | |||
| 339 | Nested List Weight Sum | O(n) | O(h) | Easy | 🔒 | ||
| 364 | Nested List Weight Sum II | O(n) | O(h) | Medium | 🔒 | ||
| 366 | Find Leaves of Binary Tree | O(n) | O(h) | Medium | 🔒 | ||
| 399 | Evaluate Division | Python | O(K * E) | O(E) | Medium | Google🔥 | |
| 417 | Pacific Atlantic Water Flow | Python | O(m * n) | O(m * n) | Medium | Google🔥 | |
| 440 | K-th Smallest in Lexicographical Order | O(logn) | O(logn) | Hard | |||
| 464 | Can I Win | O(n!) | O(n) | Medium | |||
| 515 | Find Largest Value in Each Tree Row | O(n) | O(h) | Medium | |||
| 547 | Friend Circles | O(n^2) | O(n) | Medium | Union Find | ||
| 582 | Kill Process | O(n) | O(n) | Medium | 🔒 | DFS, BFS | |
| 638 | Shopping Offers | O(n * 2^n) | O(n) | Medium | |||
| 690 | Employee Importance | O(n) | O(h) | Easy | DFS, BFS | ||
| 694 | Number of Distinct Islands | O(m * n) | O(m * n) | Medium | 🔒 | ||
| 695 | Max Area of Island | O(m * n) | O(m * n) | Easy | |||
| 711 | Number of Distinct Islands II | O((m * n) * log(m * n)) | O(m * n) | Hard | 🔒 | Hash | |
| 733 | Max Area of Island | O(m * n) | O(m * n) | Easy | |||
| 749 | Contain Virus | O((m * n)^(4/3)) | O(m * n) | Hard | Simulation | ||
| 753 | Cracking the Safe | O(k^n) | O(k^n) | Hard | Google🔥 | de Bruijn sequences, Lyndon word |
|
| 756 | Pyramid Transition Matrix | O(a^b) | O(a^b) | Medium | |||
| 785 | Is Graph Bipartite? | O(|V| + |E|) | O(|V|) | Medium | |||
| 797 | All Paths From Source to Target | O(p + r * n) | O(n) | Medium | |||
| 802 | Find Eventual Safe States | O(|V| + |E|) | O(|V|) | Medium | |||
| 827 | Making A Large Island | O(n^2) | O(n^2) | Hard | |||
| 834 | Sum of Distances in Tree | O(n) | O(n) | Hard | |||
| 841 | Keys and Rooms | O(n!) | O(n) | Medium | |||
| 851 | Loud and Rich | O(q + r) | O(q + r) | Medium | |||
| 913 | Cat and Mouse | O(n^3) | O(n^2) | Hard |
| # | Title | Solution | Time | Space | Difficulty | Tag | Note |
|---|---|---|---|---|---|---|---|
| 017 | Letter Combinations of a Phone Number | O(n * 4^n) | O(n) | Medium | Google🔥 | ||
| 022 | Generate Parentheses | O(4^n / n^(3/2)) | O(n) | Medium | Google🔥 | ||
| 037 | Sudoku Solver | O((9!)^9) | O(1) | Hard | |||
| 039 | Combination Sum | O(k * n^k) | O(k) | Medium | |||
| 040 | Combination Sum II | O(k * C(n, k)) | O(k) | Medium | |||
| 046 | Permutations | O(n * n!) | O(n) | Medium | |||
| 047 | Permutations II | O(n * n!) | O(n) | Medium | |||
| 051 | N-Queens | O(n!) | O(n) | Hard | |||
| 052 | N-Queens-II | O(n!) | O(n) | Hard | |||
| 077 | Combinations | O(O(k * C(n, k))) | O(k) | Medium | |||
| 079 | Word Search | O(m * n * l) | O(l) | Medium | |||
| 093 | Restore IP Addresses | O(1) | O(1) | Medium | |||
| 078 | Subsets | O(n * 2^n) | O(1) | Medium | |||
| 090 | Subsets II | O(n * 2^n) | O(1) | Medium | |||
| 126 | Word Ladder II | O(n * d) | O(d) | Hard | |||
| 131 | Palindrome Partitioning | O(n^2) ~ O(2^n) | O(n^2) | Medium | |||
| 140 | Word Break II | O(n * l^2 + n * r) | O(n^2) | Hard | |||
| 212 | Word Search II | O(m * n * l) | O(l) | Hard | LintCode | Trie, DFS | |
| 216 | Combination Sum III | O(k * C(n, k)) | O(k) | Medium | |||
| 254 | Factor Combinations | O(nlogn) | O(logn) | Medium | 🔒 | ||
| 267 | Palindrome Permutation II | O(n * n!) | O(n) | Medium | 🔒 | ||
| 291 | Word Pattern II | O(n * C(n - 1, c - 1)) | O(n + c) | Hard | 🔒 | ||
| 294 | Flip Game II | Python | O(n + c^2) | O(c) | Medium | 🔒Google🔥 | DP, Hash |
| 320 | Generalized Abbreviation | Python | O(n * 2^n) | O(n) | Medium | 🔒Google | |
| 425 | Word Squares | O(n^2 * n!) | O(n^2) | Hard | 🔒Google🔥 | ||
| 526 | Beautiful Arrangement | Python | O(n!) | O(n) | Medium | Google🔥 | |
| 676 | Implement Magic Dictionary | O(n) | O(d) | Medium | Trie, DFS | ||
| 679 | 24 Game | O(1) | O(1) | Hard | Google🔥 | DFS | |
| 698 | Partition to K Equal Sum Subsets | O(n * 2^n) | O(2^n) | Medium | DFS, DP, Memoization | ||
| 718 | Maximum Length of Repeated Subarray | O(m * n) | O(min(m, n)) | Medium | DP, Hash, Binary Search | ||
| 784 | Letter Case Permutation | O(n * 2^n) | O(1) | Easy |
| # | Title | Solution | Time | Space | Difficulty | Tag | Note |
|---|---|---|---|---|---|---|---|
| 010 | Regular Expression Matching | O(m * n) | O(n) | Hard | Google🔥 | ||
| 053 | Maximum Subarray | O(n) | O(1) | Medium | |||
| 062 | Unique Paths | O(m * n) | O(m + n) | Medium | |||
| 063 | Unique Paths II | O(m * n) | O(m + n) | Medium | |||
| 064 | Minimum Path Sum | O(m * n) | O(m + n) | Medium | |||
| 070 | Climbing Stairs | Python | O(n) | O(1) | Easy | Apple | |
| 072 | Edit Distance | O(m * n) | O(m + n) | Hard | |||
| 087 | Scramble String | O(n^4) | O(n^3) | Hard | |||
| 091 | Decode Ways | O(n) | O(1) | Medium | |||
| 096 | Unique Binary Search Trees | Python | O(n) | O(1) | Medium | Math | |
| 097 | Interleaving String | O(m * n) | O(m + n) | Hard | |||
| 115 | Distinct Subsequences | O(n^2) | O(n) | Hard | |||
| 120 | Triangle | O(m * n) | O(n) | Medium | |||
| 123 | Best Time to Buy and Sell Stock III | O(n) | O(1) | Hard | |||
| 132 | Palindrome Partitioning II | O(n^2) | O(n^2) | Hard | |||
| 139 | Word Break | O(n * l^2) | O(n) | Medium | Google🔥 | ||
| 152 | Maximum Product Subarray | O(n) | O(1) | Medium | |||
| 174 | Dungeon Game | O(m * n) | O(m + n) | Hard | |||
| 188 | Best Time to Buy and Sell Stock IV | O(k * n) | O(k) | Hard | |||
| 198 | House Robber | O(n) | O(1) | Easy | |||
| 213 | House Robber II | O(n) | O(1) | Medium | |||
| 221 | Maximal Square | Python | O(n^2) | O(n) | Medium | Apple,EPI | |
| 256 | Paint House | O(n) | O(1) | Medium | 🔒 | ||
| 265 | Paint House II | O(n * k) | O(k) | Hard | 🔒 | ||
| 276 | Paint Fence | Python | O(n) | O(1) | Easy | 🔒Google🔥 | |
| 279 | Perfect Squares | Python | O(n * sqrt(n)) | O(n) | Medium | Google🔥 | Hash |
| 303 | Range Sum Query - Immutable | Python | ctor: O(n), lookup: O(1) | O(n) | Easy | ||
| 304 | Range Sum Query 2D - Immutable | ctor: O(m * n), lookup: O(1) | O(m * n) | Medium | |||
| 309 | Best Time to Buy and Sell Stock with Cooldown | O(n) | O(1) | Medium | |||
| 312 | Burst Balloons | O(n^3) | O(n^2) | Hard | |||
| 322 | Coin Change | O(n * k) | O(k) | Medium | |||
| 351 | Android Unlock Patterns | Python Java | O(9^2 * 2^9) | O(9 * 2^9) | Medium | 🔒Google🔥 | Backtracking |
| 357 | Count Numbers with Unique Digits | O(n) | O(1) | Medium | Backtracking, Math | ||
| 361 | Bomb Enemy | Python Java | O(m * n) | O(m * n) | Medium | Google🔥 | |
| 368 | Largest Divisible Subset | O(n^2) | O(n) | Medium | |||
| 375 | Guess Number Higher or Lower II | O(n^2) | O(n^2) | Medium | |||
| 377 | Combination Sum IV | O(nlogn + n * t) | O(t) | Medium | |||
| 403 | Frog Jump | O(n) | O(n) ~ O(n^2) | Hard | |||
| 416 | Partition Equal Subset Sum | O(n * s) | O(s) | Medium | |||
| 418 | Sentence Screen Fitting | Python Java | O(r + n * c) | O(n) | Medium | 🔒Google🔥 | |
| 446 | Arithmetic Slices II - Subsequence | O(n^2) | O(n * d) | Hard | |||
| 465 | Optimal Account Balancing | O(n * 2^n) | O(n * 2^n) | Hard | 🔒Google🔥 | ||
| 466 | Count The Repetitions | O(s1 * min(s2, n1)) | O(s2) | Hard | |||
| 467 | Unique Substrings in Wraparound String | O(n) | O(1) | Medium | |||
| 471 | Encode String with Shortest Length | O(n^3) on average | O(n^2) | Medium | 🔒Google🔥 | ||
| 472 | Concatenated Words | O(n * l^2) | O(n * l) | Medium | |||
| 474 | Ones and Zeroes | O(s * m * n) | O(m * n) | Medium | |||
| 486 | Predict the Winner | O(n^2) | O(n) | Medium | |||
| 514 | Freedom Trail | O(k) ~ O(k * r^2) | O(r) | Hard | |||
| 516 | Longest Palindromic Subsequence | O(n^2) | O(n) | Medium | |||
| 546 | Remove Boxes | O(n^3) ~ O(n^4) | O(n^3) | Hard | |||
| 552 | Student Attendance Record II | O(n) | O(1) | Hard | |||
| 562 | Longest Line of Consecutive One in Matrix | O(m * n) | O(n) | Medium | 🔒 | ||
| 568 | Maximum Vacation Days | O(n^2 * k) | O(k) | Hard | 🔒Google🔥 | ||
| 576 | Out of Boundary Paths | O(N * m * n) | O(m * n) | Medium | |||
| 583 | Delete Operation for Two Strings | O(m * n) | O(n) | Medium | |||
| 600 | Non-negative Integers without Consecutive Ones | O(1) | O(1) | Hard | |||
| 629 | K Inverse Pairs Array | O(n * k) | O(k) | Hard | |||
| 639 | Decode Ways II | O(n) | O(1) | Hard | |||
| 650 | 2 Keys Keyboard | O(sqrt(n)) | O(1) | Medium | |||
| 656 | Coin Path | O(n * B) | O(n) | Hard | 🔒 | ||
| 664 | Strange Printer | O(n^3) | O(n^2) | Hard | |||
| 673 | Number of Longest Increasing Subsequence | O(n^2) | O(n) | Medium | |||
| 688 | Knight Probability in Chessboard | O(k * n^2) | O(n^2) | Medium | |||
| 689 | Maximum Sum of 3 Non-Overlapping Subarrays | O(n) | O(n) | Hard | |||
| 691 | Stickers to Spell Word | O(T * S^T) | O(T * S^T) | Hard | Backtracking, Memoization | ||
| 712 | Minimum ASCII Delete Sum for Two Strings | O(m * n) | O(n) | Medium | |||
| 714 | Best Time to Buy and Sell Stock with Transaction Fee | O(n) | O(1) | Medium | |||
| 727 | Minimum Window Subsequence | O(s * t) | O(s) | Hard | 🔒 | ||
| 730 | Count Different Palindromic Subsequences | O(n^2) | O(n) | Hard | |||
| 740 | Delete and Earn | O(n) | O(1) | Medium | |||
| 741 | Cherry Pickup | O(n^3) | O(n^2) | Hard | |||
| 746 | Min Cost Climbing Stairs | O(n) | O(1) | Easy | |||
| 750 | Number Of Corner Rectangles | O(n * m^2) | O(n * m) | Medium | |||
| 764 | Largest Plus Sign | O(n^2) | O(n^2) | Medium | |||
| 788 | Rotated Digits | O(logn) | O(logn) | Easy | Memoization | ||
| 790 | Domino and Tromino Tiling | O(logn) | O(logn) | Medium | Google🔥 | Matrix Exponentiation | |
| 799 | Champagne Tower | O(n^2) | O(n) | Medium | |||
| 801 | Minimum Swaps To Make Sequences Increasing | O(n) | O(1) | Medium | |||
| 805 | Split Array With Same Average | O(n^4) | O(n^3) | Hard | |||
| 808 | Soup Servings | O(1) | O(1) | Medium | Memoization | ||
| 813 | Largest Sum of Averages | O(k * n^2) | O(n) | Medium | |||
| 818 | Race Car | O(nlogn) | O(n) | Hard | |||
| 823 | Binary Trees With Factors | O(n^2) | O(n) | Medium | |||
| 837 | New 21 Game | O(n) | O(n) | Medium | |||
| 838 | Push Dominoes | O(n) | O(n) | Medium | |||
| 847 | Shortest Path Visiting All Nodes | O(n *2^n) | O(n * 2^n) | Hard | BFS | ||
| 877 | Stone Game | O(n^2) | O(n) | Medium | variant of Predict the Winner | ||
| 879 | Profitable Schemes | O(n * p * g) | O(p * g) | Hard | |||
| 903 | Valid Permutations for DI Sequence | O(n^2) | O(n) | Hard | |||
| 920 | Number of Music Playlists | O(n * l) | O(l) | Hard |
| # | Title | Solution | Time | Space | Difficulty | Tag | Note |
|---|---|---|---|---|---|---|---|
| 011 | Container With Most Water | O(n) | O(1) | Medium | |||
| 042 | Trapping Rain Water | Python | O(n) | O(1) | Hard | Google🔥Apple | Tricky |
| 044 | Wildcard Matching | O(m + n) | O(1) | Hard | Google🔥 | Tricky | |
| 045 | Jump Game II | O(n) | O(1) | Hard | |||
| 055 | Jump Game | O(n) | O(1) | Medium | |||
| 122 | Best Time to Buy and Sell Stock II | O(n) | O(1) | Easy | |||
| 134 | Gas Station | O(n) | O(1) | Medium | |||
| 135 | Candy | O(n) | O(n) | Hard | |||
| 316 | Remove Duplicate Letters | O(n) | O(k) | Hard | Ascending Stack | ||
| 321 | Create Maximum Number | O(k * (m + n + k)) ~ O(k * (m + n + k^2)) | O(m + n + k^2) | Hard | variant of Delete Digits | Greedy, DP | |
| 330 | Patching Array | O(s + logn) | O(1) | Hard | |||
| 376 | Wiggle Subsequence | O(n) | O(1) | Medium | |||
| 392 | Is Subsequence | O(n) | O(1) | Medium | |||
| 397 | Integer Replacement | O(n) | O(1) | Medium | Google🔥 | Math | |
| 402 | Remove K Digits | O(n) | O(n) | Medium | LintCode | ||
| 435 | Non-overlapping Intervals | O(nlogn) | O(1) | Medium | Line Sweep | ||
| 452 | Minimum Number of Arrows to Burst Balloons | O(nlogn) | O(1) | Medium | |||
| 455 | Assign Cookies | O(nlogn) | O(1) | Easy | |||
| 621 | Task Scheduler | O(n) | O(1) | Medium | |||
| 630 | Course Schedule III | O(nlogn) | O(k) | Hard | |||
| 646 | Maximum Length of Pair Chain | O(nlogn) | O(1) | Medium | similar to Non-overlapping Intervals | Line Sweep | |
| 649 | Dota2 Senate | O(n) | O(n) | Medium | |||
| 659 | Split Array into Consecutive Subsequences | O(n) | O(1) | Medium | |||
| 738 | Monotone Increasing Digits | O(1) | O(1) | Medium | |||
| 757 | Set Intersection Size At Least Two | O(nlogn) | O(n) | Hard | |||
| 759 | Employee Free Time | O(m * logn) | O(n) | Hard | |||
| 763 | Partition Labels | O(n) | O(n) | Medium | |||
| 767 | Reorganize String | O(n) | O(1) | Medium | |||
| 798 | Smallest Rotation with Highest Score | O(n) | O(1) | Hard | |||
| 843 | Guess the Word | O(n^2) | O(n) | Hard | Google🔥 | MinMax | |
| 861 | Score After Flipping Matrix | O(r * c) | O(1) | Medium | |||
| 870 | Advantage Shuffle | O(nlogn) | O(n) | Medium | |||
| 881 | Boats to Save People | O(nlogn) | O(n) | Medium |
| # | Title | Solution | Time | Space | Difficulty | Tag | Note |
|---|---|---|---|---|---|---|---|
| 765 | Couples Holding Hands | O(n) | O(n) | Hard | |||
| 924 | Minimize Malware Spread | O(n) | O(n) | Hard | Union Find |
| # | Title | Solution | Time | Space | Difficulty | Tag | Note |
|---|---|---|---|---|---|---|---|
| 587 | Erect the Fence | O(nlogn) | O(n) | Hard | Monotone Chain |
||
| 892 | Surface Area of 3D Shapes | O(n^2) | O(1) | Easy |
| # | Title | Solution | Time | Space | Difficulty | Tag | Note |
|---|---|---|---|---|---|---|---|
| 874 | Walking Robot Simulation | O(n + k) | O(k) | Easy |
| # | Title | Solution | Time | Space | Difficulty | Tag | Note |
|---|---|---|---|---|---|---|---|
| 146 | LRU Cache | O(1) | O(k) | Hard | Google🔥 | ||
| 225 | Implement Stack using Queues | push: O(n), pop: O(1), top: O(1) | O(n) | Easy | |||
| 284 | Peeking Iterator | Python | O(1) | O(1) | Medium | Google🔥Apple | |
| 348 | Design Tic-Tac-Toe | O(1) | O(n^2) | Medium | 🔒 | ||
| 353 | Design Snake Game | O(1) | O(s) | Medium | 🔒 | Deque | |
| 355 | Design Twitter | O(klogu) | O(t + f) | Medium | LintCode | Heap | |
| 359 | Logger Rate Limiter | Python | O(1), amortized | O(k) | Easy | 🔒Google🔥 | Deque |
| 362 | Design Hit Counter | Python | O(1), amortized | O(k) | Medium | 🔒Google🔥 | Deque |
| 379 | Design Phone Directory | O(1) | O(n) | Medium | 🔒 | ||
| 380 | Insert Delete GetRandom O(1) | O(1) | O(n) | Hard | Google🔥 | ||
| 381 | Insert Delete GetRandom O(1) - Duplicates allowed | O(1) | O(n) | Hard | |||
| 432 | All O`one Data Structure | O(1) | O(n) | Hard | |||
| 460 | LFU Cache | O(1) | O(k) | Hard | Google🔥 | ||
| 535 | Encode and Decode TinyURL | O(1) | O(n) | Medium | |||
| 588 | Design In-Memory File System | ls: O(l + klogk) mkdir: O(l) addContentToFile: O(l + c) readContentFromFile: O(l + c) |
O(n + s) | Hard | 🔒 | ||
| 604 | Design Compressed String Iterator | O(1) | O(1) | Easy | 🔒 | ||
| 631 | Design Excel Sum Formula | set: O((r * c)^2) get: O(1) sum: O((r * c)^2) |
O(r * c) | Hard | 🔒 | ||
| 635 | Design Log Storage System | put: O(1) retrieve: O(n + dlogd) |
O(n) | Medium | 🔒 | ||
| 642 | Design Search Autocomplete System | O(p^2) | O(p * t + s) | Hard | 🔒 | ||
| 715 | Range Module | add: O(n) remove: O(n) query: O(logn) |
O(n) | Hard | |||
| 716 | Max Stack | push: O(logn) pop: O(logn) popMax: O(logn) top: O(1) peekMax: O(1) |
O(n) | Easy | |||
| 745 | Prefix and Suffix Search | ctor: O(w * l^2) search : O(p + s) |
O(t) | Hard | Trie | ||
| 900 | RLE Iterator | O(n) | O(1) | Medium |
| # | Title | Solution | Time | Space | Difficulty | Tag | Note |
|---|---|---|---|---|---|---|---|
| 175 | Combine Two Tables | MySQL | O(m + n) | O(m + n) | Easy | ||
| 176 | Second Highest Salary | MySQL | O(n) | O(1) | Easy | ||
| 177 | Nth Highest Salary | MySQL | O(n^2) | O(n) | Medium | ||
| 178 | Rank Scores | MySQL | O(n^2) | O(n) | Medium | ||
| 180 | Consecutive Numbers | MySQL | O(n) | O(n) | Medium | ||
| 181 | Employees Earning More Than Their Managers | MySQL | O(n^2) | O(1) | Easy | ||
| 182 | Duplicate Emails | MySQL | O(n^2) | O(n) | Easy | ||
| 183 | Customers Who Never Order | MySQL | O(n^2) | O(1) | Easy | ||
| 184 | Department Highest Salary | MySQL | O(n^2) | O(n) | Medium | ||
| 185 | Department Top Three Salaries | MySQL | O(n^2) | O(n) | Hard | ||
| 196 | Delete Duplicate Emails | MySQL | O(n^2) | O(n) | Easy | ||
| 197 | Rising Temperature | MySQL | O(n^2) | O(n) | Easy | ||
| 262 | Trips and Users | MySQL | O((t * u) + tlogt) | O(t) | Hard |
| # | Title | Solution | Time | Space | Difficulty | Tag | Note |
|---|---|---|---|---|---|---|---|
| 192 | Word Frequency | Shell | O(n) | O(k) | Medium | ||
| 193 | Valid Phone Numbers | Shell | O(n) | O(1) | Easy | ||
| 194 | Transpose File | Shell | O(n^2) | O(n^2) | Medium | ||
| 195 | Tenth Line | Shell | O(n) | O(1) | Easy |