15.4 Lookup by Technique

This index helps you find problems by technique. It focuses on uncommon or specialized algorithms and data structures; common techniques like arrays, recursion, and basic iteration are not included since they appear in nearly every problem. Links jump to the detailed explanations in Common Strategies and the Glossary.

15.4.1 Dynamic Programming

15.4.1.1 Tabulation (Bottom-Up)

Problems using Tabulation:

Platform ID Problem Difficulty Chapter
LeetCode 5 Longest Palindromic Substring Medium Dynamic Programming and Backtracking
LeetCode 62 Unique Paths Medium Dynamic Programming and Backtracking
LeetCode 64 Minimum Path Sum Medium Dynamic Programming and Backtracking
LeetCode 70 Climbing Stairs Easy Dynamic Programming and Backtracking
LeetCode 91 Decode Ways Medium Dynamic Programming and Backtracking
LeetCode 118 Pascal’s Triangle Easy Dynamic Programming and Backtracking
LeetCode 139 Word Break Medium Dynamic Programming and Backtracking
LeetCode 198 House Robber Easy Dynamic Programming and Backtracking
LeetCode 221 Maximal Square Medium Dynamic Programming and Backtracking
LeetCode 256 Paint House Easy Dynamic Programming and Backtracking
LeetCode 300 Longest Increasing Subsequence Medium Dynamic Programming and Backtracking
LeetCode 309 Best Time to Buy and Sell Stock with Cooldown Medium Dynamic Programming and Backtracking
LeetCode 322 Coin Change Medium Dynamic Programming and Backtracking
LeetCode 518 Coin Change II Medium Dynamic Programming and Backtracking
LeetCode 647 Palindromic Substrings Medium Dynamic Programming and Backtracking
LeetCode 801 Minimum Swaps Sequences Increasing Medium Dynamic Programming and Backtracking
LeetCode 1277 Count Square Submatrices with All Ones Medium Dynamic Programming and Backtracking
HackerRank - Minimum Plans to Reach Target Bandwidth Medium Dynamic Programming and Backtracking
HackerRank - Custom Fibonacci Sequence Easy Dynamic Programming and Backtracking
Firecode - Retrieve Optimal Computation Medium Dynamic Programming and Backtracking
Firecode - Fibonacci Sequence Easy Dynamic Programming and Backtracking
Interview - Longest Common Substring Medium Dynamic Programming and Backtracking
Interview - Minimum Operations to One Medium Dynamic Programming and Backtracking

15.4.1.2 Memoization (Top-Down)

Problems using Memoization:

Platform ID Problem Difficulty Chapter
LeetCode 70 Climbing Stairs Easy Dynamic Programming and Backtracking
LeetCode 91 Decode Ways Medium Dynamic Programming and Backtracking
LeetCode 139 Word Break Medium Dynamic Programming and Backtracking
LeetCode 198 House Robber Easy Dynamic Programming and Backtracking
LeetCode 309 Best Time to Buy and Sell Stock with Cooldown Medium Dynamic Programming and Backtracking

15.4.1.3 Unbounded Knapsack

Problems using the Unbounded Knapsack pattern:

Platform ID Problem Difficulty Chapter
LeetCode 322 Coin Change Medium Dynamic Programming and Backtracking
LeetCode 518 Coin Change II Medium Dynamic Programming and Backtracking

15.4.1.4 Kadane’s Algorithm

Problems using Kadane’s Algorithm:

Platform ID Problem Difficulty Chapter
LeetCode 53 Maximum Subarray Easy Array
LeetCode 152 Maximum Product Subarray Medium Array

15.4.2 Backtracking

15.4.2.1 Choose-Explore-Unchoose Pattern

Problems using the Choose-Explore-Unchoose pattern:

Platform ID Problem Difficulty Chapter
LeetCode 17 Letter Combinations of a Phone Number Medium Dynamic Programming and Backtracking
LeetCode 39 Combination Sum Medium Dynamic Programming and Backtracking
LeetCode 46 Permutations Medium Dynamic Programming and Backtracking
LeetCode 47 Permutations II Medium Dynamic Programming and Backtracking
LeetCode 78 Subsets Medium Dynamic Programming and Backtracking
LeetCode 90 Subsets II Medium Dynamic Programming and Backtracking
HackerRank - Find Index Combinations with Target Weight Sum Medium Dynamic Programming and Backtracking
HackerRank - Generate Valid Angle Bracket Sequences Easy Dynamic Programming and Backtracking

15.4.2.2 Pass-by-Value Pattern

Problems using the Pass-by-Value pattern:

## *No problems using this technique yet.*

15.4.2.3 Mark-Unmark Pattern (Grid or Graph)

Problems using the Mark-Unmark pattern:

Platform ID Problem Difficulty Chapter
LeetCode 79 Word Search Medium Dynamic Programming and Backtracking

15.4.3 Two Pointer

Problems using the Two Pointer technique:

Platform ID Problem Difficulty Chapter
LeetCode 11 Container With Most Water Medium Array
LeetCode 15 3Sum Medium Array
LeetCode 16 3Sum Closest Medium Array
LeetCode 18 4Sum Medium Array
LeetCode 19 Remove Nth Node From End Medium Linked List
LeetCode 26 Remove Duplicates from Sorted Array Easy Array
LeetCode 75 Sort Colors Medium Array
LeetCode 141 Linked List Cycle Easy Linked List
LeetCode 142 Linked List Cycle II Medium Linked List
LeetCode 143 Reorder List Medium Linked List
LeetCode 160 Intersection of Two Linked Lists Easy Linked List
LeetCode 167 Two Sum II - Sorted Array Medium Array
LeetCode 202 Happy Number Easy Math
LeetCode 234 Palindrome Linked List Easy Linked List
LeetCode 287 Find the Duplicate Number Medium Array
LeetCode 567 Permutation in String Medium String Manipulation
LeetCode 680 Valid Palindrome II Easy String Manipulation
LeetCode 905 Sort Array By Parity Easy Array
LeetCode 986 Interval List Intersections Medium Array
LeetCode - Shortest Word Distance Easy Array
HackerRank - Check Palindrome by Filtering Non-Letters Easy String Manipulation
HackerRank - One-Pass Removal of k-th Node from End Medium Linked List
Other - Two Sum II - Boolean Easy Array
Other - Two Sum V Medium Array

15.4.4 Sliding Window

Problems using the Sliding Window technique:

Platform ID Problem Difficulty Chapter
LeetCode 3 Longest Substring Without Repeating Medium String Manipulation
LeetCode 209 Minimum Size Subarray Sum Medium Array
LeetCode 424 Longest Repeating Character Replacement Medium String Manipulation
LeetCode 438 Find All Anagrams in a String Medium String Manipulation
LeetCode 567 Permutation in String Medium String Manipulation
LeetCode 1358 Number of Substrings All Three Chars Medium String Manipulation
HackerRank - Max Unique Substring Length in a Session Medium String Manipulation

15.4.5 Greedy

Problems using Greedy Array strategies:

Platform ID Problem Difficulty Chapter
LeetCode 122 Best Time to Buy and Sell Stock II Easy Array
LeetCode 134 Gas Station Medium Array
LeetCode 253 Meeting Rooms II Medium Heap
LeetCode 409 Longest Palindrome Easy String Manipulation
LeetCode 435 Non-overlapping Intervals Medium Array
LeetCode 621 Task Scheduler Medium Stack and Queue
LeetCode 846 Hand of Straights Medium Array
LeetCode 849 Maximize Distance to Closest Person Medium Array
LeetCode 1717 Maximum Score From Removing Substrings Medium Stack and Queue
LeetCode 1899 Merge Triplets to Form Target Triplet Medium Array
LeetCode 1921 Eliminate Maximum Monsters Medium Array
LeetCode 2966 Divide Array Into Arrays With Max Difference Medium Array
LeetCode 3191 Minimum Operations to Make Binary Array Elements Equal to One I Medium Array
Firecode - Max Gain Easy Array

15.4.6 Data Structures

This section indexes problems by the specialized data structures they use.

15.4.6.1 Stack

Problems using the Stack data structure:

Platform ID Problem Difficulty Chapter
LeetCode 32 Longest Valid Parentheses Hard Stack and Queue
LeetCode 94 Binary Tree Inorder Traversal Easy Tree
LeetCode 144 Binary Tree Preorder Traversal Easy Tree
LeetCode 145 Binary Tree Postorder Traversal Easy Tree
LeetCode 150 Evaluate Reverse Polish Notation Medium Stack and Queue
LeetCode 155 Min Stack Medium Stack and Queue
LeetCode 232 Implement Queue using Stacks Easy Stack and Queue
LeetCode 739 Daily Temperatures Medium Stack and Queue
LeetCode 853 Car Fleet Medium Stack and Queue
LeetCode 1717 Maximum Score From Removing Substrings Medium Stack and Queue
HackerRank - Validate Properly Nested Brackets Easy Stack and Queue
HackerRank - Next Greater Element with Position Offset Medium Stack and Queue
Interview - Lock-Free Stack Using Linked List (CAS) Easy Stack and Queue
Interview - Implement Stack Using Queues Easy Advanced Data Structure

15.4.6.2 Queue

Problems using the Queue data structure:

Platform ID Problem Difficulty Chapter
LeetCode 232 Implement Queue using Stacks Easy Stack and Queue
Interview - Implement Stack Using Queues Easy Advanced Data Structure
Interview - Implement Queue Easy Advanced Data Structure
Interview - VIP Customer Scheduler Medium Heap

15.4.6.3 Heap

Problems using the Heap (Min/Max) data structure:

Platform ID Problem Difficulty Chapter
LeetCode 4 Median of Two Sorted Arrays Hard Array
LeetCode 23 Merge k Sorted Lists Hard Linked List
LeetCode 215 Find kth Largest Element Medium Heap
LeetCode 253 Meeting Rooms II Medium Heap
LeetCode 295 Find Median from Data Stream Hard Heap
LeetCode 347 Top K Frequent Elements Medium Heap
LeetCode 355 Design Twitter Medium Advanced Data Structure
LeetCode 621 Task Scheduler Medium Stack and Queue
LeetCode 973 K Closest Points to Origin Medium Heap
LeetCode 1046 Last Stone Weight Easy Heap
HackerRank - Top K Frequent Events with Order Preservation Medium Heap
Interview - Merge K Sorted Arrays Medium Heap
Interview - Top K Elements Medium Heap
Interview - VIP Customer Scheduler Medium Heap

15.4.6.4 Hash Table

Problems using the Hash Table data structure:

Platform ID Problem Difficulty Chapter
LeetCode 1 Two Sums I Easy Array
LeetCode 3 Longest Substring Without Repeating Medium String Manipulation
LeetCode 36 Valid Sudoku Medium Matrix
LeetCode 49 Group Anagrams Medium String Manipulation
LeetCode 133 Clone Graph Medium Graph
LeetCode 138 Copy List with Random Pointer Medium Linked List
LeetCode 146 Design LRU Cache Medium Advanced Data Structure
LeetCode 202 Happy Number Easy Math
LeetCode 208 Implement Trie (Prefix Tree) Medium Tree
LeetCode 269 Alien Dictionary Hard Graph
LeetCode 347 Top K Frequent Elements Medium Heap
LeetCode 355 Design Twitter Medium Advanced Data Structure
LeetCode 383 Ransom Note Easy String Manipulation
LeetCode 409 Longest Palindrome Easy String Manipulation
LeetCode 424 Longest Repeating Character Replacement Medium String Manipulation
LeetCode 438 Find All Anagrams in a String Medium String Manipulation
LeetCode 451 Sort Characters By Frequency Medium String Manipulation
LeetCode 454 4Sum II Medium Array
LeetCode 554 Brick Wall Medium Matrix
LeetCode 567 Permutation in String Medium String Manipulation
LeetCode 621 Task Scheduler Medium Stack and Queue
LeetCode 653 Two Sum IV - BST Easy Tree
LeetCode 705 Design HashSet Easy Advanced Data Structure
LeetCode 706 Design HashMap Easy Advanced Data Structure
LeetCode 721 Accounts Merge Medium Graph
LeetCode 846 Hand of Straights Medium Array
LeetCode 953 Verifying an Alien Dictionary Easy String Manipulation
LeetCode 981 Time Based Key-Value Store Medium Advanced Data Structure
LeetCode 1002 Find Common Characters Easy Array
LeetCode 1347 Minimum Number of Steps to Make Two Strings Anagram Medium String Manipulation
LeetCode 2013 Detect Squares Medium Matrix
LeetCode 2043 Simple Bank System Medium Advanced Data Structure
HackerRank - Count Number Pairs Easy Array
HackerRank - Top K Frequent Events with Order Preservation Medium Heap
HackerRank - Max Unique Substring Length in a Session Medium String Manipulation
Other - Retrieve Elements K Times Easy Array
Interview - Hardware Build Feasibility Medium Graph
Interview - First Non-Repeated Character Easy String Manipulation

15.4.6.5 Binary Search Tree

Problems using the Binary Search Tree data structure:

Platform ID Problem Difficulty Chapter
LeetCode 230 Kth Smallest Element in a BST Medium Tree
LeetCode 235 Lowest Common Ancestor of a Binary Search Tree Medium Tree
LeetCode 285 Inorder Successor in BST Medium Tree
LeetCode 729 My Calendar I Medium Advanced Data Structure

15.4.6.6 Trie

Problems using the Trie data structure:

Platform ID Problem Difficulty Chapter
LeetCode 139 Word Break Medium Dynamic Programming and Backtracking
LeetCode 208 Implement Trie (Prefix Tree) Medium Tree
LeetCode 211 Design Add and Search Words Data Structure Medium String Manipulation

15.4.7 Searching

This section indexes problems by generic array search algorithms (excluding tree and matrix search).

15.4.7.2 QuickSelect

Problems using QuickSelect for k-th element selection:

Platform ID Problem Difficulty Chapter
LeetCode 347 Top K Frequent Elements Medium Heap
LeetCode 973 K Closest Points to Origin Medium Heap

15.4.8 Matrix Traversal

This section indexes matrix-specific traversal and search problems.

15.4.8.1 Matrix Traversal (General)

Problems using Matrix Traversal:

Platform ID Problem Difficulty Chapter
LeetCode 36 Valid Sudoku Medium Matrix
LeetCode 54 Spiral Matrix Medium Matrix
LeetCode 240 Search a 2D Matrix II Medium Matrix

15.4.9 Tree Traversal

This section indexes tree-specific traversal and search problems.

15.4.9.2 Tree - Pre-Order Traversal

Problems using Pre-Order Traversal:

Platform ID Problem Difficulty
LeetCode 144 Binary Tree Preorder Traversal Easy

15.4.9.3 Tree - In-Order Traversal

Problems using In-Order Traversal:

Platform ID Problem Difficulty
LeetCode 94 Binary Tree Inorder Traversal Easy
LeetCode 230 Kth Smallest Element in a BST Medium

15.4.9.4 Tree - Post-Order Traversal

Problems using Post-Order Traversal:

Platform ID Problem Difficulty
LeetCode 145 Binary Tree Postorder Traversal Easy

15.4.10 Graph Traversal

This section indexes problems by specific graph traversal techniques, organized by graph type and algorithm.

15.4.10.5 Union-Find

Problems using Union-Find:

Platform ID Problem Difficulty Chapter
LeetCode 261 Graph Valid Tree Medium Graph
LeetCode 323 Number of Connected Components in an Undirected Graph Medium Graph
LeetCode 721 Accounts Merge Medium Graph

15.4.10.6 Cycle Detection in Undirected Graph

Problems using Cycle Detection in Undirected Graph:

Platform ID Problem Difficulty Chapter
LeetCode 261 Graph Valid Tree Medium Graph

15.4.10.7 Cycle Detection in DAG

Problems using Cycle Detection in DAG:

## *No problems using this technique yet.*

15.4.11 Sorting

This section indexes problems by sorting algorithms and techniques.

15.4.11.1 Bubble Sort

Problems using Bubble Sort:

## *No problems using this technique yet.*

15.4.11.2 Insertion Sort

Problems using Insertion Sort:

Platform ID Problem Difficulty Chapter
LeetCode 147 Insertion Sort List Medium Linked List

15.4.11.3 Merge Sort

Problems using Merge Sort:

Platform ID Problem Difficulty Chapter
LeetCode 148 Sort List Medium Linked List

15.4.11.4 Quick Sort

Problems using Quick Sort:

Platform ID Problem Difficulty Chapter
Interview - Quick Sort Array Medium Array

15.4.11.5 Topological Sort

Problems using Topological Sort:

## *No problems using this technique yet.*

15.4.12 Statistical Sampling

15.4.12.1 Rejection Sampling

Problems using Rejection Sampling:

Platform ID Problem Difficulty Chapter
LeetCode 470 Implement Rand10() Using Rand7() Medium Math

15.4.12.2 Reservoir Sampling

Problems using Reservoir Sampling:

Platform ID Problem Difficulty Chapter
LeetCode 398 Random Pick Index Medium Array

15.4.13 Game Theory & Optimization

15.4.13.1 MinMax

Problems using the MinMax algorithm:

Platform ID Problem Difficulty Chapter
LeetCode 121 Best Time to Buy and Sell Stock Easy Array