# | 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 |