This repository contains awesome resources to learn Data Structures and Algorithms (DSA) and prepare for Coding interviews.

👉 If you want to learn DSA from scratch and master all important DSA patterns, checkout this comprehensive and interactive resource [DSA - AlgoMaster.io (https://algomaster.io/learn/dsa)

## 💡 Tips
- [How I Mastered DSA](https://blog.algomaster.io/p/how-i-mastered-data-structures-and-algorithms)
- [How to Start LeetCode](https://blog.algomaster.io/p/how-to-start-leetcode-in-2025)
- [20 DSA Patterns](https://blog.algomaster.io/p/20-dsa-patterns)

## 📌 Fundamental Concepts
- [Algorithmic Complexity](https://algomaster.io/learn/dsa/big-o-introduction)
- [Arrays](https://algomaster.io/learn/dsa/arrays-introduction)
- [Bit Manipulation Techniques](https://algomaster.io/learn/dsa/bit-manipulation-introduction)
- [Sorting Algorithms](https://algomaster.io/learn/dsa/bubble-sort)
- [Linked List](https://algomaster.io/learn/dsa/linked-list-introduction)
- [Stacks](https://algomaster.io/learn/dsa/stack-introduction)
- [Queues](https://algomaster.io/learn/dsa/queue-introduction)
- [Hash Tables](https://algomaster.io/learn/dsa/hash-tables-introduction)
- [Binary Tree](https://algomaster.io/learn/dsa/binary-tree-introduction)
- [Binary Search Tree](https://algomaster.io/learn/dsa/bst-introduction)
- [Heaps](https://algomaster.io/learn/dsa/heaps-introduction)
- [Recursion](https://algomaster.io/learn/dsa/recursion-fundamentals)
- [Backtracking](https://algomaster.io/learn/dsa/backtracking-introduction)
- [Tries](https://algomaster.io/learn/dsa/tries-introduction)
- [Binary Search](https://algomaster.io/learn/dsa/binary-search-introduction)
- [Greedy Algorithm](https://algomaster.io/learn/dsa/greedy-introduction)
- [Dynamic Programming](https://algomaster.io/learn/dsa/dp-introduction)
- [Graph Theory](https://algomaster.io/learn/dsa/graphs-introduction)
- [DFS Traversal](https://algomaster.io/learn/dsa/dfs-introduction)
- [BFS Traversal](https://algomaster.io/learn/dsa/bfs-introduction)
- [Union-Find](https://algomaster.io/learn/dsa/union-find-introduction)
- [Dijkstra Algorithm](https://algomaster.io/learn/dsa/dijkstras-algorithm)
- [Minimum Spanning Tree](https://www.hackerearth.com/practice/algorithms/graphs/minimum-spanning-tree/tutorial/)

## 🚀 Patterns
- [20 Leetcode Patterns](https://blog.algomaster.io/p/20-dsa-patterns)
- [20 DP Patterns](https://blog.algomaster.io/p/20-patterns-to-master-dynamic-programming)
- [Two Pointers Pattern](https://algomaster.io/learn/dsa/two-pointers-introduction)
- [Sliding Window Pattern](https://algomaster.io/learn/dsa/sliding-window-introduction)
- [Prefix Sum Pattern](https://algomaster.io/learn/dsa/prefix-sum-introduction)
- [Fast and Slow Pointers Pattern](https://algomaster.io/learn/dsa/fast-slow-pointers-introduction)
- [Top 'K' Elements Pattern](https://algomaster.io/learn/dsa/top-k-elements-introduction)
- [Kadane's Algorithm](https://algomaster.io/learn/dsa/kadane-s-algorithm-introduction)
- [Linked List In-place Reversal Pattern](https://algomaster.io/learn/dsa/linked-list-in-place-reversal-introduction)
- [Monotonic Stack Pattern](https://algomaster.io/learn/dsa/monotonic-stack-introduction)
- [Overlapping Intervals Pattern](https://algomaster.io/learn/dsa/intervals-introduction)

## 📝 Must-Read Leetcode Articles
- [Sliding Window Template](https://leetcode.com/problems/frequency-of-the-most-frequent-element/solutions/1175088/C++-Maximum-Sliding-Window-Cheatsheet-Template/)
- [Two Pointers Patterns](https://leetcode.com/discuss/study-guide/1688903/Solved-all-two-pointers-problems-in-100-days)
- [Collections of Important String Questions](https://leetcode.com/discuss/study-guide/2001789/Collections-of-Important-String-questions-Pattern)
- [Substring Problem Template](https://leetcode.com/problems/minimum-window-substring/solutions/26808/Here-is-a-10-line-template-that-can-solve-most-'substring'-problems/)
- [Binary Search Template](https://leetcode.com/discuss/study-guide/786126/Python-Powerful-Ultimate-Binary-Search-Template.-Solved-many-problems)
- [A General Approach to Backtracking Questions](https://leetcode.com/problems/permutations/solutions/18239/A-general-approach-to-backtracking-questions-in-Java-(Subsets-Permutations-Combination-Sum-Palindrome-Partioning)/)
- [Monotonic Stack Template](https://leetcode.com/discuss/study-guide/2347639/A-comprehensive-guide-and-template-for-monotonic-stack-based-problems)
- [Heap Patterns](https://leetcode.com/discuss/general-discussion/1127238/master-heap-by-solving-23-questions-in-4-patterns-category)
- [Bit Manipulation Patterns](https://leetcode.com/discuss/study-guide/4282051/all-types-of-patterns-for-bits-manipulations-and-how-to-use-it)
- [Dynamic Programming Patterns](https://leetcode.com/discuss/study-guide/458695/Dynamic-Programming-Patterns)
- [Stock Series Patterns](https://leetcode.com/problems/best-time-to-buy-and-sell-stock-with-transaction-fee/solutions/108870/most-consistent-ways-of-dealing-with-the-series-of-stock-problems/)

## ✅ Curated Problems
- [AlgoMaster 300](https://algomaster.io/practice/dsa-patterns)
- [Blind 75](https://leetcode.com/discuss/general-discussion/460599/blind-75-leetcode-questions)
- [Leetcode Top 100 Liked](https://leetcode.com/studyplan/top-100-liked/)
- [Leetcode Top Interview 150](https://leetcode.com/studyplan/top-interview-150/)

## 📺 YouTube Playlist
- [AlgoMaster DSA Playlist](https://www.youtube.com/playlist?list=PLK63NuByH5o9odyBT7nfYkHZyvGQ5oVp2&pp=gAQB)
- [AlgoMaster LeetCode Pattern Playlist](https://www.youtube.com/playlist?list=PLK63NuByH5o-tqaMUHRA4r8ObRW7PWz45)
- [Abdul Bari's Algorithms Playlist](https://www.youtube.com/playlist?list=PLDN4rrl48XKpZkf03iYFl-O29szjTrs_O)
- [William Fiset's Data Structure Playlist](https://www.youtube.com/playlist?list=PLDV1Zeh2NRsB6SWUrDFW2RmDotAfPbeHu)
- [William Fiset's Graphs Playlist](https://www.youtube.com/playlist?list=PLDV1Zeh2NRsDGO4--qE8yH72HFL1Km93P)
- [Tushar Roy's Dynamic Programming Playlist](https://www.youtube.com/playlist?list=PLrmLmBdmIlpsHaNTPP_jHHDx_os9ItYXr)

## 📇 Courses
- [Coursera - Algorithms, Part I](https://www.coursera.org/learn/algorithms-part1)
- [Coursera - Algorithms, Part 2](https://www.coursera.org/learn/algorithms-part2)

## 📚 Books
- [Data Structures And Algorithms Made Easy](https://www.amazon.in/dp/B08CMLS7LZ)
- [Cracking the Coding Interview](https://www.amazon.in/dp/0984782850)

## 📩 Newsletter
- [AlgoMaster Newsletter](https://blog.algomaster.io/)

## 🔎 Visualization
- [AlgoMaster DSA Animations](https://algomaster.io/animations/dsa)
- [VisuAlgo](https://visualgo.net/en)

---