DSA Topics to Cover for FAANG
1. Arrays & Strings
- Sorting (Quick Sort, Merge Sort)
- Two Pointers, Sliding Window
- Kadanes Algorithm
- Prefix Sum, Difference Array
- Two Sum, Three Sum, Subarray Sum
- String Manipulation, Pattern Matching (KMP, Rabin-Karp)
2. Linked Lists
- Reverse a Linked List
- Detect and Remove Cycle (Floyds Cycle Detection)
- Merge Two Sorted Lists
- Intersection of Two Linked Lists
- Clone a Linked List with Random Pointers
3. Stacks & Queues
- Stack & Queue Implementation
- Next Greater Element
- Balanced Parentheses
- LRU Cache
- Sliding Window Maximum (Deque)
- Implement Min Stack
4. Recursion & Backtracking
- Subset Sum, Power Set
- Combination Sum
- N-Queens Problem
- Word Search (Matrix Traversal)
- Sudoku Solver
5. Trees & Binary Search Trees (BST)
- Tree Traversals (Inorder, Preorder, Postorder)
- Lowest Common Ancestor (LCA)
- Diameter of a Tree
- Balanced Binary Tree
- Kth Smallest/Largest in BST
- Serialize and Deserialize a Tree
6. Binary Search
- Search in Rotated Sorted Array
- Median of Two Sorted Arrays
- Find Peak Element
- Square Root using Binary Search
- Allocate Books / Painters Partition
7. Heaps & Priority Queue
- Kth Largest Element in an Array
- Merge K Sorted Lists
- Top K Frequent Elements
- Median in a Stream
- Dijkstras Algorithm
8. Graphs
- BFS & DFS
- Dijkstras Algorithm
- Bellman-Ford Algorithm
- Floyd-Warshall Algorithm
- Topological Sorting (Kahns Algorithm)
- Cycle Detection in Graph
- Minimum Spanning Tree (Kruskal, Prim)
- Strongly Connected Components (Kosarajus Algorithm)
9. Dynamic Programming (DP)
- Fibonacci, Climbing Stairs
- Longest Common Subsequence (LCS)
- Longest Palindromic Subsequence
- 0/1 Knapsack Problem
- Coin Change Problem
- Matrix Chain Multiplication
- Rod Cutting Problem
- DP on Trees and Graphs
10. Bit Manipulation
- Check if a Number is Power of Two
- Count Set Bits
- XOR of Subarrays
- Single Number in an Array
11. Tries & Hashing
- Implement Trie (Prefix Tree)
- Longest Common Prefix
- Word Break Problem
- Count Distinct Substrings
12. Segment Trees & Fenwick Tree
- Range Sum Query
- Lazy Propagation
- Fenwick Tree (Binary Indexed Tree)