This repository contains awesome LeetCode resources to learn Data Structures and Algorithms (DSA) and prepare for Coding interviews.
- Algorithmic Complexity
- Big-O Cheat Sheet
- Bit Manipulation Techniques
- Sorting Algorithms
- Linked List
- Queues
- Stacks
- Hash Tables
- Heaps
- Recursion
- Backtracking
- Trees
- Tries
- Binary Search
- Greedy Algorithm
- Dynamic Programming
- Graph Theory
- DFS Traversal
- BFS Traversal
- Union-Find
- Dijkstra Algorithm
- Minimum Spanning Tree
- 15 Leetcode Patterns
- Prefix Sum Pattern
- Two Pointers Pattern
- Fast and Slow Pointers Pattern
- Sliding Window Pattern
- Top 'K' Elements Pattern
- Monotonic Stack Pattern
- Overlapping Intervals Pattern
- Tree Patterns
- Graph Patterns
- DFS + BFS Patterns (1)
- DFS + BFS Patterns (2)
- Sliding Window Template
- Two Pointers Patterns
- Collections of Important String Questions
- Substring Problem Template
- Binary Search Template
- A General Approach to Backtracking Questions
- Monotonic Stack Template
- Heap Patterns
- Bit Manipulation Patterns
- Dynamic Programming Patterns
- Stock Series Patterns
- Abdul Bari's Algorithms Playlist
- William Fiset's Data Structure Playlist
- William Fiset's Graphs Playlist
- Tushar Roy's Dynamic Programming Playlist
- Coursera - Algorithms, Part I
- Coursera - Algorithms, Part 2
- Grokking the Coding Interview: Patterns for Coding Questions
- LeetCode Timer: Easily time your leetcode practise sessions with automatic time setting based on difficulty.
- LeetCode Video Solutions: Watch free LeetCode video ▶ solutions on the problem page itself.
- LeetCode Format: Adds Format code button on leetcode to format the code using Prettier code formatter.
- LeetHub v2: Automatically integrate your Leetcode & GeeksforGeeks submissions to GitHub.
- LeetCode VS Code Extension: Solve LeetCode problems in VS Code.
- Reverse Linked List
- Linked List Cycle
- Merge Two Sorted Lists
- Intersection of Two Linked Lists
- Remove Nth Node From End of List
- Add Two Numbers
- Copy List with Random Pointer
- Flatten a Multilevel Doubly Linked List
- Rotate List
- Sort List
- Remove Duplicates from Sorted List II
- LRU Cache
- Design Browser History
- Merge k Sorted Lists
- Reverse Nodes in k-Group
- Invert Binary Tree
- Convert Sorted Array to Binary Search Tree
- Count Complete Tree Nodes
- All Possible Full Binary Trees
- Delete Leaves With a Given Value
- Binary Search Tree Iterator
- Longest Univalue Path
- Delete Nodes And Return Forest
- Validate Binary Search Tree
- Construct Binary Tree from Inorder and Postorder Traversal
- All Nodes Distance K in Binary Tree
- Maximum Difference Between Node and Ancestor
- Find Duplicate Subtrees
- Flatten Binary Tree to Linked List
- House Robber III
- Step-By-Step Directions From a Binary Tree Node to Another
- Delete Node in a BST
- Populating Next Right Pointers in Each Node II
- Trim a Binary Search Tree
- Distribute Coins in Binary Tree
- Binary Search Tree to Greater Sum Tree
- Serialize and Deserialize Binary Tree
- Binary Tree Cameras
- Binary Tree Maximum Path Sum
- Maximum Sum BST in Binary Tree
- Permutations
- Subsets
- Generate Parentheses
- Combination Sum
- Palindrome Partitioning
- Letter Combinations of a Phone Number
- Unique Binary Search Trees II
- Partition to K Equal Sum Subsets
- N-Queens II
- Sudoku Solver
- Implement Trie (Prefix Tree)
- Longest Common Prefix
- Search Suggestions System
- Longest Word in Dictionary
- Top K Frequent Words
- Design Add and Search Words Data Structure
- Implement Magic Dictionary
- Replace Words
- Word Search II
- Stream of Characters
Your contributions are most welcome!