Welcome to my DSA repository!
This repository contains my solutions to:
- 📚 Striver's A2Z DSA Sheet
- 💻 LeetCode Problems
- 🔥 Daily LeetCode Challenges
- 🎯 Placement Preparation Questions
- 📈 Topic-wise DSA Practice
The primary goal of this repository is to strengthen problem-solving skills, master Data Structures and Algorithms, and prepare for coding interviews and placement opportunities.
Hi, I'm Mohammad Vasim.
🎓 B.Tech Computer Science Engineering Student
💡 Currently learning and exploring:
- Data Structures & Algorithms
- Web Development
- Artificial Intelligence & Machine Learning
- Software Development
This repository serves as my coding journal where I consistently practice and improve my problem-solving skills.
DSA/
│
├── Arrays/
│ ├── #1 : Two Sum.java
│ ├── #53 : Maximum Subarray.java
│ └── #121 : Best Time to Buy and Sell Stock.java
│
├── Strings/
│ ├── #125 : Valid Palindrome.java
│ └── #14 : Longest Common Prefix.java
│
├── Hashing/
│ ├── #242 : Valid Anagram.java
│ └── #49 : Group Anagrams.java
│
├── Linked List/
│ ├── #206 : Reverse Linked List.java
│ └── #141 : Linked List Cycle.java
│
├── Stack/
│ ├── #20 : Valid Parentheses.java
│ └── #155 : Min Stack.java
│
├── Queue/
│ └── #232 : Implement Queue using Stacks.java
│
├── Recursion/
│
├── Backtracking/
│ ├── #46 : Permutations.java
│ └── #78 : Subsets.java
│
├── Binary Search/
│ ├── #704 : Binary Search.java
│ ├── #35 : Search Insert Position.java
│ └── #33 : Search in Rotated Sorted Array.java
│
├── Sliding Window/
│
├── Two Pointers/
│
├── Trees/
│
├── Binary Search Trees/
│
├── Heap/
│
├── Greedy/
│
├── Graph/
│
├── Dynamic Programming/
│
├── Bit Manipulation/
│
├── Tries/
│
└── README.md
- Arrays
- Strings
- Hashing
- Linked List
- Stack
- Queue
- Binary Search
- Sorting Algorithms
- Searching Techniques
- Recursion Basics
- Backtracking Problems
- Divide and Conquer
- Sliding Window
- Two Pointers
- Greedy Algorithms
- Bit Manipulation
- Binary Tree
- Binary Search Tree
- Tree Traversals
- Lowest Common Ancestor
- Tree Views
- Tree Construction
- BFS
- DFS
- Topological Sort
- Shortest Path Algorithms
- Minimum Spanning Tree
- Disjoint Set Union
- Graph Traversals
- DP Basics
- Memoization
- Tabulation
- 1D DP
- 2D DP
- DP on Trees
- DP on Subsequences
This repository follows the popular Striver A2Z DSA Sheet.
The sheet covers:
- Programming Fundamentals
- Data Structures
- Algorithms
- Interview Problems
- Coding Patterns
- Competitive Programming Concepts
Each solved problem is organized topic-wise for easy revision and interview preparation.
The repository contains solutions to LeetCode problems categorized by topic and difficulty level.
Every solution includes:
- Problem Number
- Problem Name
- Optimized Approach
- Time Complexity
- Space Complexity
- Clean and Readable Code
/*
Problem: Two Sum
Approach:
Use HashMap to store visited elements.
Time Complexity: O(n)
Space Complexity: O(n)
*/
class Solution {
public int[] twoSum(int[] nums, int target) {
}
}Daily LeetCode problems are not stored separately.
Each Daily Challenge is placed inside its respective topic folder to maintain a clean and organized repository structure.
Examples:
Arrays/
├── 1_Two_Sum.java
├── 53_Maximum_Subarray.java
└── 121_Best_Time_To_Buy_And_Sell_Stock.java
Graphs/
├── 200_Number_Of_Islands.java
├── 994_Rotting_Oranges.java
└── 207_Course_Schedule.java
Trees/
├── 100_Same_Tree.java
├── 104_Maximum_Depth_Of_Binary_Tree.java
└── 102_Binary_Tree_Level_Order_Traversal.java
Each solution is named using the following format:
#ProblemNumber : Problem Name
Examples:
#1 : Two Sum.java
#121 : Best Time to Buy and Sell Stock.java
#206 : Reverse Linked List.java
#102 : Binary Tree Level Order Traversal.java
#704 : Binary Search.java
#994 : Rotting Oranges.java
For Topic-wise Questions:
Arrays/
│
├── #1 : Two Sum.java
├── #121 : Best Time to Buy and Sell Stock.java
├── #53 : Maximum Subarray.java
└── ...
Linked List/
│
├── #206 : Reverse Linked List.java
├── #141 : Linked List Cycle.java
└── ...
Binary Search/
│
├── #704 : Binary Search.java
├── #33 : Search in Rotated Sorted Array.java
└── ...
| Category | Progress |
|---|---|
| Arrays | ✅ |
| Strings | ✅ |
| Linked List | ✅ |
| Sliding Window | ✅ |
| Stack | ✅ |
| Queue | ✅ |
| Binary Search | ✅ |
| Recursion | ✅ |
| Trees | ✅ |
| Graphs | ✅ |
| Dynamic Programming | ⏳ |
| Greedy | ⏳ |
| Heap | ⏳ |
- Complete Striver A2Z Sheet
- Solve 500+ LeetCode Problems
- Strengthen DSA Fundamentals
- Improve Problem-Solving Skills
- Master Dynamic Programming
- Become Interview Ready
- Prepare for Product-Based Companies
- Java ☕ Currently focusing on Java for Data Structures and Algorithms.
This repository helps me:
- Track my coding journey
- Maintain consistency
- Revise important concepts
- Prepare for coding interviews
- Build strong problem-solving skills
If you find this repository useful, consider giving it a ⭐.
It motivates me to keep learning, solving, and sharing.
A comprehensive collection of Data Structures and Algorithms solutions including Striver A2Z Sheet, LeetCode Problems, Daily LeetCode Challenges, and topic-wise interview preparation questions implemented primarily in Java.