A curated repository to practice, revise, and master Data Structures and Algorithms (DSA). Whether you're preparing for coding interviews or want to brush up on your problem-solving skills, this repo is structured to support topic-wise learning, 200 essential interview problems, and a 20-day rapid revision plan.
- 600+ most asked DSA questions
- Topic-wise segregation: Arrays, Trees, Graphs, DP, and more
- Tagging: Difficulty, Revisit Flags, Notes
- 20-Day DSA Revision Plan
- Ideal for intermediate-level candidates targeting top product companies
- Constantly updated with new patterns and edge cases
| 👩💻 You are... | 👉 Start Here |
|---|---|
| 🧱 A beginner starting DSA | Topic-wise Problems |
| ⏳ Want to cover all concepts in fewer questions | 200 Essential DSA Questions |
| 🕒 Have limited time to revise | 20-Day Revision Plan |
| 🕒 Last Minute Interview revision | Blind 75 Problems |
- Contains Duplicate
- Product of Array except itself *
- Maximum Subarray Sum
- Maximum Product Subarray
- Find Minimum in rotated array *
- Search in Rotated Sorted Array
- 3 Sum
- Container with most water
- Binary Search
- Upper Bound
- Lower Bound
- Insert Position
- First and Last Occurence of target
- Number of Occurences in sorted array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array II
- Minimum in Rotated Sorted array
- kth rotation
- Peak Element
- Height of Binary Tree
- Same Tree
- Invert/Flip Binary tree
- Level Order Traversal
- Zigzag Level Order Traversal
- Next Greater Element I
- Next Greater Element II
- Next Smaller Element
- Number of Next Greater Elements
- Trapping Rain Water
- Largest rectangle in a Histogram
- Binary Array with sum
- Count Nice Subarray
- Minimum size subarray with sum
- Longest Repeating Character Replacement
- Longest Substring Without Repeating Characters
- Course Schedule - I
- Course Schedule - II
- Course Schedule - IV
- Number of Islands (Matrix version)
- Number of Provinces (Graph version)
- Surrounded Regions
- Rotten Oranges
- Eventual Safe States
- Redundant Connections
- Path with Minimum Effort
- Shortest Path in Binary Matrix
- Word Search
- Cheapest flights within k stops
- Network delay time
- Number of Ways to arrive at destination
- Find City with smallest number of neighbors
- Number of Connected Components
- Ninja Training
- Unique Paths
- Unique Paths II
- Unique Paths III
- Minimum Falling Path Sum
- Minimum Path Sum
- Cherry Pickup I
- Cherry Pickup II
- Subset Sum equal to target
- Partition Equal Subset Sum
- Count Subsets with Sum k
- Coin change I
- Coin Change II
- Unbound Knapsack
- Rod Cutting
- Longest Common Subsequences
- Print all longest common subsequence
- Edit Distance
- Longest Palindromic Subsequence
- Minimum Insertion Steps to make string palindrome
- Delete Operation for Two Strings
- Restore IP Addresses
- Best Time to Buy and Sell Stocks - I
- Best Time to Buy and Sell Stocks - II
- Best Time to Buy and Sell Stocks - III
- Best Time to Buy and Sell Stocks - IV
- Best Time to Buy and Sell Stocks - V
- Best Time to Buy and Sell Stocks - VI
- Longest Increasing Subsequence
- Print Longest Increasing Subsequence
- Maximum Sum Increasing Subsequence
- Maximum Length of Bitonic Subsequence
- Number of Longest Increasing Subsequence
-
Arrays III
-
Arrays IV
-
Linked List
-
Linked List and Arrays
-
Greedy
-
Recursion
-
Recursion and Backtracking
-
Binary Search
-
Heaps
-
Stacks and Queues
-
Strings
-
Binary Trees - III
-
Binary Trees Miscelleneous
-
Binary Search Tree
-
Graphs
- DFS Traversal
- BFS Traversal
- Detect Cycle in Undirected Graph BFS, DFS
- Detect Cycle in Directed Graph BFS, DFS
- Topological Sort BFS, DFS
- Number of islands
- Bipartite Graph BFS, DFS
- Strongly Connected Components
- Shortest Path
- Minimum Spanning Tree
-
Dynamic Programming
-
Trie
-
Day 1: Array
-
Day 2: Binary
-
Day 3: Dynamic Programming
-
Day 4: Graph
-
Day 5: Intervals
-
Day 6: Linked List
-
Day 7: Matrix
-
Day 8: Strings
-
Day 9: Tree
- Height of a Binary Tree
- Check if two trees are identical
- Invert/Flip Binary Tree
- Maximum Path sum
- Level Order traversal
- Level Order traversal in Spiral Order
- Serialize Deserialize a Tree
- Subtree of Another Tree
- Construct Binary tree from postorder ans inorder
- Check if tree is a BST or BT
- Find kth Smallest element in BST
- Find LCA of two nodes in BST
- Implement Trie
- Implement Trie II
-
Day 10: Heap
- Simple problems (LL, arrays) → Know iterative first, recursive optional.
- Tree/Graph DFS, backtracking → Recursive first, iterative optional.
- Dynamic programming → Usually iterative (tabulation) preferred, recursive (memoization) to explain intuition.
Pull requests are welcome! Feel free to raise issues or add more problems/solutions with clarity and proper structure.
This project is licensed under the MIT License.