MINDFLAREDSA & CP Society
DSA Patterns Sheet
DSA CURRICULUM

DSA Patterns Mastery Sheet

Section A

Array & String Patterns

Pattern #1

Two Pointers

Use two pointers moving towards each other or in the same direction to solve problems in O(n) time on sorted/linear data.

0 / 12 (0%)
LeetCode
#125Valid Palindrome
Easy
LeetCode
#977Squares of a Sorted Array
Easy
LeetCode
#26Remove Duplicates from Sorted Array
Easy
LeetCode
#27Remove Element
Easy
LeetCode
#167Two Sum II – Input Array Is Sorted
Medium
LeetCode
#153Sum
Medium
LeetCode
#163Sum Closest
Medium
LeetCode
#184Sum
Medium
LeetCode
#75Sort Colors (Dutch National Flag)
Medium
LeetCode
#11Container With Most Water
Medium
LeetCode
#881Boats to Save People
Medium
LeetCode
#42Trapping Rain Water
Hard
Pattern #2

Sliding Window

Maintain a window of elements that expands/contracts to find optimal subarrays/substrings. Fixed-size or variable-size windows.

0 / 12 (0%)
LeetCode
#643Maximum Average Subarray I
Easy
LeetCode
#209Minimum Size Subarray Sum
Medium
LeetCode
#3Longest Substring Without Repeating Characters
Medium
LeetCode
#424Longest Repeating Character Replacement
Medium
LeetCode
#567Permutation in String
Medium
LeetCode
#438Find All Anagrams in a String
Medium
LeetCode
#904Fruit Into Baskets
Medium
LeetCode
#1004Max Consecutive Ones III
Medium
LeetCode
#1052Grumpy Bookstore Owner
Medium
LeetCode
#76Minimum Window Substring
Hard
LeetCode
#30Substring with Concatenation of All Words
Hard
LeetCode
#992Subarrays with K Different Integers
Hard
Pattern #3

Prefix Sum

Precompute cumulative sums so that any subarray sum can be computed in O(1). Often combined with hashing.

0 / 8 (0%)
LeetCode
#1480Running Sum of 1d Array
Easy
LeetCode
#724Find Pivot Index
Easy
LeetCode
#303Range Sum Query – Immutable
Easy
LeetCode
#238Product of Array Except Self
Medium
LeetCode
#525Contiguous Array
Medium
LeetCode
#974Subarray Sums Divisible by K
Medium
LeetCode
#1248Count Number of Nice Subarrays
Medium
LeetCode
#304Range Sum Query 2D – Immutable
Medium
Pattern #4

Hashing / HashMap

Use hash tables for O(1) average lookups. Map values to indices, frequencies, or complements.

0 / 10 (0%)
LeetCode
#1Two Sum
Easy
LeetCode
#217Contains Duplicate
Easy
LeetCode
#242Valid Anagram
Easy
LeetCode
#205Isomorphic Strings
Easy
LeetCode
#387First Unique Character in a String
Easy
LeetCode
#290Word Pattern
Easy
LeetCode
#49Group Anagrams
Medium
LeetCode
#560Subarray Sum Equals K
Medium
LeetCode
#128Longest Consecutive Sequence
Medium
LeetCode
#535Encode and Decode TinyURL
Medium
Pattern #5

Matrix Traversal / Spiral

Traverse 2D matrices in specific orders (spiral, diagonal, layer-by-layer) or modify in-place.

0 / 5 (0%)
LeetCode
#48Rotate Image
Medium
LeetCode
#54Spiral Matrix
Medium
LeetCode
#59Spiral Matrix II
Medium
LeetCode
#73Set Matrix Zeroes
Medium
LeetCode
#289Game of Life
Medium
Pattern #6

Cyclic Sort

When given numbers in range [1, n], place each number at its correct index. Finds missing/duplicate numbers in O(n) time, O(1) space.

0 / 5 (0%)
LeetCode
#268Missing Number
Easy
LeetCode
#448Find All Numbers Disappeared in an Array
Easy
LeetCode
#645Set Mismatch
Easy
LeetCode
#442Find All Duplicates in an Array
Medium
LeetCode
#41First Missing Positive
Hard
Section B

Binary Search Patterns

Pattern #7

Binary Search

Divide search space in half each iteration. Applies to sorted arrays, rotated arrays, and answer-space searching (binary search on answer).

0 / 12 (0%)
LeetCode
#704Binary Search
Easy
LeetCode
#35Search Insert Position
Easy
LeetCode
#34Find First and Last Position of Element in Sorted Array
Medium
LeetCode
#33Search in Rotated Sorted Array
Medium
LeetCode
#81Search in Rotated Sorted Array II
Medium
LeetCode
#153Find Minimum in Rotated Sorted Array
Medium
LeetCode
#162Find Peak Element
Medium
LeetCode
#74Search a 2D Matrix
Medium
LeetCode
#875Koko Eating Bananas
Medium
LeetCode
#1011Capacity To Ship Packages Within D Days
Medium
LeetCode
#410Split Array Largest Sum
Hard
LeetCode
#4Median of Two Sorted Arrays
Hard
Section C

Linked List Patterns

Pattern #8

Fast & Slow Pointers (Floyd's Cycle)

Use two pointers moving at different speeds to detect cycles, find midpoints, or detect patterns.

0 / 6 (0%)
LeetCode
#141Linked List Cycle
Easy
LeetCode
#876Middle of the Linked List
Easy
LeetCode
#202Happy Number
Easy
LeetCode
#142Linked List Cycle II
Medium
LeetCode
#234Palindrome Linked List
Easy
LeetCode
#287Find the Duplicate Number
Medium
Pattern #9

Linked List – In-Place Reversal & Manipulation

Reverse nodes in-place by manipulating pointers. Includes merge, reorder, rotation, and k-group operations.

0 / 9 (0%)
LeetCode
#206Reverse Linked List
Easy
LeetCode
#21Merge Two Sorted Lists
Easy
LeetCode
#19Remove Nth Node From End of List
Medium
LeetCode
#92Reverse Linked List II
Medium
LeetCode
#24Swap Nodes in Pairs
Medium
LeetCode
#61Rotate List
Medium
LeetCode
#143Reorder List
Medium
LeetCode
#138Copy List with Random Pointer
Medium
LeetCode
#25Reverse Nodes in k-Group
Hard
Section D

Stack & Queue Patterns

Pattern #10

Stack & Queue Fundamentals

LIFO/FIFO structures for parsing expressions, matching brackets, and simulating operations.

0 / 8 (0%)
LeetCode
#20Valid Parentheses
Easy
LeetCode
#232Implement Queue using Stacks
Easy
LeetCode
#225Implement Stack using Queues
Easy
LeetCode
#155Min Stack
Medium
LeetCode
#150Evaluate Reverse Polish Notation
Medium
LeetCode
#394Decode String
Medium
LeetCode
#227Basic Calculator II
Medium
LeetCode
#224Basic Calculator
Hard
Pattern #11

Monotonic Stack

Maintain a stack where elements are in increasing or decreasing order. Finds next greater/smaller elements efficiently.

0 / 8 (0%)
LeetCode
#496Next Greater Element I
Easy
LeetCode
#503Next Greater Element II
Medium
LeetCode
#739Daily Temperatures
Medium
LeetCode
#901Online Stock Span
Medium
LeetCode
#735Asteroid Collision
Medium
LeetCode
#907Sum of Subarray Minimums
Medium
LeetCode
#84Largest Rectangle in Histogram
Hard
LeetCode
#85Maximal Rectangle
Hard
Pattern #12

Monotonic Queue / Deque

0 / 4 (0%)
LeetCode
#239Sliding Window Maximum
Hard
LeetCode
#862Shortest Subarray with Sum at Least K
Hard
LeetCode
#1425Constrained Subsequence Sum
Hard
LeetCode
#1696Jump Game VI
Medium
Section E

Interval Patterns

Pattern #13

Merge Intervals

Sort intervals by start time and merge/process overlapping intervals. Core pattern for scheduling problems.

0 / 7 (0%)
LeetCode
#252Meeting Rooms
Easy
LeetCode
#56Merge Intervals
Medium
LeetCode
#57Insert Interval
Medium
LeetCode
#435Non-overlapping Intervals
Medium
LeetCode
#986Interval List Intersections
Medium
LeetCode
#452Minimum Number of Arrows to Burst Balloons
Medium
LeetCode
#253Meeting Rooms II
Medium
Section F

Heap Patterns

Pattern #14

Heap / Top K Elements

Use min-heap or max-heap to efficiently maintain the K largest/smallest/most-frequent elements.

0 / 8 (0%)
LeetCode
#1046Last Stone Weight
Easy
LeetCode
#215Kth Largest Element in an Array
Medium
LeetCode
#347Top K Frequent Elements
Medium
LeetCode
#973K Closest Points to Origin
Medium
LeetCode
#451Sort Characters By Frequency
Medium
LeetCode
#692Top K Frequent Words
Medium
LeetCode
#621Task Scheduler
Medium
LeetCode
#767Reorganize String
Medium
Pattern #15

Two Heaps / Median Pattern

0 / 3 (0%)
LeetCode
#295Find Median from Data Stream
Hard
LeetCode
#480Sliding Window Median
Hard
LeetCode
#502IPO
Hard
Pattern #16

K-way Merge

0 / 5 (0%)
LeetCode
#264Ugly Number II
Medium
LeetCode
#378Kth Smallest Element in a Sorted Matrix
Medium
LeetCode
#373Find K Pairs with Smallest Sums
Medium
LeetCode
#23Merge k Sorted Lists
Hard
LeetCode
#632Smallest Range Covering Elements from K Lists
Hard
Section G

Tree Patterns

Pattern #17

Tree – BFS / Level Order Traversal

Use a queue to process tree nodes level by level. Useful for level-based operations.

0 / 8 (0%)
LeetCode
#637Average of Levels in Binary Tree
Easy
LeetCode
#111Minimum Depth of Binary Tree
Easy
LeetCode
#993Cousins in Binary Tree
Easy
LeetCode
#102Binary Tree Level Order Traversal
Medium
LeetCode
#103Binary Tree Zigzag Level Order Traversal
Medium
LeetCode
#199Binary Tree Right Side View
Medium
LeetCode
#116Populating Next Right Pointers in Each Node
Medium
LeetCode
#117Populating Next Right Pointers in Each Node II
Medium
Pattern #18

Tree – DFS (Preorder/Inorder/Postorder)

Recursive or iterative depth-first traversal. Solve problems using top-down or bottom-up recursion.

0 / 11 (0%)
LeetCode
#104Maximum Depth of Binary Tree
Easy
LeetCode
#226Invert Binary Tree
Easy
LeetCode
#101Symmetric Tree
Easy
LeetCode
#112Path Sum
Easy
LeetCode
#543Diameter of Binary Tree
Easy
LeetCode
#437Path Sum III
Medium
LeetCode
#236Lowest Common Ancestor of a Binary Tree
Medium
LeetCode
#105Construct Binary Tree from Preorder and Inorder Traversal
Medium
LeetCode
#114Flatten Binary Tree to Linked List
Medium
LeetCode
#124Binary Tree Maximum Path Sum
Hard
LeetCode
#297Serialize and Deserialize Binary Tree
Hard
Pattern #19

BST (Binary Search Tree) Properties

0 / 7 (0%)
LeetCode
#108Convert Sorted Array to Binary Search Tree
Easy
LeetCode
#235Lowest Common Ancestor of a Binary Search Tree
Medium
LeetCode
#98Validate Binary Search Tree
Medium
LeetCode
#230Kth Smallest Element in a BST
Medium
LeetCode
#701Insert into a Binary Search Tree
Medium
LeetCode
#450Delete Node in a BST
Medium
LeetCode
#669Trim a Binary Search Tree
Medium
Section H

Graph Patterns

Pattern #20

Graph – BFS / DFS Traversal

Explore graphs using BFS (shortest path in unweighted) or DFS (connectivity, components). Includes grid-based graph problems.

0 / 12 (0%)
LeetCode
#733Flood Fill
Easy
LeetCode
#200Number of Islands
Medium
LeetCode
#547Number of Provinces
Medium
LeetCode
#130Surrounded Regions
Medium
LeetCode
#133Clone Graph
Medium
LeetCode
#54201 Matrix
Medium
LeetCode
#994Rotting Oranges
Medium
LeetCode
#417Pacific Atlantic Water Flow
Medium
LeetCode
#752Open the Lock
Medium
LeetCode
#1162As Far from Land as Possible
Medium
LeetCode
#127Word Ladder
Hard
LeetCode
#934Shortest Bridge
Medium
Pattern #21

Graph – Shortest Path (Dijkstra / Bellman-Ford)

0 / 6 (0%)
LeetCode
#743Network Delay Time
Medium
LeetCode
#787Cheapest Flights Within K Stops
Medium
LeetCode
#1514Path with Maximum Probability
Medium
LeetCode
#1631Path with Minimum Effort
Medium
LeetCode
#1334Find the City With the Smallest Number of Neighbors at a Threshold Distance
Medium
LeetCode
#778Swim in Rising Water
Hard
Pattern #22

Topological Sort

0 / 6 (0%)
LeetCode
#207Course Schedule
Medium
LeetCode
#210Course Schedule II
Medium
LeetCode
#310Minimum Height Trees
Medium
LeetCode
#2115Find All Possible Recipes from Given Supplies
Medium
LeetCode
#1203Sort Items by Groups Respecting Dependencies
Hard
LeetCode
#329Longest Increasing Path in a Matrix
Hard
Pattern #23

Union Find / Disjoint Set Union

0 / 6 (0%)
LeetCode
#990Satisfiability of Equality Equations
Medium
LeetCode
#684Redundant Connection
Medium
LeetCode
#721Accounts Merge
Medium
LeetCode
#1319Number of Operations to Make Network Connected
Medium
LeetCode
#947Most Stones Removed with Same Row or Column
Medium
LeetCode
#959Regions Cut By Slashes
Medium
Section I

Trie Pattern

Pattern #24

Trie (Prefix Tree)

0 / 6 (0%)
LeetCode
#208Implement Trie (Prefix Tree)
Medium
LeetCode
#211Design Add and Search Words Data Structure
Medium
LeetCode
#648Replace Words
Medium
LeetCode
#720Longest Word in Dictionary
Medium
LeetCode
#1268Search Suggestions System
Medium
LeetCode
#212Word Search II
Hard
Section J

Backtracking Patterns

Pattern #25

Backtracking – Subsets / Combinations / Permutations

Systematically explore all possible configurations by building candidates incrementally and abandoning (backtracking) when constraints are violated.

0 / 8 (0%)
LeetCode
#77Combinations
Medium
LeetCode
#78Subsets
Medium
LeetCode
#90Subsets II
Medium
LeetCode
#46Permutations
Medium
LeetCode
#47Permutations II
Medium
LeetCode
#39Combination Sum
Medium
LeetCode
#40Combination Sum II
Medium
LeetCode
#216Combination Sum III
Medium
Pattern #26

Backtracking – General / Constraint Satisfaction

0 / 8 (0%)
LeetCode
#17Letter Combinations of a Phone Number
Medium
LeetCode
#22Generate Parentheses
Medium
LeetCode
#79Word Search
Medium
LeetCode
#93Restore IP Addresses
Medium
LeetCode
#131Palindrome Partitioning
Medium
LeetCode
#51N-Queens
Hard
LeetCode
#37Sudoku Solver
Hard
LeetCode
#282Expression Add Operators
Hard
Section K

Greedy Pattern

Pattern #27

Greedy Algorithms

0 / 10 (0%)
LeetCode
#455Assign Cookies
Easy
LeetCode
#121Best Time to Buy and Sell Stock
Easy
LeetCode
#860Lemonade Change
Easy
LeetCode
#53Maximum Subarray (Kadane's Algorithm)
Medium
LeetCode
#55Jump Game
Medium
LeetCode
#45Jump Game II
Medium
LeetCode
#134Gas Station
Medium
LeetCode
#763Partition Labels
Medium
LeetCode
#406Queue Reconstruction by Height
Medium
LeetCode
#135Candy
Hard
Section L

Dynamic Programming Patterns

Pattern #28

DP – Fibonacci / Linear 1D DP

Each state depends on a fixed number of previous states. The simplest DP pattern.

0 / 6 (0%)
LeetCode
#509Fibonacci Number
Easy
LeetCode
#1137N-th Tribonacci Number
Easy
LeetCode
#70Climbing Stairs
Easy
LeetCode
#198House Robber
Medium
LeetCode
#213House Robber II
Medium
LeetCode
#91Decode Ways
Medium
Pattern #29

DP – 0/1 Knapsack

0 / 4 (0%)
LeetCode
#416Partition Equal Subset Sum
Medium
LeetCode
#494Target Sum
Medium
LeetCode
#1049Last Stone Weight II
Medium
LeetCode
#474Ones and Zeroes
Medium
Pattern #30

DP – Unbounded Knapsack

0 / 5 (0%)
LeetCode
#322Coin Change
Medium
LeetCode
#518Coin Change II
Medium
LeetCode
#279Perfect Squares
Medium
LeetCode
#139Word Break
Medium
LeetCode
#983Minimum Cost For Tickets
Medium
Pattern #31

DP – LCS / LIS (Subsequence Patterns)

Find longest common/increasing subsequences. Core pattern: compare characters and build 2D DP table.

0 / 8 (0%)
LeetCode
#300Longest Increasing Subsequence
Medium
LeetCode
#1143Longest Common Subsequence
Medium
LeetCode
#583Delete Operation for Two Strings
Medium
LeetCode
#718Maximum Length of Repeated Subarray
Medium
LeetCode
#673Number of Longest Increasing Subsequence
Medium
LeetCode
#72Edit Distance
Medium
LeetCode
#1092Shortest Common Supersequence
Hard
LeetCode
#354Russian Doll Envelopes
Hard
Pattern #32

DP – Palindromic Subsequence / Substring

0 / 4 (0%)
LeetCode
#5Longest Palindromic Substring
Medium
LeetCode
#647Palindromic Substrings
Medium
LeetCode
#516Longest Palindromic Subsequence
Medium
LeetCode
#1312Minimum Insertion Steps to Make a String Palindrome
Hard
Pattern #33

DP – Matrix / Grid Path

0 / 6 (0%)
LeetCode
#62Unique Paths
Medium
LeetCode
#63Unique Paths II
Medium
LeetCode
#64Minimum Path Sum
Medium
LeetCode
#120Triangle
Medium
LeetCode
#221Maximal Square
Medium
LeetCode
#174Dungeon Game
Hard
Pattern #34

DP – Interval / Matrix Chain Multiplication

0 / 5 (0%)
LeetCode
#486Predict the Winner
Medium
LeetCode
#877Stone Game
Medium
LeetCode
#1130Minimum Cost Tree From Leaf Values
Medium
LeetCode
#312Burst Balloons
Hard
LeetCode
#664Strange Printer
Hard
Pattern #35

DP – State Machine / Stock Problems

0 / 5 (0%)
LeetCode
#122Best Time to Buy and Sell Stock II
Medium
LeetCode
#714Best Time to Buy and Sell Stock with Transaction Fee
Medium
LeetCode
#309Best Time to Buy and Sell Stock with Cooldown
Medium
LeetCode
#123Best Time to Buy and Sell Stock III
Hard
LeetCode
#188Best Time to Buy and Sell Stock IV
Hard
Pattern #36

DP – On Strings

0 / 4 (0%)
LeetCode
#97Interleaving String
Medium
LeetCode
#115Distinct Subsequences
Hard
LeetCode
#10Regular Expression Matching
Hard
LeetCode
#44Wildcard Matching
Hard
Section M

Bit Manipulation Pattern

Pattern #37

Bit Manipulation

Use bitwise operations (AND, OR, XOR, shifts) for O(1) space tricks and O(n) solutions.

0 / 8 (0%)
LeetCode
#191Number of 1 Bits
Easy
LeetCode
#190Reverse Bits
Easy
LeetCode
#231Power of Two
Easy
LeetCode
#136Single Number
Easy
LeetCode
#338Counting Bits
Easy
LeetCode
#201Bitwise AND of Numbers Range
Medium
LeetCode
#137Single Number II
Medium
LeetCode
#260Single Number III
Medium
Section N

String Matching Pattern

Pattern #38

String Matching / KMP / Z-Algorithm

0 / 4 (0%)
LeetCode
#28Find the Index of the First Occurrence in a String
Easy
LeetCode
#459Repeated Substring Pattern
Easy
LeetCode
#214Shortest Palindrome
Hard
LeetCode
#1392Longest Happy Prefix
Hard
Section O

Advanced Data Structures

Pattern #39

Segment Tree / Binary Indexed Tree

0 / 4 (0%)
LeetCode
#307Range Sum Query – Mutable
Medium
LeetCode
#315Count of Smaller Numbers After Self
Hard
LeetCode
#493Reverse Pairs
Hard
LeetCode
#327Count of Range Sum
Hard
Section P

Math & Number Theory

Pattern #40

Math & Number Theory

0 / 8 (0%)
LeetCode
#9Palindrome Number
Easy
LeetCode
#13Roman to Integer
Easy
LeetCode
#168Excel Sheet Column Title
Easy
LeetCode
#172Factorial Trailing Zeroes
Medium
LeetCode
#7Reverse Integer
Medium
LeetCode
#50Pow(x, n)
Medium
LeetCode
#204Count Primes (Sieve of Eratosthenes)
Medium
LeetCode
#43Multiply Strings
Medium
Section Q

Design Patterns

Pattern #41

System / Data Structure Design

0 / 8 (0%)
LeetCode
#706Design HashMap
Easy
LeetCode
#707Design Linked List
Medium
LeetCode
#622Design Circular Queue
Medium
LeetCode
#355Design Twitter
Medium
LeetCode
#380Insert Delete GetRandom O(1)
Medium
LeetCode
#341Flatten Nested List Iterator
Medium
LeetCode
#146LRU Cache
Medium
LeetCode
#460LFU Cache
Hard