This repository is organized by difficulty and topic to help you systematically master DSA:
- Two Pointers
- Sliding Window
- Binary Search
- Prefix Sum
- Kadane's Algorithm
- Arrays & Strings
- Linked Lists
- Stacks & Queues
- Trees & Graphs
- Heaps
- Hash Tables
- Dynamic Programming
- Backtracking
- Greedy Algorithms
- Graph Algorithms (DFS, BFS, Dijkstra)
- Top K Elements
- K-way Merge
- Subsets/Permutations
- Cyclic Sort
- In-place Reversal
- Start with Basic Patterns - Master fundamental techniques first
- Practice Daily - Solve at least 2-3 problems daily
- Understand Patterns - Don't just solve, understand the underlying patterns
- Time Yourself - Practice with time constraints (15-20 mins per problem)
- Review Solutions - Always review optimal solutions after solving
- Easy: 30% (Build confidence)
- Medium: 50% (Most interview questions)
- Hard: 20% (Advanced concepts)
- Arrays & Strings: 25%
- Linked Lists: 15%
- Trees & Graphs: 20%
- Dynamic Programming: 20%
- System Design Basics: 10%
- Other: 10%
- Clean, readable code
- Proper comments explaining logic
- Time & Space complexity analysis
- Multiple approaches when possible
- LeetCode: https://leetcode.com
- GeeksforGeeks: https://geeksforgeeks.org
- HackerRank: https://hackerrank.com
Happy Coding! 🚀