Algorithm Problem Classification - a920604a/leetcode GitHub Wiki
title: Algorithm Problem Classification categories: - CS - Data Structure - Algorithm comments: false
Array/String [112]
Simple Pointers [39]
-
26 Remove Duplicates from Sorted Array
-
80 Remove Duplicates from Sorted Array II
-
27 Remove Element
-
283 Move Zeroes
-
42 Trapping Rain Water
-
238 Product of Array Except Self
-
*135 Candy
-
209 Minimum Size Subarray Sum
-
*228 Summary Ranges
-
163 Missing Ranges (Premium)
-
56 Merge Intervals
-
57 Insert Interval
-
763 Partition Labels
-
*833. Find And Replace in String
-
*731 My Calendar II
-
161 One Edit Distance (Premium)
-
88 Merge Sorted Array
-
392 Is Subsequence
-
844 Backspace String Compare
-
*686 Repeated String Match
-
11 Container With Most Water
-
345 Reverse Vowels of a String
-
125 Valid Palindrome
-
*680 Valid Palindrome II
-
243 Shortest Word Distance (Premium)
-
244 Shortest Word Distance II (Premium)
-
245 Shortest Word Distance III (Premium)
-
349 Intersection of Two Arrays
-
350 Intersection of Two Arrays II
-
15 3Sum
-
16 3Sum Closest
-
18 4Sum
-
167 Two Sum II - Input Array Is Sorted
-
170 Two Sum III - Data structure design (Premium)
-
280 Wiggle Sort (Premium)
*281 Wiggle Sort
-
*376 Wiggle Subsequence
-
14 Longest Common Prefix
-
*31 Next Permutation
-
418 Sentence Screen Fitting (Premium)
Binary Search [14]
- 35 Search Insert Position
- *4 Median of Two Sorted Arrays
- 153 Find Minimum in Rotated Sorted Array
- 154 Find Minimum in Rotated Sorted Array II
- 34 Find First and Last Position of Element in Sorted Array
- 374 Guess Number Higher or Lower
- 278 First Bad Version
- 33 Search in Rotated Sorted Array
- 81 Search in Rotated Sorted Array II
- *300 Longest Increasing Subsequence
- *315 Count of Smaller Numbers After Self
- *354 Russian Doll Envelopes
- 274 H-Index
- 275 H-Index II
HashMap [5]
- 242 Valid Anagram
- 249 Group Shifted Strings (Premium)
- *336 Palindrome Pairs
- 356 Line Reflection (Premium)
- *205 Isomorphic Strings
- Word Pattern
Sum subarray related problems [3]
- 1 Two Sum
- 325 Maximum Size Subarray Sum Equals k (Premium)
- 560 Subarray Sum Equals K
HashMap--Tracking [6]
- 3 Longest Substring Without Repeating Characters
- Longest Substring with At Most K Distinct Characters (Google)
- *30 Substring with Concatenation of All Words
- 76 Minimum Window Substring
- *395 Longest Substring with At Least K Repeating Characters
- 567 Permutation in String
HashSet [1]
- *128 Longest Consecutive Sequence
Caching [4]
- 169 Majority Element
- *229 Majority Element II
- *334 Increasing Triplet Subsequence
- Find the 2nd Largest Elements in an array
- Kth Largest Element in an Array
BFS [2]
- 127 Word Ladder
- *126 Word Ladder I
Heap [8]
- 347 Top K Frequent Elements
- Top K Frequent Words
- 252 Meeting Rooms (Premium)
- 253 Meeting Rooms II (Premium)
- 370 Range Addition (Premium)
- Merge k sorted arrays
- 23 Merge k Sorted Lists
- 358 Rearrange String k Distance Apart (Premium)
- *857 Minimum Cost to Hire K Workers
TreeSet [6]
- 217 Contains Duplicate
- 219 Contains Duplicate II
- *220 Contains Duplicate III
- *363 Max Sum of Rectangle No Larger Than K
- Maximum Sum Of Subarray Close To K
- 683 K Empty Slots (Premium)
Stream (deque/caching/heap/treeset) [6]
- 239 Sliding Window Maximum
- 295 Find Median from Data Stream
- 346 Moving Average from Data Stream (Premium)
- *352 Data Stream as Disjoint Intervals
- *382 Linked List Random Node
*398. Random Pick Index
- *384 Shuffle an Array
Sort [6]
- *148 Sort List (Merge Sort)
- Quick sort
- *215 Kth Largest Element in an Array (Quick Sort)
- 75 Sort Colors
- *164 Maximum Gap
- 49 Group Anagrams
tracking index using an array [4]
- 263 Ugly Number
- *264 Ugly Number II
- *313 Super Ugly Number
- *373 Find K Pairs with Smallest Sums
Rotate [2]
- *189 Rotate Array
- 151 Reverse Words in a String
Finding a Number [3]
- 268 Missing Number
- 287 Find the Duplicate Number
- *41 First Missing Positive
using index to add elements to a list [1]
- *406 Queue Reconstruction by Height
Iterate within a boundary if the boundary is fixed [2]
- *401 Binary Watch
- 681 Next Closest Time (Premium)
Matrix [26]
sorted matrix [3]
- 74 Search a 2D Matrix
- 240 Search a 2D Matrix II
- *378 Kth Smallest Element in a Sorted Matrix
queue [1]
- 353 Design Snake Game (Premium)
union-find (disjoint set) [3]
- 305 Number of Islands II (Premium)
- 323 Number of Connected Components in an Undirected Graph (Premium)
- *947 Most Stones Removed with Same Row or Column
DFS [8]
- *329 Longest Increasing Path in a Matrix
- 79 Word Search
- *212 Word Search II
- 200 Number of Islands
- Find a Path in a Matrix
- *37 Sudoku Solver
- 36 Valid Sudoku
- 286 Walls and Gates (Premium)
BFS [1]
- *130 Surrounded Regions
Others [9]
- 73 Set Matrix Zeroes
- 54 Spiral Matrix
- 59 Spiral Matrix II
- 48 Rotate Image
- *304 Range Sum Query 2D - Immutable
- 317 Shortest Distance from All Buildings (Premium)
- 296 Best Meeting Point (Premium)
- *289 Game of Life
- 348 Design Tic-Tac-Toe (Premium)
matrix multiplication [1]
- 311 Sparse Matrix Multiplication (Premium)
Linked List [22]
- 2 Add Two Numbers
- 143 Reorder List
- 141 Linked List Cycle
- 138 Copy List with Random Pointer
- 21 Merge Two Sorted Lists
- 328 Odd Even Linked List
- 83 Remove Duplicates from Sorted List
- 82 Remove Duplicates from Sorted List II
- 86 Partition List
- 160 Intersection of Two Linked Lists
- 203 Remove Linked List Elements
- 24 Swap Nodes in Pairs
- 206 Reverse Linked List
- 92 Reverse Linked List II
- 19 Remove Nth Node From End of List
- 234 Palindrome Linked List
- 237 Delete Node in a Linked List
- 25 Reverse Nodes in k-Group
- *148 Sort List
- Reverse Double Linked List
- Print Linked List in Reversed Order
- 369 Plus One Linked List (Premium)
Tree [47]
travel [6]
- 94 Binary Tree Inorder Traversal
- 144 Binary Tree Preorder Traversal
- 145 Binary Tree Postorder Traversal
- 102 Binary Tree Level Order Traversal
- 107 Binary Tree Level Order Traversal II
- 314 Binary Tree Vertical Order Traversal
- *987 Vertical Order Traversal of a Binary Tree
dfs/bfs [37]
- 226 Invert Binary Tree
- 230 Kth Smallest Element in a BST
- 298 Binary Tree Longest Consecutive Sequence (Premium)
- 98 Validate Binary Search Tree
- 114 Flatten Binary Tree to Linked List
- 112 Path Sum
- 113 Path Sum II
- 437 Path Sum III
- 106 Construct Binary Tree from Inorder and Postorder Traversal
- 105 Construct Binary Tree from Preorder and Inorder Traversal
- 108 Convert Sorted Array to Binary Search Tree
- 109 Convert Sorted List to Binary Search Tree
- 111 Minimum Depth of Binary Tree
- 124 Binary Tree Maximum Path Sum
- 110 Balanced Binary Tree
- 101 Symmetric Tree
- 173 Binary Search Tree Iterator
- 199 Binary Tree Right Side View
- 235 Lowest Common Ancestor of a Binary Search Tree
- 236 Lowest Common Ancestor of a Binary Tree
- *1026. Maximum Difference Between Node and Ancestor
- 508 Most Frequent Subtree Sum
- *331 Verify Preorder Serialization of a Binary Tree
- 116 Populating Next Right Pointers in Each Node
- 117 Populating Next Right Pointers in Each Node II
- 96 Unique Binary Search Trees
- 95 Unique Binary Search Trees II
- 129 Sum Root to Leaf Numbers
- 222 Count Complete Tree Nodes
- 270 Closest Binary Search Tree Value (Premium)
- 257 Binary Tree Paths
- 104 Maximum Depth of Binary Tree
- *99 Recover Binary Search Tree
- 100 Same Tree
- *297 Serialize and Deserialize Binary Tree
- 285 Inorder Successor in BST (Premium)
- 510 Inorder Successor in BST II (Premium)
- 366 Find Leaves of Binary Tree (Premium)
- 333 Largest BST Subtree (Premium)
- 426 Convert Binary Search Tree to Sorted Doubly Linked List (Premium)
Trie [2]
- 208 Implement Trie (Prefix Tree)
- *211 Design Add and Search Words Data Structure
Segment Tree & Binary Index Tree [2]
- *307 Range Sum Query - Mutable
- *218 The Skyline Problem
Stack [18]
Stack and Queue data structure implementation (get familiar with stack and queue) [4]
- 225 Implement Stack using Queues
- 232 Implement Queue using Stacks
- Implement a Stack Using an Array
- Implement a Queue using an Array
Stack [5]
- 150 Evaluate Reverse Polish Notation
- 20 Valid Parentheses
- *32 Longest Valid Parentheses
- 155 Min Stack
- *769 Max Chunks To Make Sorted
Stack--Largest Rectangle [2]
- *84 Largest Rectangle in Histogram
- *85 Maximal Rectangle
Stack--Nested Object [7]
- *385 Mini Parser
- 341 Flatten Nested List Iterator
- 339 Nested List Weight Sum (Premium)
- 364 Nested List Weight Sum II (Premium)
- *388 Longest Absolute File Path
- *394 Decode String
- Evaluate Math Expression
DFS [28]
- 698 Partition to K Equal Sum Subsets
- 46 Permutations
- 47 Permutations II
- *60 Permutation Sequence
*31 Next Permutation
- *996 Number of Squareful Arrays
- *22 Generate Parentheses
- 39 Combination Sum
- 40 Combination Sum II
- 216 Combination Sum III
- *377 Combination Sum IV
- *44 Wildcard Matching
- *10 Regular Expression Matching
- *809 Expressive Words
- Get Target Using Number List And Arithmetic Operations
- 293 Flip Game (Premium)
- 294 Flip Game II (Premium)
- 290 Word Pattern
- 291 Word Pattern II (Premium)
- 87 Scramble String
- *301 Remove Invalid Parentheses
- *214 Shortest Palindrome
- *386 Lexicographical Numbers
- 77 Combinations
- 17 Letter Combinations of a Phone Number
- *93 Restore IP Addresses
- 254 Factor Combinations (Premium)
- 78 Subsets
- 90 Subsets II
Dynamic Programming [31]
- 322 Coin Change
- *131 Palindrome Partitioning
- *132 Palindrome Partitioning II
- 198 House Robber
- 213 House Robber II
- 337 House Robber III
- 55 Jump Game
- 45 Jump Game II
- 121 Best Time to Buy and Sell Stock
- 122 Best Time to Buy and Sell Stock II
- Best Time to Buy and Sell Stock with Cooldown
- Best Time to Buy and Sell Stock with Transaction Fee
- *123 Best Time to Buy and Sell Stock III
- *188 Best Time to Buy and Sell Stock IV
- *174 Dungeon Game
- *91 Decode Ways
- *279 Perfect Squares
- *139 Word Break
- *140 Word Break II
- 727 Minimum Window Subsequence (Premium)
- *221 Maximal Square
- 64 Minimum Path Sum
- 62 Unique Paths
- *63 Unique Paths II
- 256 Paint House (Premium)
- 265 Paint House II (Premium)
- 53 Maximum Subarray
- 152 Maximum Product Subarray
DP--2D
- 72 Edit Distance
- Delete Operation for Two Strings
- Minimum ASCII Delete Sum for Two Strings
- 115 Distinct Subsequences Total
- 5 Longest Palindromic Substring
- 1143 Longest Common Subsequence
- Longest Palindromic Subsequence
- Longest Common Substring
Data Structure Design [6]
- *146 LRU Cache
- 380 Insert Delete GetRandom O(1)
- *381 Insert Delete GetRandom O(1) - Duplicates allowed
- Insert Delete GetMostFrequent O(1)
- 379 Design Phone Directory (Premium)
- *355 Design Twitter
Bit Manipulation [12]
- 136 Single Number
- *137 Single Number II
- Single Number III
- Maximum Binary Gap
- 191 Number of 1 Bits
- 190 Reverse Bits
- *187 Repeated DNA Sequences
- 201 Bitwise AND of Numbers Range
- *371 Sum of Two Integers
- 338 Counting Bits
- *318 Maximum Product of Word Lengths
- *89 Gray Code
- *393 UTF-8 Validation
Graph [6]
topological sort
- *207 Course Schedule
- *210 Course Schedule II
- *310 Minimum Height Trees
BFS/DFS
-
- Graph Valid Tree (Premium)
- 133 Clone Graph
- *332 Reconstruct Itinerary
Math/Numbers
power
- 50 Pow(x,n)
- 231 Power of Two
- 326 Power of Three
- 342 Power of Four
- *372 Super Pow
/%
-
7 Reverse Integer
-
9 Palindrome Number
-
*400 Nth Digit
-
*166 Fraction to Recurring Decimal
-
171 Excel Sheet Column Number
-
168 Excel Sheet Column Title
-
*172 Factorial Trailing Zeroes
-
202 Happy Number
-
204 Count Primes
-
*66 Plus One
-
29 Divide Two Integers
-
43 Multiply Strings
-
*149 Max Points on a Line
-
*343 Integer Break
-
258 Add Digits
-
*368 Largest Divisible Subset
-
357 Count Numbers with Unique Digits
-
*787 Rotated Digits
-
*402 Remove K Digits
Other
- *179 Largest Number
- 120 Triangle
- *8 String to Integer
- 28 Implement strStr()
- 6 ZigZag Conversion
- 67 Add Binary
- 58 Length of Last Word
- 299 Bulls and Cows
- *71 Simplify Path
- *165 Compare Version Numbers
- 118 Pascal's Triangle
- 119 Pascal's Triangle II
- 38 Count and Say
- *224 Basic Calculator
- *227 Basic Calculator II
- *223 Rectangle Area
- 162 Find Peak Element
- *273 Integer to English Words
- 68 Text Justification
- 134 Gas Station
- *335 Self Crossing
- *330 Patching Array
- 292 Nim Game
- 319 Bulb Switcher
- 276 Paint Fence (Premium)
- 339 Nested List Weight Sum (Premium)