Welcome to my curated repository of algorithmic challenges and solutions! 🚀
This repository is a living archive of algorithm problems I’ve solved, analyzed, and documented. It serves as both a personal reference and a resource for others interested in diving deep into problem-solving techniques.
- Sharpen Problem-Solving Skills: By solving diverse algorithm challenges.
- Track Progress: A journey of learning and continuous improvement.
- Share Knowledge: Contributing solutions and insights for the community.
- Showcase Expertise: Demonstrating a consistent and repeatable approach to tackling problems.
Each solution is organized into well-defined sections:
- A concise description of the problem, including input-output format and constraints.
- Complexity details, where applicable.
- Approach: Explanation of the thought process and algorithm.
- Code: A clean and optimized implementation.
- Analysis: Key insights, complexity analysis (time and space), and possible trade-offs.
- Iterative improvements and alternate approaches.
- Clone the repository:
git clone https://github.com/yourusername/your-repo-name.git
- Navigate to the desired problem folder.
- Execute the code in your preferred IDE or environment.
- Self-Contained Solutions: Each solution is a standalone implementation using a single main class.
- Revisable: Continuous updates with improved techniques and alternate solutions.
- No External Test Files: Tests are integrated into the main class for simplicity.
Here’s a quick look at the problem-solving format:
// Problem: Reverse a Linked List
// Given a linked list, reverse its nodes.
// Input: Head of linked list
// Output: Head of reversed list
class Solution {
public ListNode reverseLinkedList(ListNode head) {
// Your implementation here
}
public static void main(String[] args) {
// Test cases and results
}
}
- Data Structures: Arrays, Linked Lists, Trees, Graphs
- Algorithms: Sorting, Searching, Dynamic Programming
- Complexity Analysis: Time and Space Trade-offs
- Real-World Scenarios: Practical problem-solving insights
- https://leetcode.com/studyplan/leetcode-75/
- https://leetcode.com/studyplan/top-interview-150/
- https://blog.algomaster.io/p/15-leetcode-patterns
- https://blog.algomaster.io/p/20-patterns-to-master-dynamic-programming
- https://leetcode.com/problemset/?difficulty=MEDIUM&page=1
- https://leetcode.com/studyplan/top-sql-50/
- https://mode.com/sql-tutorial/sql-window-functions
- datalemur.com
- sqlbolt.com
- https://www.hackerrank.com/domains/sql
- https://www.stratascratch.com/
- https://www.youtube.com/@AlexTheAnalyst/playlists
- https://www.datainterview.com/
https://github.com/NirDiamant/GenAI_Agents https://github.com/Shubhamsaboo/awesome-llm-apps https://github.com/modelcontextprotocol/servers https://github.com/aishwaryanr/awesome-generative-ai-guide https://github.com/Hannibal046/Awesome-LLM https://github.com/armankhondker/awesome-ai-ml-resources https://github.com/patchy631/awesome-mcp-servers https://github.com/patchy631/ai-engineering-hub/tree/main
- Expand coverage of advanced topics like AI/ML algorithms.
- Incorporate interactive visualizations of algorithms.
- Add video walkthroughs and blog posts for selected problems.
Feedback and contributions are welcome!
- Fork the repo
- Create a branch:
feature-branch-name
- Submit a pull request
Happy Coding! 🎉