DSA Pattern-Wise Complete Learning Guide
This document is a complete pattern-wise DSA roadmap with explanations, examples, and practice
questions. Follow it day-by-day to master Data Structures & Algorithms for interviews.
Pattern 1: Two Pointers
Definition: Use two indices to traverse array/string efficiently instead of nested loops.
Common Use Cases
Palindrome check, reverse array, two sum (sorted), move zeroes, container with most water.
Practice Questions
LeetCode: 125 Valid Palindrome 344 Reverse String 167 Two Sum II 11 Container With Most
Water 75 Sort Colors GeeksForGeeks: Reverse an Array Trapping Rain Water
Pattern 2: Sliding Window
Definition: Maintain a window (range) over array/string to compute subarray/substring results
efficiently.
Types
Fixed Window, Variable Window
Practice Questions
LeetCode: 643 Maximum Average Subarray I 3 Longest Substring Without Repeating Characters
209 Minimum Size Subarray Sum 438 Find All Anagrams in a String GeeksForGeeks: Largest
Subarray with Sum K
Pattern 3: Binary Search
Definition: Divide search space into halves to find element or boundary in sorted data.
Practice Questions
LeetCode: 704 Binary Search 33 Search in Rotated Sorted Array 34 First and Last Position of
Element 153 Find Minimum in Rotated Sorted Array
Pattern 4: Fast & Slow Pointers
Definition: Two pointers moving at different speeds, mainly used in linked lists.
Practice Questions
LeetCode: 141 Linked List Cycle 876 Middle of the Linked List 202 Happy Number
Pattern 5: Stack Pattern
Definition: Use stack to track previous elements, monotonic behavior.
Practice Questions
LeetCode: 20 Valid Parentheses 496 Next Greater Element I 84 Largest Rectangle in Histogram
155 Min Stack
Pattern 6: HashMap / Frequency
Definition: Store frequency or index to optimize lookup.
Practice Questions
LeetCode: 1 Two Sum 560 Subarray Sum Equals K 49 Group Anagrams 128 Longest Consecutive
Sequence
Pattern 7: Recursion & Backtracking
Definition: Explore all possibilities with recursion and undo steps.
Practice Questions
LeetCode: 78 Subsets 46 Permutations 39 Combination Sum 51 N-Queens
Pattern 8: Dynamic Programming
Definition: Solve problems by breaking into overlapping subproblems.
Practice Questions
LeetCode: 70 Climbing Stairs 198 House Robber 1143 Longest Common Subsequence 300
Longest Increasing Subsequence
Pattern 9: Tree Traversals
Definition: DFS and BFS techniques on trees.
Practice Questions
LeetCode: 94 Inorder Traversal 102 Level Order Traversal 543 Diameter of Binary Tree 236 Lowest
Common Ancestor
Pattern 10: Graph Traversal
Definition: BFS/DFS traversal in graph structures.
Practice Questions
LeetCode: 200 Number of Islands 133 Clone Graph 207 Course Schedule 785 Is Graph Bipartite
How to Use This Guide
Solve 3–5 questions per pattern. Write code in both Java and C++. Revise templates weekly. If you
complete all patterns, you will be interview ready for product-based companies.