Study planner
DSA tracker
Curated coding problems by pattern: arrays to dynamic programming, each with a full solution. 157 topics. Open a topic to study it, then tick your progress.
DSA solved0 of 157
Solved, Rev 1, Rev 2, Rev 3 and a confidence score (1–5) for each topic, as in the planner spreadsheet. A topic counts as complete once it is marked solved.
Saved in this browser only. Back it up from the study planner page.
| # | Topic | Category | Level | Solved | Rev 1 | Rev 2 | Rev 3 | Confidence |
|---|---|---|---|---|---|---|---|---|
| 1 | Contains Duplicate | Arrays | Easy | |||||
| 2 | Valid Anagram | Hashing | Easy | |||||
| 3 | Two Sum | Hashing | Easy | |||||
| 4 | Group Anagrams | Hashing | Medium | |||||
| 5 | Top K Frequent Elements | Hashing | Medium | |||||
| 6 | Product of Array Except Self | Arrays | Medium | |||||
| 7 | Valid Sudoku | Arrays | Medium | |||||
| 8 | Encode and Decode Strings | Arrays | Medium | |||||
| 9 | Longest Consecutive Sequence | Hashing | Medium | |||||
| 10 | Maximum Subarray | Arrays | Medium | |||||
| 11 | Merge Intervals | Arrays | Medium | |||||
| 12 | Insert Interval | Arrays | Medium | |||||
| 13 | Non-overlapping Intervals | Arrays | Medium | |||||
| 14 | Rotate Image | Arrays | Medium | |||||
| 15 | Spiral Matrix | Arrays | Medium | |||||
| 16 | Set Matrix Zeroes | Arrays | Medium | |||||
| 17 | Subarray Sum Equals K | Hashing | Medium | |||||
| 18 | Majority Element | Arrays | Easy | |||||
| 19 | Valid Palindrome | Two Pointers | Easy | |||||
| 20 | Two Sum II Input Array Is Sorted | Two Pointers | Medium | |||||
| 21 | 3Sum | Two Pointers | Medium | |||||
| 22 | Container With Most Water | Two Pointers | Medium | |||||
| 23 | Trapping Rain Water | Two Pointers | Hard | |||||
| 24 | Move Zeroes | Two Pointers | Easy | |||||
| 25 | Sort Colors | Two Pointers | Medium | |||||
| 26 | Best Time to Buy and Sell Stock | Sliding Window | Easy | |||||
| 27 | Longest Substring Without Repeating Characters | Sliding Window | Medium | |||||
| 28 | Longest Repeating Character Replacement | Sliding Window | Medium | |||||
| 29 | Permutation in String | Sliding Window | Medium | |||||
| 30 | Minimum Window Substring | Sliding Window | Hard | |||||
| 31 | Sliding Window Maximum | Sliding Window | Hard | |||||
| 32 | Maximum Average Subarray I | Sliding Window | Easy | |||||
| 33 | Valid Parentheses | Stack | Easy | |||||
| 34 | Min Stack | Stack | Medium | |||||
| 35 | Evaluate Reverse Polish Notation | Stack | Medium | |||||
| 36 | Generate Parentheses | Stack | Medium | |||||
| 37 | Daily Temperatures | Stack | Medium | |||||
| 38 | Car Fleet | Stack | Medium | |||||
| 39 | Largest Rectangle in Histogram | Stack | Hard | |||||
| 40 | Next Greater Element I | Stack | Easy | |||||
| 41 | Implement Stack using Queues | Queue | Easy | |||||
| 42 | Implement Queue using Stacks | Queue | Easy | |||||
| 43 | Design Circular Queue | Queue | Medium | |||||
| 44 | Number of Recent Calls | Queue | Easy | |||||
| 45 | Binary Search | Binary Search | Easy | |||||
| 46 | Search a 2D Matrix | Binary Search | Medium | |||||
| 47 | Koko Eating Bananas | Binary Search | Medium | |||||
| 48 | Find Minimum in Rotated Sorted Array | Binary Search | Medium | |||||
| 49 | Search in Rotated Sorted Array | Binary Search | Medium | |||||
| 50 | Time Based Key-Value Store | Binary Search | Medium | |||||
| 51 | Median of Two Sorted Arrays | Binary Search | Hard | |||||
| 52 | Find First and Last Position | Binary Search | Medium | |||||
| 53 | Reverse Linked List | Linked List | Easy | |||||
| 54 | Merge Two Sorted Lists | Linked List | Easy | |||||
| 55 | Linked List Cycle | Linked List | Easy | |||||
| 56 | Reorder List | Linked List | Medium | |||||
| 57 | Remove Nth Node From End of List | Linked List | Medium | |||||
| 58 | Copy List with Random Pointer | Linked List | Medium | |||||
| 59 | Add Two Numbers | Linked List | Medium | |||||
| 60 | Find the Duplicate Number | Linked List | Medium | |||||
| 61 | LRU Cache | Linked List | Medium | |||||
| 62 | Merge k Sorted Lists | Linked List | Hard | |||||
| 63 | Reverse Nodes in k-Group | Linked List | Hard | |||||
| 64 | Invert Binary Tree | Trees | Easy | |||||
| 65 | Maximum Depth of Binary Tree | Trees | Easy | |||||
| 66 | Diameter of Binary Tree | Trees | Easy | |||||
| 67 | Balanced Binary Tree | Trees | Easy | |||||
| 68 | Same Tree | Trees | Easy | |||||
| 69 | Subtree of Another Tree | Trees | Easy | |||||
| 70 | Binary Tree Level Order Traversal | Trees | Medium | |||||
| 71 | Binary Tree Right Side View | Trees | Medium | |||||
| 72 | Count Good Nodes in Binary Tree | Trees | Medium | |||||
| 73 | Construct Tree from Preorder and Inorder | Trees | Medium | |||||
| 74 | Binary Tree Maximum Path Sum | Trees | Hard | |||||
| 75 | Serialize and Deserialize Binary Tree | Trees | Hard | |||||
| 76 | Lowest Common Ancestor of Binary Tree | Trees | Medium | |||||
| 77 | Validate Binary Search Tree | BST | Medium | |||||
| 78 | Kth Smallest Element in a BST | BST | Medium | |||||
| 79 | Lowest Common Ancestor of a BST | BST | Medium | |||||
| 80 | Insert into a BST | BST | Medium | |||||
| 81 | Delete Node in a BST | BST | Medium | |||||
| 82 | Convert Sorted Array to BST | BST | Easy | |||||
| 83 | Implement Trie (Prefix Tree) | Trees | Medium | |||||
| 84 | Design Add and Search Words | Trees | Medium | |||||
| 85 | Word Search II | Backtracking | Hard | |||||
| 86 | Kth Largest Element in a Stream | Heap | Easy | |||||
| 87 | Last Stone Weight | Heap | Easy | |||||
| 88 | K Closest Points to Origin | Heap | Medium | |||||
| 89 | Kth Largest Element in an Array | Heap | Medium | |||||
| 90 | Task Scheduler | Heap | Medium | |||||
| 91 | Design Twitter | Heap | Medium | |||||
| 92 | Find Median from Data Stream | Heap | Hard | |||||
| 93 | Subsets | Backtracking | Medium | |||||
| 94 | Combination Sum | Backtracking | Medium | |||||
| 95 | Permutations | Backtracking | Medium | |||||
| 96 | Subsets II | Backtracking | Medium | |||||
| 97 | Combination Sum II | Backtracking | Medium | |||||
| 98 | Word Search | Backtracking | Medium | |||||
| 99 | Palindrome Partitioning | Backtracking | Medium | |||||
| 100 | Letter Combinations of a Phone Number | Backtracking | Medium | |||||
| 101 | N-Queens | Backtracking | Hard | |||||
| 102 | Number of Islands | Graph | Medium | |||||
| 103 | Clone Graph | Graph | Medium | |||||
| 104 | Max Area of Island | Graph | Medium | |||||
| 105 | Pacific Atlantic Water Flow | Graph | Medium | |||||
| 106 | Surrounded Regions | Graph | Medium | |||||
| 107 | Rotting Oranges | Graph | Medium | |||||
| 108 | Course Schedule | Graph | Medium | |||||
| 109 | Course Schedule II | Graph | Medium | |||||
| 110 | Graph Valid Tree | Graph | Medium | |||||
| 111 | Number of Connected Components | Graph | Medium | |||||
| 112 | Redundant Connection | Graph | Medium | |||||
| 113 | Word Ladder | Graph | Hard | |||||
| 114 | Network Delay Time | Graph | Medium | |||||
| 115 | Cheapest Flights Within K Stops | Graph | Medium | |||||
| 116 | Reconstruct Itinerary | Graph | Hard | |||||
| 117 | Min Cost to Connect All Points | Graph | Medium | |||||
| 118 | Swim in Rising Water | Graph | Hard | |||||
| 119 | Alien Dictionary | Graph | Hard | |||||
| 120 | Climbing Stairs | Dynamic Programming | Easy | |||||
| 121 | Min Cost Climbing Stairs | Dynamic Programming | Easy | |||||
| 122 | House Robber | Dynamic Programming | Medium | |||||
| 123 | House Robber II | Dynamic Programming | Medium | |||||
| 124 | Longest Palindromic Substring | Dynamic Programming | Medium | |||||
| 125 | Palindromic Substrings | Dynamic Programming | Medium | |||||
| 126 | Decode Ways | Dynamic Programming | Medium | |||||
| 127 | Coin Change | Dynamic Programming | Medium | |||||
| 128 | Maximum Product Subarray | Dynamic Programming | Medium | |||||
| 129 | Word Break | Dynamic Programming | Medium | |||||
| 130 | Longest Increasing Subsequence | Dynamic Programming | Medium | |||||
| 131 | Partition Equal Subset Sum | Dynamic Programming | Medium | |||||
| 132 | Unique Paths | Dynamic Programming | Medium | |||||
| 133 | Longest Common Subsequence | Dynamic Programming | Medium | |||||
| 134 | Best Time to Buy/Sell with Cooldown | Dynamic Programming | Medium | |||||
| 135 | Coin Change II | Dynamic Programming | Medium | |||||
| 136 | Target Sum | Dynamic Programming | Medium | |||||
| 137 | Interleaving String | Dynamic Programming | Medium | |||||
| 138 | Edit Distance | Dynamic Programming | Medium | |||||
| 139 | Burst Balloons | Dynamic Programming | Hard | |||||
| 140 | Regular Expression Matching | Dynamic Programming | Hard | |||||
| 141 | Jump Game | Greedy | Medium | |||||
| 142 | Jump Game II | Greedy | Medium | |||||
| 143 | Gas Station | Greedy | Medium | |||||
| 144 | Hand of Straights | Greedy | Medium | |||||
| 145 | Merge Triplets to Form Target | Greedy | Medium | |||||
| 146 | Partition Labels | Greedy | Medium | |||||
| 147 | Valid Parenthesis String | Greedy | Medium | |||||
| 148 | Longest Common Prefix | Strings | Easy | |||||
| 149 | Reverse String | Strings | Easy | |||||
| 150 | Valid Palindrome II | Strings | Easy | |||||
| 151 | String to Integer (atoi) | Strings | Medium | |||||
| 152 | Single Number | Hashing | Easy | |||||
| 153 | Number of 1 Bits | Arrays | Easy | |||||
| 154 | Counting Bits | Dynamic Programming | Easy | |||||
| 155 | Reverse Bits | Arrays | Easy | |||||
| 156 | Missing Number | Arrays | Easy | |||||
| 157 | Sum of Two Integers | Arrays | Medium |
No topics match these filters
Clear a filter to see more topics.