Skip to content

Latest commit

 

History

History
947 lines (888 loc) · 128 KB

TAG.md

File metadata and controls

947 lines (888 loc) · 128 KB

Tag

Array

# Title Solution Difficulty Note
1 Two Sum Python Java Easy
4 Median of Two Sorted Arrays Python Java Hard
11 Container With Most Water Python Java Medium
15 3Sum Python Java Medium
16 3Sum Closest Python Java Medium
18 4Sum Python Java Medium
26 Remove Duplicates from Sorted Array Python Java Easy
27 Remove Element Python Java Easy
31 Next Permutation Python Java Medium
33 Search in Rotated Sorted Array Python Java Medium
34 Search for a Range Python Java Medium
35 Search Insert Position Python Java Easy
39 Combination Sum Python Java Medium
40 Combination Sum II Python Java Medium
41 First Missing Positive Python Java Hard
42 Trapping Rain Water Python Java Hard
45 Jump Game II Python Java Hard
48 Rotate Image Python Java Medium
53 Maximum Subarray Python Java Easy
54 Spiral Matrix Python Java Medium
55 Jump Game Python Java Medium
56 Merge Intervals Python Java Medium
57 Insert Interval Python Java Hard
59 Spiral Matrix II Python Java Medium
62 Unique Paths Python Java Medium
63 Unique Paths II Python Java Medium
64 Minimum Path Sum Python Java Medium
66 Plus One Python Java Easy
73 Set Matrix Zeroes Python Java Medium
74 Search a 2D Matrix Python Java Medium
75 Sort Colors Python Java Medium
78 Subsets Python Java Medium
79 Word Search Python Java Medium
80 Remove Duplicates from Sorted Array II Python Java Medium
81 Search in Rotated Sorted Array II Python Java Medium
84 Largest Rectangle in Histogram Python Java Hard
85 Maximal Rectangle Python Java Hard
88 Merge Sorted Array Python Java Easy
90 Subsets II Python Java Medium
105 Construct Binary Tree from Preorder and Inorder Traversal Python Java Medium
106 Construct Binary Tree from Inorder and Postorder Traversal Python Java Medium
118 Pascal's Triangle Python Java Easy
119 Pascal's Triangle II Python Java Easy
120 Triangle Python Java Medium
121 Best Time to Buy and Sell Stock Python Java Easy
122 Best Time to Buy and Sell Stock II Python Java Easy
123 Best Time to Buy and Sell Stock III Python Java Hard
126 Word Ladder II Python Java Hard
128 Longest Consecutive Sequence Python Java Hard
152 Maximum Product Subarray Python Java Medium
153 Find Minimum in Rotated Sorted Array Python Java Medium
154 Find Minimum in Rotated Sorted Array II Python Java Hard
162 Find Peak Element Python Java Medium
163 Missing Ranges Python Java Medium
167 Two Sum II - Input array is sorted Python Java Easy
169 Majority Element Python Java Easy
189 Rotate Array Python Java Easy
209 Minimum Size Subarray Sum Python Java Medium
216 Combination Sum III Python Java Medium
217 Contains Duplicate Python Java Easy
219 Contains Duplicate II Python Java Easy
228 Summary Ranges Python Java Medium
229 Majority Element II Python Java Medium
238 Product of Array Except Self Python Java Medium
243 Shortest Word Distance Python Java Easy
245 Shortest Word Distance III Python Java Medium
259 3Sum Smaller Python Java Medium
268 Missing Number Python Java Easy
277 Find the Celebrity Python Java Medium
280 Wiggle Sort Python Java Medium
283 Move Zeroes Python Java Easy
287 Find the Duplicate Number Python Java Medium
289 Game of Life Python Java Medium
370 Range Addition Python Java Medium
380 Insert Delete GetRandom O(1) Python Java Medium
381 Insert Delete GetRandom O(1) - Duplicates allowed Python Java Hard
414 Third Maximum Number Python Java Easy
442 Find All Duplicates in an Array Python Java Medium
448 Find All Numbers Disappeared in an Array Python Java Easy
485 Max Consecutive Ones Python Java Easy
495 Teemo Attacking Python Java Medium
531 Lonely Pixel I Python Java Medium
532 K-diff Pairs in an Array Python Java Easy
533 Lonely Pixel II Python Java Medium
548 Split Array with Equal Sum Python Java Medium
560 Subarray Sum Equals K Python Java Medium
561 Array Partition I Python Java Easy
562 Longest Line of Consecutive One in Matrix Python Java Medium
566 Reshape the Matrix Python Java Easy

Hash Table

# Title Solution Difficulty Note
1 Two Sum Python Java Easy
3 Longest Substring Without Repeating Characters Python Java Medium
18 4Sum Python Java Medium
30 Substring with Concatenation of All Words Python Java Hard
36 Valid Sudoku Python Java Medium
37 Sudoku Solver Python Java Hard
49 Group Anagrams Python Java Medium
76 Minimum Window Substring Python Java Hard
85 Maximal Rectangle Python Java Hard
94 Binary Tree Inorder Traversal Python Java Medium
136 Single Number Python Java Easy
138 Copy List with Random Pointer Python Java Medium
149 Max Points on a Line Python Java Hard
159 Longest Substring with At Most Two Distinct Characters Python Java Hard
166 Fraction to Recurring Decimal Python Java Medium
170 Two Sum III - Data structure design Python Java Easy
187 Repeated DNA Sequences Python Java Medium
202 Happy Number Python Java Easy
204 Count Primes Python Java Easy
205 Isomorphic Strings Python Java Easy
217 Contains Duplicate Python Java Easy
219 Contains Duplicate II Python Java Easy
242 Valid Anagram Python Java Easy
244 Shortest Word Distance II Python Java Medium
246 Strobogrammatic Number Python Java Easy
249 Group Shifted Strings Python Java Medium
266 Palindrome Permutation Python Java Easy
274 H-Index Python Java Medium
288 Unique Word Abbreviation Python Java Medium
290 Word Pattern Python Java Easy
299 Bulls and Cows Python Java Medium
311 Sparse Matrix Multiplication Python Java Medium
314 Binary Tree Vertical Order Traversal Python Java Medium
325 Maximum Size Subarray Sum Equals k Python Java Medium
336 Palindrome Pairs Python Java Hard
340 Longest Substring with At Most K Distinct Characters Python Java Hard
347 Top K Frequent Elements Python Java Medium
349 Intersection of Two Arrays Python Java Easy
350 Intersection of Two Arrays II Python Java Easy
355 Design Twitter Python Java Medium
356 Line Reflection Python Java Medium
358 Rearrange String k Distance Apart Python Java Hard
359 Logger Rate Limiter Python Java Easy
380 Insert Delete GetRandom O(1) Python Java Medium
381 Insert Delete GetRandom O(1) - Duplicates allowed Python Java Hard
389 Find the Difference Python Java Easy
409 Longest Palindrome Python Java Easy
438 Find All Anagrams in a String Python Java Easy
447 Number of Boomerangs Python Java Easy
451 Sort Characters By Frequency Python Java Medium
454 4Sum II Python Java Medium
463 Island Perimeter Python Java Easy
500 Keyboard Row Python Java Easy
508 Most Frequent Subtree Sum Python Java Medium
525 Contiguous Array Python Java Medium
535 Encode and Decode TinyURL Python Java Medium
554 Brick Wall Python Java Medium

Linked List

# Title Solution Difficulty Note
2 Add Two Numbers Python Java Medium
19 Remove Nth Node From End of List Python Java Medium
21 Merge Two Sorted Lists Python Java Easy
23 Merge k Sorted Lists Python Java Hard
24 Swap Nodes in Pairs Python Java Medium
25 Reverse Nodes in k-Group Python Java Hard
61 Rotate List Python Java Medium
82 Remove Duplicates from Sorted List II Python Java Medium
83 Remove Duplicates from Sorted List Python Java Easy
86 Partition List Python Java Medium
92 Reverse Linked List II Python Java Medium
109 Convert Sorted List to Binary Search Tree Python Java Medium
138 Copy List with Random Pointer Python Java Medium
141 Linked List Cycle Python Java Easy
142 Linked List Cycle II Python Java Medium
143 Reorder List Python Java Medium
147 Insertion Sort List Python Java Medium
148 Sort List Python Java Medium
160 Intersection of Two Linked Lists Python Java Easy
203 Remove Linked List Elements Python Java Easy
206 Reverse Linked List Python Java Easy
234 Palindrome Linked List Python Java Easy
237 Delete Node in a Linked List Python Java Easy
328 Odd Even Linked List Python Java Medium
369 Plus One Linked List Python Java Medium
379 Design Phone Directory Python Java Medium
445 Add Two Numbers II Python Java Medium

Math

# Title Solution Difficulty Note
2 Add Two Numbers Python Java Medium
7 Reverse Integer Python Java Easy
8 String to Integer (atoi) Python Java Medium
9 Palindrome Number Python Java Easy
12 Integer to Roman Python Java Medium
13 Roman to Integer Python Java Easy
29 Divide Two Integers Python Java Medium
43 Multiply Strings Python Java Medium
50 Pow(x, n) Python Java Medium
60 Permutation Sequence Python Java Medium
65 Valid Number Python Java Hard
66 Plus One Python Java Easy
67 Add Binary Python Java Easy
69 Sqrt(x) Python Java Easy
149 Max Points on a Line Python Java Hard
166 Fraction to Recurring Decimal Python Java Medium
168 Excel Sheet Column Title Python Java Easy
171 Excel Sheet Column Number Python Java Easy
172 Factorial Trailing Zeroes Python Java Easy
202 Happy Number Python Java Easy
204 Count Primes Python Java Easy
223 Rectangle Area Python Java Medium
224 Basic Calculator Python Java Hard
231 Power of Two Python Java Easy
233 Number of Digit One Python Java Hard
246 Strobogrammatic Number Python Java Easy
247 Strobogrammatic Number II Python Java Medium
248 Strobogrammatic Number III Python Java Hard
258 Add Digits Python Java Easy
263 Ugly Number Python Java Easy
264 Ugly Number II Python Java Medium
268 Missing Number Python Java Easy
273 Integer to English Words Python Java Hard
279 Perfect Squares Python Java Medium
296 Best Meeting Point Python Java Hard
313 Super Ugly Number Python Java Medium
319 Bulb Switcher Python Java Medium
326 Power of Three Python Java Easy
335 Self Crossing Python Java Hard
343 Integer Break Python Java Medium
356 Line Reflection Python Java Medium
357 Count Numbers with Unique Digits Python Java Medium
360 Sort Transformed Array Python Java Medium
365 Water and Jug Problem Python Java Medium
367 Valid Perfect Square Python Java Easy
368 Largest Divisible Subset Python Java Medium
372 Super Pow Python Java Medium
396 Rotate Function Python Java Medium
397 Integer Replacement Python Java Medium
400 Nth Digit Python Java Easy
413 Arithmetic Slices Python Java Medium
415 Add Strings Python Java Easy
423 Reconstruct Original Digits from English Python Java Medium
441 Arranging Coins Python Java Easy
453 Minimum Moves to Equal Array Elements Python Java Easy
462 Minimum Moves to Equal Array Elements II Python Java Medium
469 Convex Polygon Python Java Medium
483 Smallest Good Base Python Java Hard
507 Perfect Number Python Java Easy
517 Super Washing Machines Python Java Hard
523 Continuous Subarray Sum Python Java Medium
535 Encode and Decode TinyURL Python Java Medium
537 Complex Number Multiplication Python Java Medium
553 Optimal Division Python Java Medium

Two Pointers

# Title Solution Difficulty Note
3 Longest Substring Without Repeating Characters Python Java Medium
11 Container With Most Water Python Java Medium
15 3Sum Python Java Medium
16 3Sum Closest Python Java Medium
18 4Sum Python Java Medium
19 Remove Nth Node From End of List Python Java Medium
26 Remove Duplicates from Sorted Array Python Java Easy
27 Remove Element Python Java Easy
28 Implement strStr() Python Java Easy
30 Substring with Concatenation of All Words Python Java Hard
42 Trapping Rain Water Python Java Hard
61 Rotate List Python Java Medium
75 Sort Colors Python Java Medium
76 Minimum Window Substring Python Java Hard
80 Remove Duplicates from Sorted Array II Python Java Medium
86 Partition List Python Java Medium
88 Merge Sorted Array Python Java Easy
125 Valid Palindrome Python Java Easy
141 Linked List Cycle Python Java Easy
142 Linked List Cycle II Python Java Medium
159 Longest Substring with At Most Two Distinct Characters Python Java Hard
167 Two Sum II - Input array is sorted Python Java Easy
209 Minimum Size Subarray Sum Python Java Medium
234 Palindrome Linked List Python Java Easy
259 3Sum Smaller Python Java Medium
283 Move Zeroes Python Java Easy
287 Find the Duplicate Number Python Java Medium
344 Reverse String Python Java Easy
345 Reverse Vowels of a String Python Java Easy
349 Intersection of Two Arrays Python Java Easy
350 Intersection of Two Arrays II Python Java Easy
360 Sort Transformed Array Python Java Medium
487 Max Consecutive Ones II Python Java Medium
524 Longest Word in Dictionary through Deleting Python Java Medium
532 K-diff Pairs in an Array Python Java Easy
567 Permutation in String Python Java Medium

String

# Title Solution Difficulty Note
3 Longest Substring Without Repeating Characters Python Java Medium
5 Longest Palindromic Substring Python Java Medium
6 ZigZag Conversion Python Java Medium
8 String to Integer (atoi) Python Java Medium
10 Regular Expression Matching Python Java Hard
12 Integer to Roman Python Java Medium
13 Roman to Integer Python Java Easy
14 Longest Common Prefix Python Java Easy
17 Letter Combinations of a Phone Number Python Java Medium
20 Valid Parentheses Python Java Easy
22 Generate Parentheses Python Java Medium
28 Implement strStr() Python Java Easy
30 Substring with Concatenation of All Words Python Java Hard
32 Longest Valid Parentheses Python Java Hard
38 Count and Say Python Java Easy
43 Multiply Strings Python Java Medium
44 Wildcard Matching Python Java Hard
49 Group Anagrams Python Java Medium
58 Length of Last Word Python Java Easy
65 Valid Number Python Java Hard
67 Add Binary Python Java Easy
68 Text Justification Python Java Hard
71 Simplify Path Python Java Medium
72 Edit Distance Python Java Hard
76 Minimum Window Substring Python Java Hard
87 Scramble String Python Java Hard
91 Decode Ways Python Java Medium
93 Restore IP Addresses Python Java Medium
97 Interleaving String Python Java Hard
115 Distinct Subsequences Python Java Hard
125 Valid Palindrome Python Java Easy
126 Word Ladder II Python Java Hard
151 Reverse Words in a String Python Java Medium
157 Read N Characters Given Read4 Python Java Easy
158 Read N Characters Given Read4 II - Call multiple times Python Java Hard
159 Longest Substring with At Most Two Distinct Characters Python Java Hard
161 One Edit Distance Python Java Medium
165 Compare Version Numbers Python Java Medium
186 Reverse Words in a String II Python Java Medium
214 Shortest Palindrome Python Java Hard
227 Basic Calculator II Python Java Medium
249 Group Shifted Strings Python Java Medium
271 Encode and Decode Strings Python Java Medium
273 Integer to English Words Python Java Hard
293 Flip Game Python Java Easy
336 Palindrome Pairs Python Java Hard
340 Longest Substring with At Most K Distinct Characters Python Java Hard
344 Reverse String Python Java Easy
345 Reverse Vowels of a String Python Java Easy
383 Ransom Note Python Java Easy
385 Mini Parser Python Java Medium
408 Valid Word Abbreviation Python Java Easy
434 Number of Segments in a String Python Java Easy
459 Repeated Substring Pattern Python Java Easy
468 Validate IP Address Python Java Medium
520 Detect Capital Python Java Easy
521 Longest Uncommon Subsequence I Python Java Easy
522 Longest Uncommon Subsequence II Python Java Medium
527 Word Abbreviation Python Java Hard
536 Construct Binary Tree from String Python Java Medium
537 Complex Number Multiplication Python Java Medium
539 Minimum Time Difference Python Java Medium
541 Reverse String II Python Java Easy
544 Output Contest Matches Python Java Medium
551 Student Attendance Record I Python Java Easy
553 Optimal Division Python Java Medium
555 Split Concatenated Strings Python Java Medium
556 Next Greater Element III Python Java Medium
557 Reverse Words in a String III Python Java Easy
564 Find the Closest Palindrome Python Java Hard

Binary Search

# Title Solution Difficulty Note
4 Median of Two Sorted Arrays Python Java Hard
29 Divide Two Integers Python Java Medium
33 Search in Rotated Sorted Array Python Java Medium
34 Search for a Range Python Java Medium
35 Search Insert Position Python Java Easy
50 Pow(x, n) Python Java Medium
69 Sqrt(x) Python Java Easy
74 Search a 2D Matrix Python Java Medium
81 Search in Rotated Sorted Array II Python Java Medium
153 Find Minimum in Rotated Sorted Array Python Java Medium
154 Find Minimum in Rotated Sorted Array II Python Java Hard
162 Find Peak Element Python Java Medium
167 Two Sum II - Input array is sorted Python Java Easy
174 Dungeon Game Python Java Hard
209 Minimum Size Subarray Sum Python Java Medium
222 Count Complete Tree Nodes Python Java Medium
230 Kth Smallest Element in a BST Python Java Medium
240 Search a 2D Matrix II Python Java Medium
270 Closest Binary Search Tree Value Python Java Easy
275 H-Index II Python Java Medium
278 First Bad Version Python Java Easy
287 Find the Duplicate Number Python Java Medium
300 Longest Increasing Subsequence Python Java Medium
302 Smallest Rectangle Enclosing Black Pixels Python Java Hard
349 Intersection of Two Arrays Python Java Easy
350 Intersection of Two Arrays II Python Java Easy
354 Russian Doll Envelopes Python Java Hard
363 Max Sum of Rectangle No Larger Than K Python Java Hard
367 Valid Perfect Square Python Java Easy
374 Guess Number Higher or Lower Python Java Easy
378 Kth Smallest Element in a Sorted Matrix Python Java Medium
392 Is Subsequence Python Java Medium
410 Split Array Largest Sum Python Java Hard
436 Find Right Interval Python Java Medium
441 Arranging Coins Python Java Easy
454 4Sum II Python Java Medium
475 Heaters Python Java Easy
483 Smallest Good Base Python Java Hard

Divide and Conquer

# Title Solution Difficulty Note
4 Median of Two Sorted Arrays Python Java Hard
23 Merge k Sorted Lists Python Java Hard
53 Maximum Subarray Python Java Easy
169 Majority Element Python Java Easy
215 Kth Largest Element in an Array Python Java Medium
218 The Skyline Problem Python Java Hard
240 Search a 2D Matrix II Python Java Medium
241 Different Ways to Add Parentheses Python Java Medium
282 Expression Add Operators Python Java Hard
312 Burst Balloons Python Java Hard
315 Count of Smaller Numbers After Self Python Java Hard
327 Count of Range Sum Python Java Hard
493 Reverse Pairs Python Java Hard
514 Freedom Trail Python Java Hard

Dynamic Programming

# Title Solution Difficulty Note
10 Regular Expression Matching Python Java Hard
32 Longest Valid Parentheses Python Java Hard
44 Wildcard Matching Python Java Hard
53 Maximum Subarray Python Java Easy
62 Unique Paths Python Java Medium
63 Unique Paths II Python Java Medium
64 Minimum Path Sum Python Java Medium
70 Climbing Stairs Python Java Easy
72 Edit Distance Python Java Hard
85 Maximal Rectangle Python Java Hard
87 Scramble String Python Java Hard
91 Decode Ways Python Java Medium
95 Unique Binary Search Trees II Python Java Medium
96 Unique Binary Search Trees Python Java Medium
97 Interleaving String Python Java Hard
115 Distinct Subsequences Python Java Hard
120 Triangle Python Java Medium
121 Best Time to Buy and Sell Stock Python Java Easy
123 Best Time to Buy and Sell Stock III Python Java Hard
132 Palindrome Partitioning II Python Java Hard
139 Word Break Python Java Medium
140 Word Break II Python Java Hard
152 Maximum Product Subarray Python Java Medium
174 Dungeon Game Python Java Hard
188 Best Time to Buy and Sell Stock IV Python Java Hard
198 House Robber Python Java Easy
213 House Robber II Python Java Medium
221 Maximal Square Python Java Medium
256 Paint House Python Java Easy
264 Ugly Number II Python Java Medium
265 Paint House II Python Java Hard
276 Paint Fence Python Java Easy
279 Perfect Squares Python Java Medium
300 Longest Increasing Subsequence Python Java Medium
303 Range Sum Query - Immutable Python Java Easy
304 Range Sum Query 2D - Immutable Python Java Medium
309 Best Time to Buy and Sell Stock with Cooldown Python Java Medium
312 Burst Balloons Python Java Hard
321 Create Maximum Number Python Java Hard
322 Coin Change Python Java Medium
338 Counting Bits Python Java Medium
343 Integer Break Python Java Medium
351 Android Unlock Patterns Python Java Medium
354 Russian Doll Envelopes Python Java Hard
357 Count Numbers with Unique Digits Python Java Medium
361 Bomb Enemy Python Java Medium
363 Max Sum of Rectangle No Larger Than K Python Java Hard
368 Largest Divisible Subset Python Java Medium
375 Guess Number Higher or Lower II Python Java Medium
376 Wiggle Subsequence Python Java Medium
377 Combination Sum IV Python Java Medium
392 Is Subsequence Python Java Medium
403 Frog Jump Python Java Hard
410 Split Array Largest Sum Python Java Hard
413 Arithmetic Slices Python Java Medium
416 Partition Equal Subset Sum Python Java Medium
418 Sentence Screen Fitting Python Java Medium
446 Arithmetic Slices II - Subsequence Python Java Hard
464 Can I Win Python Java Medium
466 Count The Repetitions Python Java Hard
467 Unique Substrings in Wraparound String Python Java Medium
471 Encode String with Shortest Length Python Java Hard
472 Concatenated Words Python Java Hard
474 Ones and Zeroes Python Java Medium
486 Predict the Winner Python Java Medium
494 Target Sum Python Java Medium
514 Freedom Trail Python Java Hard
516 Longest Palindromic Subsequence Python Java Medium
517 Super Washing Machines Python Java Hard
523 Continuous Subarray Sum Python Java Medium
546 Remove Boxes Python Java Hard
552 Student Attendance Record II Python Java Hard
568 Maximum Vacation Days Python Java Hard

Backtracking

# Title Solution Difficulty Note
10 Regular Expression Matching Python Java Hard
17 Letter Combinations of a Phone Number Python Java Medium
22 Generate Parentheses Python Java Medium
37 Sudoku Solver Python Java Hard
39 Combination Sum Python Java Medium
40 Combination Sum II Python Java Medium
44 Wildcard Matching Python Java Hard
46 Permutations Python Java Medium
47 Permutations II Python Java Medium
51 N-Queens Python Java Hard
52 N-Queens II Python Java Hard
60 Permutation Sequence Python Java Medium
77 Combinations Python Java Medium
78 Subsets Python Java Medium
79 Word Search Python Java Medium
89 Gray Code Python Java Medium
90 Subsets II Python Java Medium
93 Restore IP Addresses Python Java Medium
126 Word Ladder II Python Java Hard
131 Palindrome Partitioning Python Java Medium
140 Word Break II Python Java Hard
211 Add and Search Word - Data structure design Python Java Medium
212 Word Search II Python Java Hard
216 Combination Sum III Python Java Medium
254 Factor Combinations Python Java Medium
267 Palindrome Permutation II Python Java Medium
291 Word Pattern II Python Java Hard
294 Flip Game II Python Java Medium
320 Generalized Abbreviation Python Java Medium
351 Android Unlock Patterns Python Java Medium
357 Count Numbers with Unique Digits Python Java Medium
401 Binary Watch Python Java Easy
411 Minimum Unique Word Abbreviation Python Java Hard
425 Word Squares Python Java Hard
526 Beautiful Arrangement Python Java Medium

Stack

# Title Solution Difficulty Note
20 Valid Parentheses Python Java Easy
42 Trapping Rain Water Python Java Hard
71 Simplify Path Python Java Medium
84 Largest Rectangle in Histogram Python Java Hard
85 Maximal Rectangle Python Java Hard
94 Binary Tree Inorder Traversal Python Java Medium
103 Binary Tree Zigzag Level Order Traversal Python Java Medium
144 Binary Tree Preorder Traversal Python Java Medium
145 Binary Tree Postorder Traversal Python Java Hard
150 Evaluate Reverse Polish Notation Python Java Medium
155 Min Stack Python Java Easy
173 Binary Search Tree Iterator Python Java Medium
224 Basic Calculator Python Java Hard
225 Implement Stack using Queues Python Java Easy
232 Implement Queue using Stacks Python Java Easy
255 Verify Preorder Sequence in Binary Search Tree Python Java Medium
272 Closest Binary Search Tree Value II Python Java Hard
316 Remove Duplicate Letters Python Java Hard
331 Verify Preorder Serialization of a Binary Tree Python Java Medium
341 Flatten Nested List Iterator Python Java Medium
385 Mini Parser Python Java Medium
394 Decode String Python Java Medium
402 Remove K Digits Python Java Medium
439 Ternary Expression Parser Python Java Medium
456 132 Pattern Python Java Medium
496 Next Greater Element I Python Java Easy
503 Next Greater Element II Python Java Medium

Heap

# Title Solution Difficulty Note
23 Merge k Sorted Lists Python Java Hard
215 Kth Largest Element in an Array Python Java Medium
218 The Skyline Problem Python Java Hard
239 Sliding Window Maximum Python Java Hard
253 Meeting Rooms II Python Java Medium
264 Ugly Number II Python Java Medium
295 Find Median from Data Stream Python Java Hard
313 Super Ugly Number Python Java Medium
347 Top K Frequent Elements Python Java Medium
355 Design Twitter Python Java Medium
358 Rearrange String k Distance Apart Python Java Hard
373 Find K Pairs with Smallest Sums Python Java Medium
378 Kth Smallest Element in a Sorted Matrix Python Java Medium
407 Trapping Rain Water II Python Java Hard
451 Sort Characters By Frequency Python Java Medium
502 IPO Python Java Hard

Tree

# Title Solution Difficulty Note
94 Binary Tree Inorder Traversal Python Java Medium
95 Unique Binary Search Trees II Python Java Medium
96 Unique Binary Search Trees Python Java Medium
98 Validate Binary Search Tree Python Java Medium
99 Recover Binary Search Tree Python Java Hard
100 Same Tree Python Java Easy
101 Symmetric Tree Python Java Easy
102 Binary Tree Level Order Traversal Python Java Medium
103 Binary Tree Zigzag Level Order Traversal Python Java Medium
104 Maximum Depth of Binary Tree Python Java Easy
105 Construct Binary Tree from Preorder and Inorder Traversal Python Java Medium
106 Construct Binary Tree from Inorder and Postorder Traversal Python Java Medium
107 Binary Tree Level Order Traversal II Python Java Easy
108 Convert Sorted Array to Binary Search Tree Python Java Easy
110 Balanced Binary Tree Python Java Easy
111 Minimum Depth of Binary Tree Python Java Easy
112 Path Sum Python Java Easy
113 Path Sum II Python Java Medium
114 Flatten Binary Tree to Linked List Python Java Medium
116 Populating Next Right Pointers in Each Node Python Java Medium
117 Populating Next Right Pointers in Each Node II Python Java Medium
124 Binary Tree Maximum Path Sum Python Java Hard
129 Sum Root to Leaf Numbers Python Java Medium
144 Binary Tree Preorder Traversal Python Java Medium
145 Binary Tree Postorder Traversal Python Java Hard
156 Binary Tree Upside Down Python Java Medium
173 Binary Search Tree Iterator Python Java Medium
199 Binary Tree Right Side View Python Java Medium
222 Count Complete Tree Nodes Python Java Medium
226 Invert Binary Tree Python Java Easy
230 Kth Smallest Element in a BST Python Java Medium
235 Lowest Common Ancestor of a Binary Search Tree Python Java Easy
236 Lowest Common Ancestor of a Binary Tree Python Java Medium
250 Count Univalue Subtrees Python Java Medium
255 Verify Preorder Sequence in Binary Search Tree Python Java Medium
257 Binary Tree Paths Python Java Easy
270 Closest Binary Search Tree Value Python Java Easy
272 Closest Binary Search Tree Value II Python Java Hard
285 Inorder Successor in BST Python Java Medium
297 Serialize and Deserialize Binary Tree Python Java Hard
298 Binary Tree Longest Consecutive Sequence Python Java Medium
333 Largest BST Subtree Python Java Medium
337 House Robber III Python Java Medium
366 Find Leaves of Binary Tree Python Java Medium
404 Sum of Left Leaves Python Java Easy
437 Path Sum III Python Java Easy
449 Serialize and Deserialize BST Python Java Medium
450 Delete Node in a BST Python Java Medium
501 Find Mode in Binary Search Tree Python Java Easy
508 Most Frequent Subtree Sum Python Java Medium
513 Find Bottom Left Tree Value Python Java Medium
515 Find Largest Value in Each Tree Row Python Java Medium
536 Construct Binary Tree from String Python Java Medium
538 Convert BST to Greater Tree Python Java Medium
543 Diameter of Binary Tree Python Java Easy
545 Boundary of Binary Tree Python Java Medium
549 Binary Tree Longest Consecutive Sequence II Python Java Medium
563 Binary Tree Tilt Python Java Easy

Depth-first Search

# Title Solution Difficulty Note
98 Validate Binary Search Tree Python Java Medium
99 Recover Binary Search Tree Python Java Hard
100 Same Tree Python Java Easy
101 Symmetric Tree Python Java Easy
104 Maximum Depth of Binary Tree Python Java Easy
105 Construct Binary Tree from Preorder and Inorder Traversal Python Java Medium
106 Construct Binary Tree from Inorder and Postorder Traversal Python Java Medium
108 Convert Sorted Array to Binary Search Tree Python Java Easy
109 Convert Sorted List to Binary Search Tree Python Java Medium
110 Balanced Binary Tree Python Java Easy
111 Minimum Depth of Binary Tree Python Java Easy
112 Path Sum Python Java Easy
113 Path Sum II Python Java Medium
114 Flatten Binary Tree to Linked List Python Java Medium
116 Populating Next Right Pointers in Each Node Python Java Medium
117 Populating Next Right Pointers in Each Node II Python Java Medium
124 Binary Tree Maximum Path Sum Python Java Hard
129 Sum Root to Leaf Numbers Python Java Medium
133 Clone Graph Python Java Medium
199 Binary Tree Right Side View Python Java Medium
200 Number of Islands Python Java Medium
207 Course Schedule Python Java Medium
210 Course Schedule II Python Java Medium
257 Binary Tree Paths Python Java Easy
261 Graph Valid Tree Python Java Medium
301 Remove Invalid Parentheses Python Java Hard
323 Number of Connected Components in an Undirected Graph Python Java Medium
329 Longest Increasing Path in a Matrix Python Java Hard
332 Reconstruct Itinerary Python Java Medium
337 House Robber III Python Java Medium
339 Nested List Weight Sum Python Java Easy
364 Nested List Weight Sum II Python Java Medium
366 Find Leaves of Binary Tree Python Java Medium
394 Decode String Python Java Medium
417 Pacific Atlantic Water Flow Python Java Medium
439 Ternary Expression Parser Python Java Medium
472 Concatenated Words Python Java Hard
473 Matchsticks to Square Python Java Medium
488 Zuma Game Python Java Hard
490 The Maze Python Java Medium
491 Increasing Subsequences Python Java Medium
494 Target Sum Python Java Medium
499 The Maze III Python Java Hard
505 The Maze II Python Java Medium
513 Find Bottom Left Tree Value Python Java Medium
514 Freedom Trail Python Java Hard
515 Find Largest Value in Each Tree Row Python Java Medium
529 Minesweeper Python Java Medium
531 Lonely Pixel I Python Java Medium
533 Lonely Pixel II Python Java Medium
542 01 Matrix Python Java Medium
546 Remove Boxes Python Java Hard
547 Friend Circles Python Java Medium

Breadth-first Search

# Title Solution Difficulty Note
101 Symmetric Tree Python Java Easy
102 Binary Tree Level Order Traversal Python Java Medium
103 Binary Tree Zigzag Level Order Traversal Python Java Medium
107 Binary Tree Level Order Traversal II Python Java Easy
111 Minimum Depth of Binary Tree Python Java Easy
126 Word Ladder II Python Java Hard
130 Surrounded Regions Python Java Medium
133 Clone Graph Python Java Medium
199 Binary Tree Right Side View Python Java Medium
200 Number of Islands Python Java Medium
207 Course Schedule Python Java Medium
210 Course Schedule II Python Java Medium
261 Graph Valid Tree Python Java Medium
279 Perfect Squares Python Java Medium
286 Walls and Gates Python Java Medium
301 Remove Invalid Parentheses Python Java Hard
310 Minimum Height Trees Python Java Medium
317 Shortest Distance from All Buildings Python Java Hard
323 Number of Connected Components in an Undirected Graph Python Java Medium
407 Trapping Rain Water II Python Java Hard
417 Pacific Atlantic Water Flow Python Java Medium
490 The Maze Python Java Medium
499 The Maze III Python Java Hard
505 The Maze II Python Java Medium
513 Find Bottom Left Tree Value Python Java Medium
515 Find Largest Value in Each Tree Row Python Java Medium
529 Minesweeper Python Java Medium
542 01 Matrix Python Java Medium

Union Find

# Title Solution Difficulty Note
128 Longest Consecutive Sequence Python Java Hard
130 Surrounded Regions Python Java Medium
200 Number of Islands Python Java Medium
261 Graph Valid Tree Python Java Medium
305 Number of Islands II Python Java Hard
323 Number of Connected Components in an Undirected Graph Python Java Medium
547 Friend Circles Python Java Medium

Graph

# Title Solution Difficulty Note
133 Clone Graph Python Java Medium
207 Course Schedule Python Java Medium
210 Course Schedule II Python Java Medium
261 Graph Valid Tree Python Java Medium
269 Alien Dictionary Python Java Hard
310 Minimum Height Trees Python Java Medium
323 Number of Connected Components in an Undirected Graph Python Java Medium
332 Reconstruct Itinerary Python Java Medium
399 Evaluate Division Python Java Medium
444 Sequence Reconstruction Python Java Medium

Design

# Title Solution Difficulty Note
146 LRU Cache Python Java Hard
155 Min Stack Python Java Easy
170 Two Sum III - Data structure design Python Java Easy
173 Binary Search Tree Iterator Python Java Medium
208 Implement Trie (Prefix Tree) Python Java Medium
211 Add and Search Word - Data structure design Python Java Medium
225 Implement Stack using Queues Python Java Easy
232 Implement Queue using Stacks Python Java Easy
244 Shortest Word Distance II Python Java Medium
251 Flatten 2D Vector Python Java Medium
281 Zigzag Iterator Python Java Medium
284 Peeking Iterator Python Java Medium
288 Unique Word Abbreviation Python Java Medium
295 Find Median from Data Stream Python Java Hard
297 Serialize and Deserialize Binary Tree Python Java Hard
341 Flatten Nested List Iterator Python Java Medium
346 Moving Average from Data Stream Python Java Easy
348 Design Tic-Tac-Toe Python Java Medium
353 Design Snake Game Python Java Medium
355 Design Twitter Python Java Medium
359 Logger Rate Limiter Python Java Easy
362 Design Hit Counter Python Java Medium
379 Design Phone Directory Python Java Medium
380 Insert Delete GetRandom O(1) Python Java Medium
381 Insert Delete GetRandom O(1) - Duplicates allowed Python Java Hard
432 All O`one Data Structure Python Java Hard
460 LFU Cache Python Java Hard

Topological Sort

# Title Solution Difficulty Note
207 Course Schedule Python Java Medium
210 Course Schedule II Python Java Medium
269 Alien Dictionary Python Java Hard
329 Longest Increasing Path in a Matrix Python Java Hard
444 Sequence Reconstruction Python Java Medium

Trie

# Title Solution Difficulty Note
208 Implement Trie (Prefix Tree) Python Java Medium
211 Add and Search Word - Data structure design Python Java Medium
212 Word Search II Python Java Hard
336 Palindrome Pairs Python Java Hard
421 Maximum XOR of Two Numbers in an Array Python Java Medium
425 Word Squares Python Java Hard
472 Concatenated Words Python Java Hard

Binary Indexed Tree

# Title Solution Difficulty Note
218 The Skyline Problem Python Java Hard
307 Range Sum Query - Mutable Python Java Medium
308 Range Sum Query 2D - Mutable Python Java Hard
315 Count of Smaller Numbers After Self Python Java Hard
493 Reverse Pairs Python Java Hard

Segment Tree

# Title Solution Difficulty Note
218 The Skyline Problem Python Java Hard
307 Range Sum Query - Mutable Python Java Medium
308 Range Sum Query 2D - Mutable Python Java Hard
315 Count of Smaller Numbers After Self Python Java Hard
493 Reverse Pairs Python Java Hard

Binary Search Tree

# Title Solution Difficulty Note
220 Contains Duplicate III Python Java Medium
315 Count of Smaller Numbers After Self Python Java Hard
327 Count of Range Sum Python Java Hard
352 Data Stream as Disjoint Intervals Python Java Hard
493 Reverse Pairs Python Java Hard
530 Minimum Absolute Difference in BST Python Java Easy

Recursion

# Title Solution Difficulty Note
247 Strobogrammatic Number II Python Java Medium
248 Strobogrammatic Number III Python Java Hard
544 Output Contest Matches Python Java Medium

Brainteaser

# Title Solution Difficulty Note
292 Nim Game Python Java Easy
319 Bulb Switcher Python Java Medium

Memoization

# Title Solution Difficulty Note
329 Longest Increasing Path in a Matrix Python Java Hard

Queue

# Title Solution Difficulty Note
346 Moving Average from Data Stream Python Java Easy
353 Design Snake Game Python Java Medium
363 Max Sum of Rectangle No Larger Than K Python Java Hard

Minimax

# Title Solution Difficulty Note
375 Guess Number Higher or Lower II Python Java Medium
464 Can I Win Python Java Medium
486 Predict the Winner Python Java Medium

Reservoir Sampling

# Title Solution Difficulty Note
382 Linked List Random Node Python Java Medium
398 Random Pick Index Python Java Medium