| # | LeetCode Link | Difficulty | Solution | Data Structures | Patterns / Approaches | B75 | CTCI | EPI | TIQ | CCH | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| * | 0005 | Longest Palindromic Substring | Medium | Python | String |
DP |
✔️ | ✔️ |
| # | LeetCode Link | Difficulty | Solution | Data Structures | Patterns / Approaches | B75 | CTCI | EPI | TIQ | CCH | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 0002 | Add Two Numbers | Medium | Python | Linked List |
Math Recursion |
✔️ | ✔️ | ||||
| * | 0021 | Merge Two Sorted Lists | Easy | Python | Linked List |
Recursion |
✔️ | ||||
| 0024 | Swap Nodes in Pairs | Medium | Python | Linked List |
Recursion |
✔️ | |||||
| 0146 | LRU Cache | Medium | Python | Linked List |
✔️ | ||||||
| * | 0148 | Sort List | Medium | Python | Linked List |
Divide and Conquer |
✔️ |
| # | LeetCode Link | Difficulty | Solution | Data Structures | Patterns / Approaches | B75 | CTCI | EPI | TIQ | CCH | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 0020 | Valid Parentheses | Easy | Python | String Stack |
✔️ | ✔️ |
| # | LeetCode Link | Difficulty | Solution | Data Structures | Patterns / Approaches | B75 | CTCI | EPI | TIQ | CCH | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| * | 0072 | Edit Distance | Hard | Python | String |
DP |
| # | LeetCode Link | Difficulty | Solution | Data Structures | Patterns / Approaches | B75 | CTCI | EPI | TIQ | CCH | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 0011 | Container With Most Water | Medium | Python | Array |
Two Pointers Greedy |
✔️ | |||||
| * | 0015 | 3Sum | Medium | Python | Array |
Two Pointers Sorting |
✔️ | ✔️ | |||
| 0016 | 3Sum Closest | Medium | Python | Array |
Two Pointers Sorting |
✔️ | |||||
| * | 0019 | Remove Nth Node From End of List | Medium | Python | Linked List |
Two Pointers |
✔️ | ✔️ | |||
| 0026 | Remove Duplicates from Sorted Array | Easy | Python | Array |
Two Pointers |
✔️ |
| # | LeetCode Link | Difficulty | Solution | Data Structures | Patterns / Approaches | B75 | CTCI | EPI | TIQ | CCH | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| * | 0003 | Longest Substring Without Repeating Characters | Medium | Python | String Hash Table |
Sliding Window |
✔️ | ✔️ |
| # | LeetCode Link | Difficulty | Solution | Data Structures | Patterns / Approaches | B75 | CTCI | EPI | TIQ | CCH | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| * | 0033 | Search in Rotated Sorted Array | Medium | Python | Array |
Binary Search |
✔️ | ✔️ | |||
| 0034 | Find First and Last Position of Element in Sorted Array | Medium | Python | Array |
Binary Search |
||||||
| * | 0035 | Search Insert Position | Easy | Python | Array |
Binary Search |
✔️ |
| # | LeetCode Link | Difficulty | Solution | Data Structures | Patterns / Approaches | B75 | CTCI | EPI | TIQ | CCH | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| * | 0023 | Merge k Sorted Lists | Hard | Python | Linked List |
DC Merge Sort |
✔️ |
| # | LeetCode Link | Difficulty | Solution | Data Structures | Patterns / Approaches | B75 | CTCI | EPI | TIQ | CCH | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 0017 | Letter Combinations of a Phone Number | Medium | Python | String Hash Table |
Backtracking |
✔️ | |||||
| 0046 | Permutations | Medium | Python | Array |
Backtracking |
| # | LeetCode Link | Difficulty | Solution | Data Structures | Patterns / Approaches | B75 | CTCI | EPI | TIQ | CCH | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 0001 | Two Sum | Easy | Python | Array Hash Table |
✔️ | ✔️ | |||||
| 0009 | Palindrome Number | Easy | Python | Math |
✔️ | ||||||
| 0013 | Roman to Integer | Easy | Python | String Hash Table |
Math |
✔️ | |||||
| 0014 | Longest Common Prefix | Easy | Python | String |
|||||||
| 0022 | Generate Parentheses | Medium | ✔️ | ||||||||
| 0046 | Permutations | Medium | ✔️ | ||||||||
| 0048 | Rotate Image | Medium | Python | Array Matrix |
Math |
✔️ | ✔️ | ||||
| 0049 | Group Anagrams | Medium | Python | Hash Table String |
Sorting |
✔️ | ✔️ | ||||
| * | 0053 | Maximum Subarray | Easy | Python | Array |
DP DC |
✔️ | ✔️ | |||
| 0054 | Spiral Matrix | Medium | Python | Array Matrix |
Simulation |
✔️ | ✔️ | ||||
| * | 0055 | Jump Game | Medium | Python | Array |
DP Greedy |
✔️ | ✔️ | ✔️ | ||
| 0056 | Merge Intervals | Medium | Python | Array |
Sorting |
✔️ | ✔️ | ||||
| 0057 | Insert Interval | Medium | Python | Array |
✔️ | ✔️ | |||||
| 0062 | Unique Paths | Medium | Python | Array Matrix |
Math DP Combinatorics |
✔️ | ✔️ | ✔️ | |||
| 0063 | Unique Paths II | Medium | Python | Array Matrix |
DP |
✔️ | |||||
| 0070 | Climbing Stairs | Easy | Python | Math DP Memorization |
✔️ | ✔️ | |||||
| 0073 | Set Matrix Zeroes | Medium | Python | Array Matrix |
✔️ | ✔️ | ✔️ | ||||
| 0075 | Sort Colors | Medium | ✔️ | ||||||||
| 0076 | Minimum Window Substring | Hard | Hash Table String |
Sliding Window |
✔️ | ||||||
| 0078 | Subsets | Medium | ✔️ | ||||||||
| * | 0079 | Word Search | Medium | Python | Array Matrix |
Backtracking |
✔️ | ✔️ | |||
| 0083 | Remove Duplicates from Sorted List | Easy | Python | Linked List |
Two Pointers |
||||||
| * | 0086 | Partition List | Medium | Python | Linked List |
Two Pointers |
✔️ | ||||
| 0091 | Decode Ways | Medium | Python | String |
DP |
✔️ | |||||
| 0094 | Binary Tree Inorder Traversal | Easy | ✔️ | ||||||||
| 0098 | Validate Binary Search Tree | Medium | Python | Binary Tree BST |
DFS |
✔️ | ✔️ | ||||
| 0100 | Same Tree | Easy | Python | Binary Tree |
DFS BFS |
✔️ | |||||
| 0101 | Symmetric Tree | Easy | Python | Binary Tree |
DFS BFS |
||||||
| 0102 | Binary Tree Level Order Traversal | Medium | Python | Binary Tree |
BFS |
✔️ | |||||
| 0103 | Binary Tree Zigzag Level Order Traversal | Medium | ✔️ | ||||||||
| 0104 | Maximum Depth of Binary Tree | Easy | Python | Binary Tree |
DFS BFS |
✔️ | ✔️ | ||||
| * | 0105 | Construct Binary Tree from Preorder and Inorder Traversal | Medium | Python | Array Hash Table Binary Tree |
DC |
✔️ | ✔️ | |||
| 0108 | Convert Sorted Array to Binary Search Tree | Easy | Python | Array Binary Tree BST |
DC |
✔️ | |||||
| * | 0109 | Convert Sorted List to Binary Search Tree | Medium | Python | Linked List Binary Tree BST |
DC |
✔️ | ||||
| 0110 | Balanced Binary Tree | Easy | Python | Binary Tree |
DFS |
✔️ | |||||
| * | 0111 | Minimum Depth of Binary Tree | Easy | Python | Binary Tree |
DFS BFS |
✔️ | ||||
| 0116 | Populating Next Right Pointers in Each Node | Medium | ✔️ | ||||||||
| 0118 | Pascal's Triangle | Easy | Python | Array |
DP |
||||||
| 0121 | Best Time to Buy and Sell Stock | Easy | Python | Array |
DP |
✔️ | |||||
| 0122 | Best Time to Buy and Sell Stock II | Easy | Python | Array |
DP Greedy |
✔️ | |||||
| * | 0124 | Binary Tree Maximum Path Sum | Hard | Python | Binary Tree |
DP DFS |
✔️ | ||||
| 0125 | Valid Palindrome | Easy | Python | String |
Two Pointers |
✔️ | |||||
| * | 0128 | Longest Consecutive Sequence | Medium | Python | Array Hash Table |
Union Find |
✔️ | ||||
| 0133 | Clone Graph | Medium | Python | Graph Hash Table |
DFS BFS |
✔️ | ✔️ | ||||
| 0136 | Single Number | Easy | Python | Array |
Bit Manipulation |
✔️ | |||||
| 0137 | Single Number II | Medium | ✔️ | ||||||||
| 0138 | Copy List with Random Pointer | Medium | Python | Linked List Hash Table |
✔️ | ||||||
| 0139 | Word Break | Medium | Python | Hash Table String |
DP Memorization |
✔️ | |||||
| 0141 | Linked List Cycle | Easy | Python | Linked List |
Two Pointer |
✔️ | |||||
| * | 0143 | Reorder List | Medium | Python | Linked List Stack |
Two Pointer Recursion |
✔️ | ||||
| 0144 | Binary Tree Preorder Traversal | Easy | Python | Binary Tree |
DFS |
||||||
| 0145 | Binary Tree Postorder Traversal | Easy | Python | Binary Tree |
DFS |
||||||
| 0150 | Evaluate Reverse Polish Notation | Medium | Python | Array Stack |
Math |
✔️ | |||||
| * | 0152 | Maximum Product Subarray | Medium | Python | Array |
DP |
✔️ | ✔️ | |||
| 0154 | Find Minimum in Rotated Sorted Array II | Hard | ✔️ | ||||||||
| 0153 | Find Minimum in Rotated Sorted Array | Medium | Python | Array |
Binary Search |
✔️ | ✔️ | ||||
| 0155 | Min Stack | Medium | Python | Stack |
Design |
✔️ | |||||
| 0160 | Intersection of Two Linked Lists | Easy | ✔️ | ||||||||
| 0162 | Find Peak Element | Medium | ✔️ | ||||||||
| 0163 | Missing Ranges (Premium) | Easy | ✔️ | ||||||||
| * | 0189 | Rotate Array | Medium | Python | Array |
Math Two Pointers |
✔️ | ||||
| 0190 | Reverse Bits | Easy | Python | Bit Manipulation |
✔️ | ||||||
| 0191 | Number of 1 Bits | Easy | Python | Bit Manipulation |
✔️ | ✔️ | |||||
| 0198 | House Robber | Medium | Python | Array |
DP |
✔️ | |||||
| 0200 | Number of Islands | Medium | Python | Array Matrix |
DFS BFS Union Find |
✔️ | ✔️ | ||||
| 0206 | Reverse Linked List | Easy | Python | Linked List |
Recursion |
✔️ | |||||
| * | 0207 | Course Schedule | Medium | Python | Graph |
DFS BFS Topological Sort |
✔️ | ||||
| 0208 | Implement Trie (Prefix Tree) | Medium | Python | Trie Hash Table String |
Design |
✔️ | |||||
| * | 0211 | Design Add and Search Words Data Structure | Medium | Python | Trie String |
DFS Design |
✔️ | ||||
| 0212 | Word Search II | Hard | ✔️ | ||||||||
| 0213 | House Robber II | Medium | Python | Array |
DP |
✔️ | |||||
| 0215 | Kth Largest Element in an Array | Medium | ✔️ | ||||||||
| 0217 | Contains Duplicate | Easy | Python | Array Hash Table |
Sorting |
✔️ | ✔️ | ||||
| 0226 | Invert Binary Tree | Easy | Python | Binary Tree |
DFS BFS |
✔️ | |||||
| 0230 | Kth Smallest Element in a BST | Medium | Python | Binary Tree BST |
DFS |
✔️ | ✔️ | ||||
| 0235 | Lowest Common Ancestor of a Binary Search Tree | Easy | Python | Binary Tree BST |
DFS |
✔️ | |||||
| * | 0238 | Product of Array Except Self | Medium | Python | Array |
Prefix Sum |
✔️ | ||||
| 0240 | Search a 2D Matrix II | Medium | ✔️ | ||||||||
| 0242 | Valid Anagram | Easy | Python | Hash Table String |
Sorting |
✔️ | |||||
| 0252 | Meeting Rooms (Premium) | Easy | ✔️ | ||||||||
| 0253 | Meeting Rooms II (Premium) | Medium | ✔️ | ✔️ | |||||||
| 0261 | Graph Valid Tree (Premium) | Medium | ✔️ | ||||||||
| 0268 | Missing Number | Easy | Python | Array |
Math Bit Manipulation |
✔️ | |||||
| 0269 | Alien Dictionary (Premium) | Hard | ✔️ | ||||||||
| 0271 | Encode and Decode Strings (Premium) | Medium | ✔️ | ||||||||
| 0283 | Move Zeroes | Easy | Python | Array |
Two Pointers |
✔️ | |||||
| 0285 | Inorder Successor in BST | Medium | ✔️ | ||||||||
| 0295 | Find Median from Data Stream | Hard | ✔️ | ||||||||
| * | 0297 | Serialize and Deserialize Binary Tree | Hard | Python | String Binary Tree |
DFS BFS |
✔️ | ||||
| * | 0300 | Longest Increasing Subsequence | Medium | Python | Array |
Binary Search DP |
✔️ | ✔️ | |||
| * | 0322 | Coin Change | Medium | Python | Array |
DP BFS |
✔️ | ✔️ | |||
| 0323 | Number of Connected Components in an Undirected Graph (Premium) | Medium | ✔️ | ||||||||
| 0328 | Odd Even Linked List | Medium | ✔️ | ||||||||
| 0334 | Increasing Triplet Subsequence | Medium | ✔️ | ||||||||
| 0338 | Counting Bits | Easy | Python | DP Bit Manipulation |
✔️ | ||||||
| 0347 | Top K Frequent Elements | Medium | ✔️ | ✔️ | |||||||
| * | 0371 | Sum of Two Integers | Medium | Python | Math Bit Manipulation |
✔️ | |||||
| 0377 | Combination Sum IV | Medium | Python | Array |
DP |
✔️ | |||||
| * | 0380 | Insert Delete GetRandom O(1) | Medium | Python | Array Hash Table |
Design |
|||||
| 0417 | Pacific Atlantic Water Flow | Medium | Python | Array Matrix |
DFS BFS |
✔️ | |||||
| * | 0424 | Longest Repeating Character Replacement | Medium | Python | String Hash Table |
Sliding Window |
✔️ | ||||
| 0435 | Non-overlapping Intervals | Medium | Python | Array |
DP Greedy Sorting |
✔️ | |||||
| 0495 | Teemo Attacking | Easy | Python | Array |
|||||||
| 0567 | Permutation in String | Medium | Python | String Hash Table |
Two Pointers Sliding Window |
✔️ | |||||
| 0572 | Subtree of Another Tree | Medium | Python | Binary Tree |
DFS Hash Function |
✔️ | |||||
| 0647 | Palindromic Substrings | Medium | Python | String |
DP |
✔️ | |||||
| 0796 | Rotate String | Easy | Python | String |
✔️ | ||||||
| * | 1143 | Longest Common Subsequence | Medium | Python | String |
DP |
✔️ |
* Didn't solve independently, or worth reviewing.
| Abbr | Pattern |
|---|---|
| DC | Divide and Conquer |
| DP | Dynamic Programming |