This repository contains my solutions to the Leetcode Top Interview 150 problems.
| Id | Problem | Difficulty | Signal | Status |
|---|---|---|---|---|
| Array / String | ||||
| 1 | Merge Sorted Array | Easy | 🟢 | ✅ |
| 2 | Remove Element | Easy | 🟢 | ✅ |
| 3 | Remove Duplicates from Sorted Array | Easy | 🟢 | ✅ |
| 4 | Remove Duplicates from Sorted Array II | Medium | 🟡 | |
| 5 | Majority Element | Easy | 🟢 | ✅ |
| 6 | Rotate Array | Medium | 🟡 | |
| 7 | Best Time to Buy and Sell Stock | Easy | 🟢 | ✅ |
| 8 | Best Time to Buy and Sell Stock II | Medium | 🟡 | |
| 9 | Jump Game | Medium | 🟡 | |
| 10 | Jump Game II | Medium | 🟡 | |
| 11 | H-Index | Medium | 🟡 | |
| 12 | Insert Delete GetRandom O(1) | Medium | 🟡 | |
| 13 | Product of Array Except Self | Medium | 🟡 | |
| 14 | Gas Station | Medium | 🟡 | |
| 15 | Candy | Hard | 🔴 | |
| 16 | Trapping Rain Water | Hard | 🔴 | |
| 17 | Roman to Integer | Easy | 🟢 | ✅ |
| 18 | Integer to Roman | Medium | 🟡 | |
| 19 | Length of Last Word | Easy | 🟢 | ✅ |
| 20 | Longest Common Prefix | Easy | 🟢 | ✅ |
| 21 | Reverse Words in a String | Medium | 🟡 | |
| 22 | Zigzag Conversion | Medium | 🟡 | |
| 23 | Find the Index of the First Occurrence in a String | Easy | 🟢 | ✅ |
| 24 | Text Justification | Hard | 🔴 | |
| Two Pointers | ||||
| 25 | Valid Palindrome | Easy | 🟢 | ✅ |
| 26 | Is Subsequence | Easy | 🟢 | ✅ |
| 27 | Two Sum II - Input Array Is Sorted | Medium | 🟡 | |
| 28 | Container With Most Water | Medium | 🟡 | |
| 29 | 3Sum | Medium | 🟡 | |
| Sliding Window | ||||
| 30 | Minimum Size Subarray Sum | Medium | 🟡 | |
| 31 | Longest Substring Without Repeating Characters | Medium | 🟡 | |
| 32 | Substring with Concatenation of All Words | Hard | 🔴 | |
| 33 | Minimum Window Substring | Hard | 🔴 | |
| Matrix | ||||
| 34 | Valid Sudoku | Medium | 🟡 | ✅ |
| 35 | Spiral Matrix | Medium | 🟡 | |
| 36 | Rotate Image | Medium | 🟡 | |
| 37 | Set Matrix Zeroes | Medium | 🟡 | |
| 38 | Game of Life | Medium | 🟡 | |
| Hashmap | ||||
| 39 | Ransom Note | Easy | 🟢 | ✅ |
| 40 | Isomorphic Strings | Easy | 🟢 | ✅ |
| 41 | Word Pattern | Easy | 🟢 | ✅ |
| 42 | Valid Anagram | Easy | 🟢 | ✅ |
| 43 | Group Anagrams | Medium | 🟡 | |
| 44 | Two Sum | Easy | 🟢 | ✅ |
| 45 | Happy Number | Easy | 🟢 | ✅ |
| 46 | Contains Duplicate II | Easy | 🟢 | ✅ |
| 47 | Longest Consecutive Sequence | Medium | 🟡 | |
| Intervals | ||||
| 48 | Summary Ranges | Easy | 🟢 | ✅ |
| 49 | Merge Intervals | Medium | 🟡 | |
| 50 | Insert Interval | Medium | 🟡 | |
| 51 | Minimum Number of Arrows to Burst Balloons | Medium | 🟡 | |
| Stack | ||||
| 52 | Valid Parentheses | Easy | 🟢 | ✅ |
| 53 | Simplify Path | Medium | 🟡 | |
| 54 | Min Stack | Medium | 🟡 | |
| 55 | Evaluate Reverse Polish Notation | Medium | 🟡 | |
| 56 | Basic Calculator | Hard | 🔴 | |
| Linked List | ||||
| 57 | Linked List Cycle | Easy | 🟢 | ✅ |
| 58 | Add Two Numbers | Medium | 🟡 | |
| 59 | Merge Two Sorted Lists | Easy | 🟢 | ✅ |
| 60 | Copy List with Random Pointer | Medium | 🟡 | |
| 61 | Reverse Linked List II | Medium | 🟡 | |
| 62 | Reverse Nodes in k-Group | Hard | 🔴 | |
| 63 | Remove Nth Node From End of List | Medium | 🟡 | |
| 64 | Remove Duplicates from Sorted List II | Medium | 🟡 | |
| 65 | Rotate List | Medium | 🟡 | |
| 66 | Partition List | Medium | 🟡 | |
| 67 | LRU Cache | Medium | 🟡 | ✅ |
| Binary Tree General | ||||
| 68 | Maximum Depth of Binary Tree | Easy | 🟢 | ✅ |
| 69 | Same Tree | Easy | 🟢 | ✅ |
| 70 | Invert Binary Tree | Easy | 🟢 | ✅ |
| 71 | Symmetric Tree | Easy | 🟢 | ✅ |
| 72 | Construct Binary Tree from Preorder and Inorder Traversal | Medium | 🟡 | |
| 73 | Construct Binary Tree from Inorder and Postorder Traversal | Medium | 🟡 | |
| 74 | Populating Next Right Pointers in Each Node II | Medium | 🟡 | |
| 75 | Flatten Binary Tree to Linked List | Medium | 🟡 | |
| 76 | Path Sum | Easy | 🟢 | ✅ |
| 77 | Sum Root to Leaf Numbers | Medium | 🟡 | |
| 78 | Binary Tree Maximum Path Sum | Hard | 🔴 | |
| 79 | Binary Search Tree Iterator | Medium | 🟡 | |
| 80 | Count Complete Tree Nodes | Easy | 🟢 | ✅ |
| 81 | Lowest Common Ancestor of a Binary Tree | Medium | 🟡 | |
| Binary Tree BFS | ||||
| 8282 | Binary Tree Right Side View | Medium | 🟡 | |
| 83 | Average of Levels in Binary Tree | Easy | 🟢 | ✅ |
| 84 | Binary Tree Level Order Traversal | Medium | 🟡 | ✅ |
| 85 | Binary Tree Zigzag Level Order Traversal | Medium | 🟡 | |
| Binary Search Tree | ||||
| 86 | Minimum Absolute Difference in BST | Easy | 🟢 | ✅ |
| 87 | Kth Smallest Element in a BST | Medium | 🟡 | |
| 88 | Validate Binary Search Tree | Medium | 🟡 | |
| Graph General | ||||
| 89 | Number of Islands | Medium | 🟡 | |
| 90 | Surrounded Regions | Medium | 🟡 | |
| 91 | Clone Graph | Medium | 🟡 | |
| 92 | Evaluate Division | Medium | 🟡 | |
| 93 | Course Schedule | Medium | 🟡 | |
| 94 | Course Schedule II | Medium | 🟡 | |
| Graph BFS | ||||
| 95 | Snakes and Ladders | Medium | 🟡 | |
| 96 | Minimum Genetic Mutation | Medium | 🟡 | |
| 97 | Word Ladder | Hard | 🔴 | |
| Trie | ||||
| 98 | Implement Trie (Prefix Tree) | Medium | 🟡 | |
| 99 | Design Add and Search Words Data Structure | Medium | 🟡 | |
| 100 | Word Search II | Hard | 🔴 | |
| Backtracking | ||||
| 101 | Letter Combinations of a Phone Number | Medium | 🟡 | |
| 102 | Combinations | Medium | 🟡 | |
| 103 | Permutations | Medium | 🟡 | |
| 104 | Combination Sum | Medium | 🟡 | |
| 105 | N-Queens II | Hard | 🔴 | |
| 106 | Generate Parentheses | Medium | 🟡 | |
| 107 | Word Search | Medium | 🟡 | |
| Divide & Conquer | ||||
| 108 | Convert Sorted Array to Binary Search Tree | Easy | 🟢 | ✅ |
| 109 | Sort List | Medium | 🟡 | |
| 110 | Construct Quad Tree | Medium | 🟡 | |
| 111 | Merge k Sorted Lists | Hard | 🔴 | |
| Kadane's Algorithm | ||||
| 112 | Maximum Subarray | Medium | 🟡 | |
| 113 | Maximum Sum Circular Subarray | Medium | 🟡 | |
| Binary Search | ||||
| 114 | Search Insert Position | Easy | 🟢 | ✅ |
| 115 | Search a 2D Matrix | Medium | 🟡 | |
| 116 | Find Peak Element | Medium | 🟡 | |
| 117 | Search in Rotated Sorted Array | Medium | 🟡 | |
| 118 | Find First and Last Position of Element in Sorted Array | Medium | 🟡 | |
| 119 | Find Minimum in Rotated Sorted Array | Medium | 🟡 | |
| 120 | Median of Two Sorted Arrays | Hard | 🔴 | |
| Heap | ||||
| 121 | Kth Largest Element in an Array | Medium | 🟡 | |
| 122 | IPO | Hard | 🔴 | |
| 123 | Find K Pairs with Smallest Sums | Medium | 🟡 | |
| 124 | Find Median from Data Stream | Hard | 🔴 | |
| Bit Manipulation | ||||
| 125 | Add Binary | Easy | 🟢 | ✅ |
| 126 | Reverse Bits | Easy | 🟢 | ✅ |
| 127 | Number of 1 Bits | Easy | 🟢 | ✅ |
| 128 | Single Number | Easy | 🟢 | ✅ |
| 129 | Single Number II | Medium | 🟡 | |
| 130 | Bitwise AND of Numbers Range | Medium | 🟡 | |
| Math | ||||
| 131 | Palindrome Number | Easy | 🟢 | ✅ |
| 132 | Plus One | Easy | 🟢 | ✅ |
| 133 | Factorial Trailing Zeroes | Medium | 🟡 | |
| 134 | Sqrt(x) | Easy | 🟢 | ✅ |
| 135 | Pow(x, n) | Medium | 🟡 | |
| 136 | Max Points on a Line | Hard | 🔴 | |
| 1D DP | ||||
| 137 | Climbing Stairs | Easy | 🟢 | |
| 138 | House Robber | Medium | 🟡 | |
| 139 | Word Break | Medium | 🟡 | |
| 140 | Coin Change | Medium | 🟡 | |
| 141 | Longest Increasing Subsequence | Medium | 🟡 | |
| Multidimensional DP | ||||
| 142 | Triangle | Medium | 🟡 | |
| 143 | Minimum Path Sum | Medium | 🟡 | |
| 144 | Unique Paths II | Medium | 🟡 | |
| 145 | Longest Palindromic Substring | Medium | 🟡 | |
| 146 | Interleaving String | Medium | 🟡 | |
| 147 | Edit Distance | Medium | 🟡 | |
| 148 | Best Time to Buy and Sell Stock III | Hard | 🔴 | |
| 149 | Best Time to Buy and Sell Stock IV | Hard | 🔴 | |
| 150 | Maximal Square | Medium | 🟡 | |