This repository contains Java implementations of Data Structures and Algorithms, created for learning, practice, and interview preparation. Includes clear explanations and optimized solutions.
A comprehensive collection of Data Structures and Algorithms (DSA) programs implemented in Java, designed for learning, practice, and technical interview preparation.
This repository follows a clean, modular structure, includes optimized solutions, and maps problems to LeetCode-style questions for easy reference.
- ✅ Beginner to advanced DSA concepts
- ✅ Clean, readable, and well-commented Java code
- ✅ Organized package structure
- ✅ Interview-focused problems
- ✅ LeetCode problem mapping
- ✅ Suitable for students & professionals
- Arrays
- Strings
- Linked List (Singly, Doubly)
- Stack
- Queue (Simple, Circular, Deque)
- Hashing (HashMap, HashSet)
- Tree (Binary Tree, BST)
- Heap (Min Heap, Max Heap)
- Graph
- Trie
- Searching (Linear, Binary)
- Sorting (Bubble, Selection, Insertion, Merge, Quick)
- Recursion & Backtracking
- Sliding Window
- Two Pointers
- Greedy Algorithms
- Divide & Conquer
- Dynamic Programming
- Graph Algorithms (BFS, DFS, Dijkstra)
- Bit Manipulation
###🧩 LeetCode-Style Problem Mapping Topic Problem LeetCode Link Arrays Maximum Subarray https://leetcode.com/problems/maximum-subarray
Arrays Two Sum https://leetcode.com/problems/two-sum
Strings Valid Palindrome https://leetcode.com/problems/valid-palindrome
Linked List Reverse Linked List https://leetcode.com/problems/reverse-linked-list
Stack Valid Parentheses https://leetcode.com/problems/valid-parentheses
Queue Implement Queue using Stacks https://leetcode.com/problems/implement-queue-using-stacks
Tree Inorder Traversal https://leetcode.com/problems/binary-tree-inorder-traversal
Graph Number of Islands https://leetcode.com/problems/number-of-islands
DP Climbing Stairs https://leetcode.com/problems/climbing-stairs 📌 Naming Conventions
Class names: PascalCase
Packages: lowercase
One problem per file
Descriptive method names
🤝 Contributing
Contributions are welcome!
Fork the repository
Create a new branch
Add your solution
Commit with a meaningful message
Open a Pull Request