🚀 LeetCode Problems Reference Sheet

Prefix Sum
Problem # Problem Title Link Pseudocode Solution
303 Range Sum Query - Immutable View Problem 1. Build prefix sum array
2. For range [i,j]: return prefix[j+1] - prefix[i]
525 Contiguous Array View Problem 1. Use HashMap to store count differences
2. Track running sum (0→-1, 1→+1)
3. Find max distance between same sums
560 Subarray Sum Equals K View Problem 1. HashMap stores prefix sum frequencies
2. For each sum, check if (sum-k) exists
3. Count occurrences
Two Pointers
Problem # Problem Title Link Pseudocode Solution
167 Two Sum II - Input Array is Sorted View Problem 1. left = 0, right = n-1
2. If sum > target: right--
3. If sum < target: left++
4. Return indices when sum = target
15 3Sum View Problem 1. Sort array
2. For each i, use two pointers on remaining
3. Skip duplicates
4. Find triplets with sum = 0
11 Container With Most Water View Problem 1. left = 0, right = n-1
2. Calculate area = min(height[l], height[r]) * (r-l)
3. Move pointer with smaller height
Sliding Window
Problem # Problem Title Link Pseudocode Solution
643 Maximum Average Subarray I View Problem 1. Calculate sum of first k elements
2. Slide window: subtract left, add right
3. Track maximum sum
3 Longest Substring Without Repeating Characters View Problem 1. Use Set to track characters in window
2. Expand right, shrink left when duplicate
3. Track max window size
76 Minimum Window Substring View Problem 1. Count chars in target
2. Expand right until valid
3. Shrink left while valid
4. Track minimum window
Fast and Slow Pointers
Problem # Problem Title Link Pseudocode Solution
141 Linked List Cycle View Problem 1. slow = head, fast = head
2. Move slow by 1, fast by 2
3. If they meet, cycle exists
202 Happy Number View Problem 1. slow = n, fast = n
2. slow does 1 iteration, fast does 2
3. If cycle detected, not happy
287 Find the Duplicate Number View Problem 1. Use array values as indices
2. Apply Floyd's cycle detection
3. Find entrance to cycle
Linked List In-place Reversal
Problem # Problem Title Link Pseudocode Solution
206 Reverse Linked List View Problem 1. prev = null, curr = head
2. next = curr.next
3. curr.next = prev
4. prev = curr, curr = next
92 Reverse Linked List II View Problem 1. Find position m-1
2. Reverse m to n nodes
3. Connect reversed portion back
24 Swap Nodes in Pairs View Problem 1. Use dummy node
2. For each pair: adjust 4 pointers
3. prev.next = second, first.next = second.next
Monotonic Stack
Problem # Problem Title Link Pseudocode Solution
496 Next Greater Element I View Problem 1. Use stack to store elements
2. For each element, pop smaller ones
3. Top of stack is next greater
739 Daily Temperatures View Problem 1. Stack stores indices
2. Pop indices with smaller temps
3. Answer[i] = current_index - popped_index
84 Largest Rectangle in Histogram View Problem 1. Stack maintains increasing heights
2. On smaller height, calculate area
3. Width = current_i - stack.top() - 1
Top K Elements OR Min/Max Heap
Problem # Problem Title Link Pseudocode Solution
215 Kth Largest Element in an Array View Problem 1. Use min-heap of size k
2. Add elements, remove if size > k
3. Root is kth largest
347 Top K Frequent Elements View Problem 1. Count frequencies
2. Use min-heap of size k
3. Compare by frequency
373 Find K Pairs with Smallest Sums View Problem 1. Use min-heap for pairs
2. Start with (0,0) pair
3. Add adjacent pairs to heap
Overlapping Intervals
Problem # Problem Title Link Pseudocode Solution
56 Merge Intervals View Problem 1. Sort by start time
2. If current.start <= prev.end: merge
3. Else add to result
57 Insert Interval View Problem 1. Add non-overlapping intervals before
2. Merge overlapping intervals
3. Add remaining intervals
435 Non-overlapping Intervals View Problem 1. Sort by end time
2. Greedily select non-overlapping
3. Count removals needed
Modified Binary Search
Problem # Problem Title Link Pseudocode Solution
33 Search in Rotated Sorted Array View Problem 1. Find which half is sorted
2. Check if target in sorted half
3. Adjust left/right accordingly
153 Find Minimum in Rotated Sorted Array View Problem 1. Compare mid with right
2. If mid > right: minimum in right half
3. Else minimum in left half
240 Search a 2D Matrix II View Problem 1. Start from top-right corner
2. If target < current: move left
3. If target > current: move down
Binary Tree Traversal
Problem # Problem Title Link Pseudocode Solution
257 Binary Tree Paths View Problem 1. DFS with path string
2. If leaf: add path to result
3. Recurse on children with updated path
230 Kth Smallest Element in a BST View Problem 1. Inorder traversal (left, root, right)
2. Count nodes visited
3. Return when count = k
124 Binary Tree Maximum Path Sum View Problem 1. For each node, calculate max gain
2. Update global max with path through node
3. Return max gain from one side
107 Binary Tree Level Order Traversal II View Problem 1. Level order traversal with queue
2. Store each level in array
3. Reverse final result
Depth First Search
Problem # Problem Title Link Pseudocode Solution
133 Clone Graph View Problem 1. HashMap to store original->clone mapping
2. DFS: create clone, recurse on neighbors
3. Return cloned node
113 Path Sum II View Problem 1. DFS with current path and remaining sum
2. If leaf and sum=0: add path to result
3. Backtrack after exploring
210 Course Schedule II View Problem 1. Build adjacency list
2. DFS with 3 states: unvisited, visiting, visited
3. Detect cycles and build topological order
Breadth First Search
Problem # Problem Title Link Pseudocode Solution
102 Binary Tree Level Order Traversal View Problem 1. Use queue starting with root
2. For each level, process all nodes
3. Add children to queue for next level
994 Rotting Oranges View Problem 1. Add all rotten oranges to queue
2. BFS: spread rot to adjacent fresh oranges
3. Count minutes and check if all rotten
127 Word Ladder View Problem 1. BFS with queue of words and distances
2. For each word, try all 1-char changes
3. Return distance when target found
Matrix Traversal
Problem # Problem Title Link Pseudocode Solution
733 Flood Fill View Problem 1. DFS/BFS from starting pixel
2. Change color if matches start color
3. Recurse/queue adjacent pixels
200 Number of Islands View Problem 1. Scan grid for '1's
2. DFS/BFS to mark entire island
3. Count number of islands found
130 Surrounded Regions View Problem 1. Mark border 'O's and connected regions
2. Flip remaining 'O's to 'X'
3. Restore marked regions
Backtracking
Problem # Problem Title Link Pseudocode Solution
46 Permutations View Problem 1. Swap elements at each position
2. Recurse for next position
3. Backtrack by swapping back
78 Subsets View Problem 1. For each element: choose to include or not
2. Recurse with both options
3. Add to result when all elements processed
51 N-Queens View Problem 1. Try placing queen in each row
2. Check column and diagonal conflicts
3. Backtrack if no valid position
Dynamic Programming
Problem # Problem Title Link Pseudocode Solution
70 Climbing Stairs View Problem 1. dp[i] = dp[i-1] + dp[i-2]
2. Base cases: dp[0]=1, dp[1]=1
3. Return dp[n]
322 Coin Change View Problem 1. dp[i] = min coins for amount i
2. For each coin: dp[i] = min(dp[i], dp[i-coin]+1)
3. Return dp[amount]
300 Longest Increasing Subsequence View Problem 1. dp[i] = length of LIS ending at i
2. For each j < i: if nums[j] < nums[i], update dp[i]
3. Return max dp
416 Partition Equal Subset Sum View Problem 1. dp[i][j] = can sum j be formed with first i elements
2. dp[i][j] = dp[i-1][j] OR dp[i-1][j-nums[i]]
3. Return dp[n][sum/2]
312 Burst Balloons View Problem 1. dp[i][j] = max coins from bursting balloons i to j
2. For each k in (i,j): dp[i][j] = max(dp[i][k] + nums[i-1]*nums[k]*nums[j+1] + dp[k][j])
3. Return dp[1][n]
1143 Longest Common Subsequence View Problem 1. dp[i][j] = LCS of text1[0..i] and text2[0..j]
2. If chars match: dp[i][j] = dp[i-1][j-1] + 1
3. Else: dp[i][j] = max(dp[i-1][j], dp[i][j-1])