| 1 |
Two Sum |
C++ |
Easy |
Array / Hash Table |
| 2 |
Add Two Numbers |
C++ |
Medium |
Linked List |
| 3 |
Longest Substring Without Repeating Characters |
C++ |
Medium |
Hash Table / Two Pointers |
| 4 |
Median of Two Sorted Arrays |
C++ |
Hard |
Array / Binary Search |
| 5 |
Longest Palindromic Substring |
C++ |
Medium |
String |
| 6 |
ZigZag Conversion |
C++ |
Medium |
String |
| 7 |
Reverse Integer |
C++ |
Easy |
Math |
| 8 |
String to Integer (atoi) |
C++ |
Medium |
String |
| 9 |
Palindrome Number |
C++ |
Easy |
Math |
| 10 |
Regular Expression Matching |
C++ |
Hard |
String / Dynamic Programming / Backtracking |
| 11 |
Container With Most Water |
C++ |
Medium |
Array / Two Pointers |
| 12 |
Integer to Roman |
C++ |
Medium |
String |
| 13 |
Roman to Integer |
C++ |
Easy |
String |
| 14 |
Longest Common Prefix |
C++ |
Easy |
String |
| 15 |
3Sum |
C++ |
Medium |
Array / Two Pointers |
| 16 |
3Sum Closest |
C++ |
Medium |
Array / Two Pointers |
| 17 |
Letter Combinations of a Phone Number |
C++ |
Medium |
Backtracking / String |
| 18 |
4Sum |
C++ |
Medium |
Array |
| 19 |
Remove Nth Node From End of List |
C++ |
Medium |
Linked List / Two Pointers |
| 20 |
Valid Parentheses |
C++ |
Easy |
Stack |
| 21 |
Merge Two Sorted Lists |
C++ |
Easy |
Linked List |
| 22 |
Generate Parentheses |
C++ |
Medium |
String / Backtracking |
| 23 |
Merge k Sorted Lists |
C++ |
Hard |
Linked List / Heap |
| 24 |
Swap Nodes in Pairs |
C++ |
Medium |
Linked List |
| 25 |
Reverse Nodes in k-Group |
C++ |
Hard |
Linked List |
| 26 |
Remove Duplicates from Sorted Array |
C++ |
Easy |
Array / Two Pointers |
| 27 |
Remove Element |
C++ |
Easy |
Array / Two Pointers |
| 28 |
Implement strStr() |
C++ |
Easy |
String |
| 29 |
Implement strStr() |
C++ |
Easy |
String |
| 31 |
Next Permutation |
C++ |
Medium |
Array |
| 33 |
Search in Rotated Sorted Array |
C++ |
Medium |
Array / Binary Search |
| 34 |
Search for a Range |
C++ |
Medium |
Array / Binary Search |
| 35 |
Search Insert Position |
C++ |
Easy |
Array / Binary Search |
| 36 |
Valid Sudoku |
C++ |
Medium |
Hash Table |
| 37 |
Sudoku Solver |
C++ |
Medium |
Hash Table |
| 38 |
Count and Say |
C++ |
Easy |
String |
| 39 |
Combination Sum |
C++ |
Medium |
Array / Backtracking |
| 40 |
Combination Sum II |
C++ |
Medium |
Array / Backtracking |
| 41 |
First Missing Positive |
C++ |
Hard |
Array |
| 42 |
Trapping Rain Water |
C++ |
Hard |
Array / Two Pointers / Stack |
| 43 |
Multiply Strings |
C++ |
Medium |
String |
| 44 |
Wildcard Matching |
C++ |
Hard |
String / Backtracking / Greedy |
| 45 |
Jump Game II |
C++ |
Hard |
Array / Greedy |
| 46 |
Permutations |
C++ |
Medium |
Backtracking |
| 47 |
Permutations II |
C++ |
Medium |
Backtracking |
| 48 |
Rotate Image |
C++ |
Medium |
Matrix |
| 49 |
Group Anagrams |
C++ |
Medium |
Hash Table / String |
| 50 |
Pow(x, n) |
C++ |
Medium |
Binary Search |
| 51 |
Pow(x, n) |
C++ |
Medium |
Binary Search |
| 52 |
Pow(x, n) |
C++ |
Medium |
Binary Search |
| 53 |
Maximum Subarray |
C++ |
Easy |
Dynamic Programming / Array |
| 54 |
Spiral Matrix |
C++ |
Medium |
Array |
| 55 |
Jump Game |
C++ |
Medium |
Array / Greedy |
| 56 |
Merge Intervals |
C++ |
Medium |
Array / Sort |
| 57 |
Insert Interval |
C++ |
Hard |
Array / Sort |
| 58 |
Length of Last Word |
C++ |
Easy |
String |
| 59 |
Spiral Matrix II |
C++ |
Medium |
Array |
| 60 |
Permutation Sequence |
C++ |
Medium |
Backtracking / Math |
| 61 |
Rotate List |
C++ |
Medium |
Linked List / Two Pointers |
| 62 |
Unique Paths |
C++ |
Medium |
Array / Dynamic Programming |
| 63 |
Unique Paths II |
C++ |
Medium |
Array / Dynamic Programming |
| 64 |
Minimum Path Sum |
C++ |
Medium |
Array / Dynamic Programming |
| 65 |
Valid Number |
C++ |
Medium |
Array / Dynamic Programming |
| 66 |
Plus One |
C++ |
Easy |
Array / Math |
| 67 |
Add Binary |
C++ |
Easy |
String |
| 68 |
Text Justification |
C++ |
Hard |
String |
| 69 |
Sqrt(x) |
C++ |
Easy |
Binary Search / Math |
| 70 |
Climbing Stairs |
C++ |
Easy |
Dynamic Programming |
| 71 |
Simplify Path |
C++ |
Medium |
Stack / String |
| 72 |
Edit Distance |
C++ |
Medium |
Stack / String |
| 73 |
Set Matrix Zeroes |
C++ |
Medium |
Array |
| 74 |
Search a 2D Matrix |
C++ |
Medium |
Array / Binary Search |
| 75 |
Sort Colors |
C++ |
Medium |
Array / Two Pointers |
| 76 |
Minimum Window Substring |
C++ |
Hard |
Hash Table / Two pointers / String |
| 78 |
Subsets |
C++ |
Medium |
Array / Backtracking |
| 79 |
Word Search |
C++ |
Medium |
Matrix / Backtracking |
| 80 |
Remove Duplicates from Sorted Array II |
C++ |
Medium |
Array / Two Pointers |
| 82 |
Remove Duplicates from Sorted List II |
C++ |
Medium |
Linked List |
| 83 |
Remove Duplicates from Sorted List |
C++ |
Easy |
Linked List |
| 84 |
Largest Rectangle in Histogram |
C++ |
Hard |
Array |
| 85 |
Maximal Rectangle |
C++ |
Hard |
Array |
| 86 |
Partition List |
C++ |
Medium |
Linked List |
| 88 |
Merge Sorted Array |
C++ |
Easy |
Array / Two Pointers |
| 90 |
Subsets II |
C++ |
Medium |
Array / Backtracking |
| 91 |
Decode Ways |
C++ |
Medium |
Dynamic Programming / String |
| 92 |
Reverse Linked List II |
C++ |
Medium |
Linked List |
| 94 |
Binary Tree Inorder Traversal |
C++ |
Medium |
Tree / Stack |
| 95 |
Unique Binary Search Trees II |
C++ |
Medium |
Tree |
| 96 |
Unique Binary Search Trees |
C++ |
Hard |
Tree / DFS |
| 97 |
Interleaving String |
C++ |
Hard |
Tree / DFS |
| 98 |
Validate Binary Search Tree |
C++ |
Medium |
Tree |
| 99 |
Recover Binary Search Tree |
C++ |
Hard |
Tree / DFS |
| 100 |
Same Tree |
C++ |
Easy |
Tree / DFS |
| 101 |
Symmetric Tree |
C++ |
Easy |
Tree |
| 102 |
Binary Tree Level Order Traversal |
C++ |
Medium |
Tree / DFS / BFS |
| 103 |
Binary Tree Zigzag Level Order Traversal |
C++ |
Medium |
Tree / BFS |
| 104 |
Maximum Depth of Binary Tree |
C++ |
Easy |
Tree |
| 105 |
Construct Binary Tree from Preorder and Inorder Traversal |
C++ |
Medium |
Array / Tree / DFS |
| 106 |
Construct Binary Tree from Inorder and Postorder Traversal |
C++ |
Medium |
Linked List / DFS |
| 107 |
Binary Tree Level Order Traversal II |
C++ |
Easy |
Tree |
| 108 |
Convert Sorted Array to Binary Search Tree |
C++ |
Easy |
Tree / DFS |
| 109 |
Convert Sorted List to Binary Search Tree |
C++ |
Medium |
Linked List / DFS |
| 110 |
Balanced Binary Tree |
C++ |
Easy |
Tree / DFS |
| 111 |
Minimum Depth of Binary Tree |
C++ |
Easy |
Tree |
| 112 |
Path Sum |
C++ |
Easy |
Tree / DFS |
| 113 |
Path Sum II |
C++ |
Medium |
Tree / DFS |
| 114 |
Flatten Binary Tree to Linked List |
C++ |
Medium |
Tree / DFS |
| 116 |
Populating Next Right Pointers in Each Node |
C++ |
Medium |
Tree / BFS |
| 117 |
Populating Next Right Pointers in Each Node II |
C++ |
Medium |
Tree / Level-order Traversal |
| 118 |
Pascal's Triangle |
C++ |
Easy |
Array |
| 119 |
Pascal's Triangle II |
C++ |
Easy |
Array |
| 120 |
Triangle |
C++ |
Medium |
Array / Dynamic Programming |
| 121 |
Best Time to Buy and Sell Stock |
C++ |
Easy |
Array / Dynamic Programming |
| 122 |
Best Time to Buy and Sell Stock |
C++ |
Hard |
Tree / DFS |
| 123 |
Best Time to Buy and Sell Stock |
C++ |
Hard |
Tree / DFS |
| 124 |
Binary Tree Maximum Path Sum |
C++ |
Hard |
Tree / DFS |
| 125 |
Valid Palindrome |
C++ |
Easy |
String / Two Pointers |
| 126 |
Word Ladder |
C++ |
Hard |
Array / Unoin Find |
| 127 |
Word Ladder |
C++ |
Medium |
String / BFS |
| 128 |
Longest Consecutive Sequence |
C++ |
Hard |
Array / Unoin Find |
| 129 |
Sum Root to Leaf Numbers |
C++ |
Medium |
Tree / DFS / BFS |
| 130 |
Surrounded Regions |
C++ |
Medium |
DFS / BFS / Union Find |
| 131 |
Palindrome Partitioning |
C++ |
Medium |
Backtracking |
| 132 |
Palindrome Partitioning |
C++ |
Easy |
Bit Manipulation |
| 133 |
Clone Graph |
C++ |
Medium |
Graph / DFS / BFS |
| 134 |
Gas Station |
C++ |
Medium |
Greedy |
| 136 |
Single Number |
C++ |
Easy |
Bit Manipulation |
| 137 |
Single Numberll |
C++ |
Medium |
Dynamic Programming |
| 138 |
Copy List with Random Pointer |
C++ |
Medium |
Hash Table / Linked List |
| 139 |
Word Break |
C++ |
Medium |
Dynamic Programming |
| 140 |
Word BreakII |
C++ |
Medium |
Dynamic Programming |
| 141 |
Linked List Cycle |
C++ |
Easy |
Linked List / Two Pointers |
| 142 |
Linked List Cycle II |
C++ |
Medium |
Linked List / Two Pointers |
| 143 |
Reorder List |
C++ |
Medium |
Linked List |
| 144 |
Binary Tree Preorder Traversal |
C++ |
Medium |
Tree / Stack |
| 145 |
Binary Tree Postorder Traversal |
C++ |
Hard |
Tree / Stack |
| 146 |
LRU Cache |
C++ |
Hard |
Design |
| 147 |
Insertion Sort List |
C++ |
Easy |
Stack / Design |
| 148 |
Sort List |
C++ |
Easy |
Stack / Design |
| 149 |
Max Points on a Line |
C++ |
Easy |
Stack / Design |
| 151 |
Reverse Words in a String |
C++ |
Medium |
String |
| 152 |
Maximum Product Subarray |
C++ |
Hard |
String / Two Pointers |
| 153 |
Find Minimum in Rotated Sorted Array |
C++ |
Hard |
String / Two Pointers |
| 154 |
Find Minimum in Rotated Sorted Array |
C++ |
Hard |
String / Two Pointers |
| 155 |
Min Stack |
C++ |
Easy |
Stack / Design |
| 157 |
Read N Characters Given Read4 |
C++ |
Easy |
String |
| 158 |
Read N Characters Given Read4 II - Call multiple times |
C++ |
Hard |
String |
| 159 |
Longest Substring with At Most Two Distinct Characters |
C++ |
Hard |
String / Two Pointers |
| 160 |
Intersection of Two Linked Lists |
C++ |
Medium |
String |
| 161 |
One Edit Distance |
C++ |
Medium |
String |
| 162 |
Find Peak Element |
C++ |
Medium |
Binary Search |
| 163 |
Missing Ranges |
C++ |
Medium |
Array |
| 168 |
Excel Sheet Column Title |
C++ |
Easy |
Math |
| 169 |
Majority Element |
C++ |
Easy |
Array |
| 171 |
Excel Sheet Column Number |
C++ |
Easy |
Math |
| 173 |
Binary Search Tree Iterator |
C++ |
Medium |
Tree / Stack / Design |
| 186 |
Reverse Words in a String II |
C++ |
Medium |
String |
| 191 |
Number of 1 Bits |
C++ |
Easy |
Bit Manipulation |
| 198 |
House Robber |
C++ |
Easy |
Dynamic Programming |
| 200 |
Number of Islands |
C++ |
Medium |
BFS / Union Find |
| 205 |
Isomorphic Strings |
C++ |
Easy |
Hash Table |
| 206 |
Reverse Linked List |
C++ |
Easy |
Linked List |
| 207 |
Course Schedule |
C++ |
Medium |
Graph / BFS / Topological Sort |
| 208 |
Implement Trie (Prefix Tree) |
C++ |
Medium |
Trie / Design |
| 209 |
Minimum Size Subarray Sum |
C++ |
Medium |
Array / Two Pointers |
| 210 |
Course Schedule II |
C++ |
Medium |
Graph / BFS / Topological Sort |
| 211 |
Add and Search Word - Data structure design |
C++ |
Medium |
Design / Trie |
| 212 |
Word Search II |
C++ |
Hard |
Backtracking / Trie |
| 214 |
Shortest Palindrome |
C++ |
Hard |
String |
| 215 |
Kth Largest Element in an Array |
C++ |
Medium |
Sort / Partition |
| 221 |
Maximal Square |
C++ |
Medium |
Dynamic Programming / BFS |
| 223 |
Rectangle Area |
C++ |
Medium |
Math |
| 224 |
Basic Calculator |
C++ |
Hard |
String / Stack |
| 226 |
Invert Binary Tree |
C++ |
Easy |
Tree |
| 227 |
Basic Calculator II |
C++ |
Medium |
String |
| 228 |
Summary Ranges |
C++ |
Medium |
Array |
| 229 |
Majority Element II |
C++ |
Medium |
Array |
| 230 |
Kth Smallest Element in a BST |
C++ |
Medium |
Tree |
| 231 |
Power of Two |
C++ |
Easy |
Bit Manipulation |
| 234 |
Palindrome Linked List |
C++ |
Easy |
Linked List / Two Pointers |
| 235 |
Lowest Common Ancestor of a Binary Search Tree |
C++ |
Easy |
Tree |
| 236 |
Lowest Common Ancestor of a Binary Tree |
C++ |
Medium |
Tree |
| 238 |
Product of Array Except Self |
C++ |
Medium |
Array |
| 239 |
Sliding Window Maximum |
C++ |
Hard |
Heap |
| 240 |
Search a 2D Matrix II |
C++ |
Medium |
Binary Search / Divide and Conquer |
| 244 |
Shortest Word Distance II |
C++ |
Medium |
Hash Table / Design |
| 246 |
Strobogrammatic Number |
C++ |
Easy |
Hash Table / Math |
| 247 |
Strobogrammatic Number II |
C++ |
Medium |
Math / Recursion |
| 249 |
Group Shifted Strings |
C++ |
Medium |
String |
| 251 |
Flatten 2D Vector |
C++ |
Medium |
Design |
| 252 |
Meeting Rooms |
C++ |
Easy |
Sort |
| 253 |
Meeting Rooms II |
C++ |
Medium |
Heap / Sort |
| 255 |
Verify Preorder Sequence in Binary Search Tree |
C++ |
Medium |
Stack / Tree |
| 257 |
Binary Tree Paths |
C++ |
Easy |
Tree / DFS / BFS |
| 258 |
Add Digits |
C++ |
Easy |
Math |
| 259 |
3Sum Smaller |
C++ |
Medium |
Array / Two Pointers |
| 261 |
Graph Valid Tree |
C++ |
Medium |
Graph / BFS / DFS / Union Find |
| 263 |
Ugly Number |
C++ |
Easy |
Math |
| 264 |
Ugly Number II |
C++ |
Medium |
Dynamic Programming / Math |
| 266 |
Palindrome Permutation |
C++ |
Easy |
Hash Table |
| 267 |
Palindrome Permutation II |
C++ |
Medium |
Backtracking |
| 268 |
Missing Number |
C++ |
Easy |
Array / Bit Manipulation |
| 269 |
Alien Dictionary |
C++ |
Hard |
Graph / Topological Sort |
| 270 |
Closest Binary Search Tree Value |
C++ |
Easy |
Tree / Binary Search |
| 271 |
Encode and Decode Strings |
C++ |
Medium |
String / Design |
| 272 |
Closest Binary Search Tree Value II |
C++ |
Hard |
Tree / Stack |
| 273 |
Integer to English Words |
C++ |
Hard |
String |
| 274 |
H-Index |
C++ |
Medium |
Sort |
| 275 |
H-Index II |
C++ |
Medium |
Binary Search |
| 276 |
Paint Fence |
C++ |
Easy |
Dynamic Programming |
| 277 |
Find the Celebrity |
C++ |
Medium |
Array |
| 278 |
First Bad Version |
C++ |
Easy |
Binary Search |
| 279 |
Perfect Squares |
C++ |
Medium |
Math / Dynamic Programming |
| 280 |
Wiggle Sort |
C++ |
Easy |
Array |
| 281 |
Zigzag Iterator |
C++ |
Medium |
Design |
| 282 |
Expression Add Operators |
C++ |
Hard |
Divide and Conquer |
| 283 |
Move Zeroes |
C++ |
Easy |
Array / Two Pointers |
| 284 |
Peeking Iterator |
C++ |
Medum |
Design |
| 285 |
Inorder Successor in BST |
C++ |
Medium |
Tree |
| 286 |
Walls and Gates |
C++ |
Medium |
BFS |
| 289 |
Game of Life |
C++ |
Medium |
Array |
| 290 |
Word Pattern |
C++ |
Easy |
Hash Table |
| 293 |
Flip Game |
C++ |
Easy |
String |
| 294 |
Flip Game II |
C++ |
Medium |
Backtracking |
| 295 |
Find Median from Data Stream |
C++ |
Hard |
Heap / Design |
| 297 |
Serialize and Deserialize Binary Tree |
C++ |
Hard |
Tree / Design |
| 298 |
Binary Tree Longest Consecutive Sequence |
C++ |
Medium |
Tree |
| 300 |
Longest Increasing Subsequence |
C++ |
Medium |
Binary Search / Dynamic Programming |
| 301 |
Remove Invalid Parentheses |
C++ |
Hard |
Backtracking / DFS / BFS |
| 303 |
Range Sum Query - Immutable |
C++ |
Easy |
Dynamic Programming |
| 304 |
Range Sum Query 2D - Immutable |
C++ |
Medium |
Dynamic Programming |
| 305 |
Number of Islands II |
C++ |
Hard |
Union Find |
| 307 |
Range Sum Query - Mutable |
C++ |
Medium |
Segment Tree |
| 309 |
Best Time to Buy and Sell Stock with Cooldown |
C++ |
Medium |
Dynamic Programming |
| 310 |
Minimum Height Trees |
C++ |
Medium |
BFS/ Graph |
| 311 |
Sparse Matrix Multiplication |
C++ |
Medium |
Matrix |
| 313 |
Super Ugly Number |
C++ |
Medium |
Dynamic Programming / Math |
| 314 |
Binary Tree Vertical Order Traversal |
C++ |
Medium |
BFS |
| 315 |
Count of Smaller Numbers After Self |
C++ |
Hard |
Divide and Conqur / Binary Search Tree |
| 317 |
Shortest Distance from All Buildings |
C++ |
Hard |
BFS |
| 318 |
Maximum Product of Word Lengths |
C++ |
Medium |
Bit Manipulation |
| 323 |
Number of Connected Components in an Undirected Graph |
C++ |
Medium |
Graph / Union Find / BFS / DFS |
| 325 |
Maximum Size Subarray Sum Equals k |
C++ |
Medium |
Array / Hash Table |
| 329 |
Longest Increasing Path in a Matrix |
C++ |
Hard |
DFS / Memorization |
| 331 |
Verify Preorder Serialization of a Binary Tree |
C++ |
Medium |
Stack |
| 332 |
Reconstruct Itinerary |
C++ |
Medium |
Graph / DFS |
| 333 |
Largest BST Subtree |
C++ |
Medium |
Tree |
| 334 |
Increasing Triplet Subsequence |
C++ |
Medium |
Array |
| 336 |
Palindrome Pairs |
C++ |
Hard |
Hash Table / String / Trie |
| 339 |
Nested List Weight Sum |
C++ |
Easy |
DFS |
| 340 |
Longest Substring with At Most K Distinct Characters |
C++ |
Hard |
Hash Table / String |
| 341 |
Flatten Nested List Iterator |
C++ |
Medium |
Stack / Design |
| 344 |
Reverse String |
C++ |
Easy |
String |
| 347 |
Top K Frequent Elements |
C++ |
Medium |
Hash Table / Heap |
| 348 |
Design Tic-Tac-Toe |
C++ |
Medium |
Design |
| 351 |
Android Unlock Patterns |
C++ |
Medium |
DFS / Dynamic Programming |
| 354 |
Russian Doll Envelopes |
C++ |
Hard |
Binary Search / Dynamic Programming |
| 355 |
Design Twitter |
C++ |
Medium |
Hash Table / Design |
| 359 |
Logger Rate Limiter |
C++ |
Easy |
Hash Table / Design |
| 360 |
Sort Transformed Array |
C++ |
Medium |
Math / Two Pointers |
| 361 |
Bomb Enemy |
C++ |
Medium |
Dynamic Programming |
| 362 |
Design Hit Counter |
C++ |
Medium |
Design |
| 364 |
Nested List Weight Sum II |
C++ |
Medium |
DFS |
| 369 |
Plus One Linked List |
C++ |
Medium |
Linked List |
| 373 |
Find K Pairs with Smallest Sums |
C++ |
Medium |
Heap |
| 377 |
Combination Sum IV |
C++ |
Medium |
Dynamic Programming |
| 378 |
Kth Smallest Element in a Sorted Matrix |
C++ |
Medium |
Binary Search / Heap |
| 380 |
Insert Delete GetRandom O(1) |
C++ |
Medium |
Hash Table / Design |
| 382 |
Linked List Random Node |
C++ |
Medium |
Reservoir Sampling |
| 394 |
Decode String |
C++ |
Medium |
String / DFS |
| 398 |
Random Pick Index |
C++ |
Medium |
Reservoir Sampling |
| 399 |
Evaluate Division |
C++ |
Medium |
Graph |
| 402 |
Remove K Digits |
C++ |
Medium |
Greedy |
| 404 |
Sum of Left Leaves |
C++ |
Easy |
Tree |
| 408 |
Valid Word Abbreviation |
C++ |
Easy |
String |
| 409 |
Longest Palindrome |
C++ |
Easy |
Hash Table |
| 411 |
Minimum Unique Word Abbreviation |
C++ |
Hard |
Backtracking |
| 412 |
Fizz Buzz |
C++ |
Easy |
Array |
| 416 |
Partition Equal Subset Sum |
C++ |
Medium |
Dynamic Programming |
| 417 |
Pacific Atlantic Water Flow |
C++ |
Medium |
DFS / BFS |
| 418 |
Sentence Screen Fitting |
C++ |
Medium |
Dynamic Programming |
| 433 |
Minimum Genetic Mutation |
C++ |
Medium |
BFS |
| 435 |
Non-overlapping Intervals |
C++ |
Medium |
Greedy |
| 436 |
Find Right Interval |
C++ |
Medium |
Array / Binary Search |
| 438 |
Find All Anagrams in a String |
C++ |
Easy |
Hash Table |
| 441 |
Arranging Coins |
C++ |
Easy |
Math |
| 444 |
Sequence Reconstruction |
C++ |
Medium |
Graph / Topological Sort |
| 450 |
Delete Node in a BST |
C++ |
Medium |
Tree |
| 451 |
Sort Characters By Frequency |
C++ |
Medium |
Hash Table / Heap |
| 461 |
Hamming Distance |
C++ |
Easy |
Bit Manipulation |
| 467 |
Unique Substrings in Wraparound String |
C++ |
Medium |
Dynamic Programming |
| 473 |
Matchsticks to Square |
C++ |
Medium |
DFS |
| 477 |
Total Hamming Distance |
C++ |
Medium |
Bit Manipulation |
| 482 |
License Key Formatting |
C++ |
Medium |
Array |
| 484 |
Find Permutation |
C++ |
Medium |
Greedy |
| 486 |
Predict the Winner |
C++ |
Medium |
Dynamic Programming / Minimax |
| 487 |
Max Consecutive Ones II |
C++ |
Medium |
Two Pointers |
| 489 |
Robot Room Cleaner |
C++ |
Hard |
DFS |
| 490 |
The Maze |
C++ |
Medium |
BFS / DFS |
| 494 |
Target Sum |
C++ |
Medium |
Backtracking |
| 496 |
Next Greater Element I |
C++ |
Easy |
Stack |
| 498 |
Diagonal Traverse |
C++ |
Medium |
Matrix |
| 499 |
The Maze III |
C++ |
Hard |
DFS / BFS |
| 503 |
Next Greater Element II |
C++ |
Medium |
Stack |
| 505 |
The Maze II |
C++ |
Medium |
DFS / BFS |
| 508 |
Most Frequent Subtree Sum |
C++ |
Medium |
Tree / Hash Table |
| 513 |
Find Bottom Left Tree Value |
C++ |
Medium |
Tree / BFS / DFS |
| 515 |
Find Largest Value in Each Tree Row |
C++ |
Medium |
Tree / BFS / DFS |
| 523 |
Continuous Subarray Sum |
C++ |
Medium |
Dynamic Programming |
| 524 |
Longest Word in Dictionary through Deleting |
C++ |
Medium |
Two Pointers |
| 525 |
Contiguous Array |
C++ |
Medium |
Hash Table |
| 531 |
Lonely Pixel I |
C++ |
Medium |
Array / DFS |
| 535 |
Encode and Decode TinyURL |
C++ |
Medium |
String |
| 536 |
Construct Binary Tree from String |
C++ |
Medium |
String / Tree |
| 538 |
Convert BST to Greater Tree |
C++ |
Easy |
DFS |
| 540 |
Single Element in a Sorted Array |
C++ |
Medium |
Array / Binary Search |
| 541 |
Reverse String II |
C++ |
Easy |
String |
| 542 |
01 Matrix |
C++ |
Medium |
BFS / DFS |
| 543 |
Diameter of Binary Tree |
C++ |
Easy |
Tree |
| 547 |
Friend Circles |
C++ |
Medium |
DFS / Union Find |
| 549 |
Binary Tree Longest Consecutive Sequence II |
C++ |
Medium |
Tree |
| 554 |
Brick Wall |
C++ |
Medium |
Hash Table |
| 556 |
Next Greater Element III |
C++ |
Medium |
String |
| 560 |
Subarray Sum Equals K |
C++ |
Medium |
Array / Map |
| 562 |
Longest Line of Consecutive One in Matrix |
C++ |
Medium |
Array |
| 565 |
Array Nesting |
C++ |
Medium |
Array |
| 566 |
Reshape the Matrix |
C++ |
Easy |
Array |
| 567 |
Permutation in String |
C++ |
Medium |
Two Pointers |
| 572 |
Subtree of Another Tree |
C++ |
Easy |
Tree |
| 582 |
Kill Process |
C++ |
Medium |
Tree / BFS / DFS |
| 583 |
Delete Operation for Two Strings |
C++ |
Medium |
Dynamic Programming |
| 599 |
Minimum Index Sum of Two Lists |
C++ |
Easy |
Hash Table |
| 606 |
Construct String from Binary Tree |
C++ |
Easy |
Tree / String |
| 611 |
Valid Triangle Number |
C++ |
Medium |
Array |
| 616 |
Add Bold Tag in String |
C++ |
Medium |
String |
| 621 |
Task Scheduler |
C++ |
Medium |
Array / Queue |
| 632 |
Smallest Range |
C++ |
Hard |
Two Pointers |
| 633 |
Sum of Square Numbers |
C++ |
Easy |
Math |
| 635 |
Design Log Storage System |
C++ |
Medium |
String / Design |
| 636 |
Exclusive Time of Functions |
C++ |
Medium |
Stack |
| 637 |
Average of Levels in Binary Tree |
C++ |
Easy |
BFS |
| 639 |
Decode Ways II |
C++ |
Hard |
Dynamic Programming |
| 642 |
Design Search Autocomplete System |
C++ |
Hard |
Design / Trie |
| 643 |
Maximum Average Subarray I |
C++ |
Easy |
Array |
| 645 |
Set Mismatch |
C++ |
Easy |
Hash Table / Math |
| 647 |
Palindromic Substrings |
C++ |
Medium |
String |
| 648 |
Replace Words |
C++ |
Medium |
Hash Table / Trie |
| 652 |
Find Duplicate Subtrees |
C++ |
Medium |
Tree |
| 653 |
Two Sum IV - Input is a BST |
C++ |
Easy |
DFS |
| 654 |
Maximum Binary Tree |
C++ |
Medium |
Tree |
| 657 |
Judge Route Circle |
C++ |
Easy |
String |
| 658 |
Find K Closest Elements |
C++ |
Medium |
Binary Search |
| 659 |
Split Array into Consecutive Subsequences |
C++ |
Medium |
Greedy |
| 662 |
Maximum Width of Binary Tree |
C++ |
Medium |
Tree / BFS / DFS |
| 663 |
Equal Tree Partition |
C++ |
Medium |
Tree |
| 665 |
Non-decreasing Array |
C++ |
Easy |
Array |
| 669 |
Trim a Binary Search Tree |
C++ |
Easy |
Tree |
| 670 |
Maximum Swap |
C++ |
Medium |
Array / Math |
| 671 |
Second Minimum Node In a Binary Tree |
C++ |
Easy |
Tree |
| 673 |
Number of Longest Increasing Subsequence |
C++ |
Medium |
Dynamic Programming |
| 674 |
Longest Continuous Increasing Subsequence |
C++ |
Easy |
Array |
| 676 |
Implement Magic Dictionary |
C++ |
Medium |
Hash Table / Trie |
| 677 |
Map Sum Pairs |
C++ |
Medium |
Trie |
| 679 |
24 Game |
C++ |
Hard |
DFS |
| 680 |
Valid Palindrome II |
C++ |
Easy |
String |
| 681 |
Next Closest Time |
C++ |
Medium |
String |
| 683 |
K Empty Slots |
C++ |
Hard |
Array / Binary Search |
| 684 |
Redundant Connection |
C++ |
Medium |
Graph / Union Find |
| 685 |
Redundant Connection II |
C++ |
Hard |
Graph / DFS / Union Find |
| 686 |
Repeated String Match |
C++ |
Easy |
String |
| 687 |
Longest Univalue Path |
C++ |
Easy |
Tree / DFS |
| 688 |
Knight Probability in Chessboard |
C++ |
Medium |
Dynamic Programming |
| 689 |
Maximum Sum of 3 Non-Overlapping Subarrays |
C++ |
Hard |
Array / Dynamic Programming |
| 690 |
Employee Importance |
C++ |
Easy |
Hash Table / BFS / DFS |
| 692 |
Top K Frequent Words |
C++ |
Medium |
Hash Table / Heap |
| 693 |
Binary Number with Alternating Bits |
C++ |
Easy |
Bit Manipulation |
| 694 |
Number of Distinct Islands |
C++ |
Medium |
Hash Table / DFS |
| 695 |
Max Area of Island |
C++ |
Easy |
Array / DFS |
| 696 |
Count Binary Substrings |
C++ |
Easy |
String |
| 697 |
Degree of an Array |
C++ |
Easy |
Array |
| 701 |
Insert into a Binary Search Tree |
C++ |
Medium |
Array |
| 713 |
Subarray Product Less Than K |
C++ |
Medium |
Array |
| 717 |
1-bit and 2-bit Characters |
C++ |
Easy |
Array |
| 718 |
Maximum Length of Repeated Subarray |
C++ |
Medium |
Array / Dynamic Programming |
| 720 |
Longest Word in Dictionary |
C++ |
Easy |
Hash Table / Trie |
| 723 |
Candy Crush |
C++ |
Medium |
Array / Two Pointers |
| 724 |
Find Pivot Index |
C++ |
Easy |
Array |
| 725 |
Split Linked List in Parts |
C++ |
Medium |
Linked List |
| 728 |
Self Dividing Numbers |
C++ |
Easy |
Math |
| 729 |
My Calendar I |
C++ |
Medium |
Array |
| 733 |
Flood Fill |
C++ |
Easy |
DFS |
| 734 |
Sentence Similarity |
C++ |
Easy |
Hash Table |
| 735 |
Asteroid Collision |
C++ |
Medium |
Stack |
| 739 |
Daily Temperatures |
C++ |
Medium |
Stack / Hash Table |
| 740 |
Delete and Earn |
C++ |
Medium |
Dynamic Programming |
| 742 |
Closest Leaf in a Binary Tree |
C++ |
Medium |
Tree / Graph |
| 746 |
Min Cost Climbing Stairs |
C++ |
Easy |
Array / Dynamic Programming |
| 747 |
Largest Number At Least Twice of Others |
C++ |
Easy |
Array |
| 750 |
Number Of Corner Rectangles |
C++ |
Medium |
Dynamic Programming |
| 753 |
Cracking the Safe |
C++ |
Hard |
DFS |
| 758 |
Bold Words in String |
C++ |
Easy |
String |
| 760 |
Find Anagram Mappings |
C++ |
Easy |
Hash Table |
| 763 |
Partition Labels |
C++ |
Medium |
Two Pointers / Greedy |
| 765 |
Couples Holding Hands |
C++ |
Hard |
Greedy / Union Find / Greedy |
| 766 |
Toeplitz Matrix |
C++ |
Easy |
Array |
| 769 |
Max Chunks To Make Sorted |
C++ |
Medium |
Array |
| 771 |
Jewels and Stones |
C++ |
Easy |
Hash Table |
| 773 |
Sliding Puzzle |
C++ |
Hard |
BFS |
| 777 |
Swap Adjacent in LR String |
C++ |
Medium |
Brainteaser |
| 779 |
K-th Symbol in Grammar |
C++ |
Medium |
Recursion |
| 783 |
Minimum Distance Between BST Nodes |
C++ |
Easy |
Tree |
| 784 |
Letter Case Permutation |
C++ |
Easy |
String |
| 785 |
Is Graph Bipartite |
C++ |
Medium |
Graph |
| 787 |
Cheapest Flights Within K Stops |
C++ |
Medium |
Graph / Heap |
| 791 |
Custom Sort String |
C++ |
Medium |
String |
| 792 |
Number of Matching Subsequences |
C++ |
Medium |
Array |
| 797 |
All Paths From Source to Target |
C++ |
Medium |
DFS / Graph |
| 798 |
Smallest Rotation with Highest Score |
C++ |
Hard |
Array |
| 799 |
Champagne Tower |
C++ |
Medium |
Array |
| 802 |
Find Eventual Safe States |
C++ |
Medium |
DFS / Graph |
| 803 |
Bricks Falling When Hit |
C++ |
Hard |
Union Find |
| 804 |
Unique Morse Code Words |
C++ |
Easy |
String |
| 805 |
Split Array With Same Average |
C++ |
Hard |
Math |
| 806 |
Number of Lines To Write String |
C++ |
Easy |
String |
| 807 |
Max Increase to Keep City Skyline |
C++ |
Medium |
Array |
| 809 |
Expressive Words |
C++ |
Medium |
String |
| 814 |
Binary Tree Pruning |
C++ |
Medium |
Tree |
| 815 |
Bus Routes |
C++ |
Hard |
BFS |
| 819 |
Most Common Word |
C++ |
Easy |
String |
| 820 |
Short Encoding of Words |
C++ |
Medium |
Trie |
| 821 |
Shortest Distance to a Character |
C++ |
Easy |
String |
| 826 |
Most Profit Assigning Work |
C++ |
Medium |
Two Pointers / Binary Search |
| 830 |
Positions of Large Groups |
C++ |
Easy |
Array |
| 832 |
Flipping an Image |
C++ |
Easy |
Array |
| 834 |
Sum of Distances in Tree |
C++ |
Hard |
Tree / DFS |
| 836 |
Rectangle Overlap |
C++ |
Easy |
Math |
| 841 |
Keys and Rooms |
C++ |
Medium |
DFS / BFS / Graph |
| 843 |
Guess the Word |
C++ |
Hard |
Minimax |
| 844 |
Backspace String Compare |
C++ |
Easy |
Stack / Two Pointers |
| 845 |
Longest Mountain in Array |
C++ |
Medium |
Two Pointers |
| 846 |
Hand of Straights |
C++ |
Medium |
Map |
| 848 |
Shifting Letters |
C++ |
Medium |
String |
| 849 |
Maximize Distance to Closest Person |
C++ |
Easy |
Array |
| 852 |
Peak Index in a Mountain Array |
C++ |
Easy |
Binary Search |
| 853 |
Car Fleet |
C++ |
Medium |
Stack |
| 855 |
Exam Room |
C++ |
Medium |
Map |
| 857 |
Minimum Cost to Hire K Workers |
C++ |
Hard |
Heap |
| 859 |
Buddy Strings |
C++ |
Easy |
String |
| 872 |
Leaf-Similar Trees |
C++ |
Easy |
Tree / DFS |
| 876 |
Middle of the Linked List |
C++ |
Easy |
Linked List |
| 884 |
Uncommon Words from Two Sentences |
C++ |
Easy |
Hash Table |
| 888 |
Fair Candy Swap |
C++ |
Easy |
Array |
| 889 |
Construct Binary Tree from Preorder and Postorder Traversal |
C++ |
Medium |
Tree |
| 890 |
Find and Replace Pattern |
C++ |
Medium |
String |
| 894 |
All Possible Full Binary Trees |
C++ |
Medium |
Tree / Recursion |
| 896 |
Monotonic Array |
C++ |
Easy |
Array |
| 900 |
RLE Iterator |
C++ |
Medium |
Array |
| 904 |
Fruit Into Baskets |
C++ |
Medium |
Two Pointers |
| 911 |
Online Election |
C++ |
Medium |
Binary Search / Map |
| 914 |
X of a Kind in a Deck of Cards |
C++ |
Easy |
Array / Math |
| 916 |
Word Subsets |
C++ |
Medium |
String |
| 925 |
Long Pressed Name |
C++ |
Easy |
String |
| 929 |
Unique Email Addresses |
C++ |
Easy |
String |
| 932 |
Beautiful Array |
C++ |
Medium |
Divide and Conquer |
| 933 |
Number of Recent Calls |
C++ |
Easy |
Queue |
| 935 |
Knight Dialer |
C++ |
Medium |
Dynamic Programming |
| 938 |
Range Sum of BST |
C++ |
Medium |
Tree |
| 939 |
Minimum Area Rectangle |
C++ |
Medium |
Hash Table |
| 941 |
Valid Mountain Array |
C++ |
Easy |
Array |
| 946 |
Validate Stack Sequences |
C++ |
Medium |
Stack |
| 951 |
Flip Equivalent Binary Trees |
C++ |
Medium |
Tree |