Skip to content

treethree/LeetCode

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

My leetcode answers

Algorithms

Database

Shell

Reference

Bit Manipulation

# Title Solution Time Space Difficulty Tag Note
136 Single Number O(n) O(1) Easy
137 Single Number II O(n) O(1) Medium
190 Reverse Bits Python O(1) O(1) Easy Apple
191 Number of 1 Bits Python O(1) O(1) Easy Apple
201 Bitwise AND of Numbers Range O(1) O(1) Medium
231 Power of Two Python O(1) O(1) Easy LintCode
260 Single Number III O(n) O(1) Medium
268 Missing Number Python O(n) O(1) Medium LintCode
318 Maximum Product of Word Lengths O(n) ~ O(n^2) O(n) Medium Bit Manipulation, Counting Sort, Pruning
342 Power of Four Python O(1) O(1) Easy
371 Sum of Two Integers Python O(1) O(1) Easy LintCode
389 Find the Difference Python O(n) O(1) Easy
393 UTF-8 Validation Python O(n) O(1) Medium Google🔥
401 Binary Watch Python O(1) O(1) Easy Google🔥
411 Minimum Unique Word Abbreviation O(2^n) O(n) Hard 🔒
421 Maximum XOR of Two Numbers in an Array O(n) O(n) Medium
461 Hamming Distance O(1) O(1) Easy
462 Minimum Moves to Equal Array Elements II O(n) on average O(1) Medium
477 Total Hamming Distance O(n) O(1) Medium
645 Set Mismatch O(n) O(1) Easy
693 Binary Number with Alternating Bits O(1) O(1) Easy
762 Prime Number of Set Bits in Binary Representation O(1) O(1) Easy
868 Binary Gap O(1) O(1) Easy
898 Bitwise ORs of Subarrays O(n) O(1) Medium

Array

# Title Solution Time Space Difficulty Tag Note
015 3 Sum O(n^2) O(1) Medium Two Pointers
016 3 Sum Closest O(n^2) O(1) Medium Two Pointers
018 4 Sum O(n^3) O(1) Medium Two Pointers
026 Remove Duplicates from Sorted Array O(n) O(1) Easy Two Pointers
027 Remove Element O(n) O(1) Easy
031 Next Permutation O(n) O(1) Medium Google🔥 Tricky
041 First Missing Positive O(n) O(1) Hard Tricky
048 Rotate Image Python O(n^2) O(1) Medium Apple
054 Spiral Matrix O(m * n) O(1) Medium Google🔥
059 Spiral Matrix II O(n^2) O(1) Medium
066 Plus One Python O(n) O(1) Easy Google🔥
073 Set Matrix Zeroes O(m * n) O(1) Medium
080 Remove Duplicates from Sorted Array II O(n) O(1) Medium Two Pointers
118 Pascal's Triangle Python O(n^2) O(1) Easy Apple
119 Pascal's Triangle II Python O(n^2) O(1) Easy
121 Best Time to Buy and Sell Stock O(n) O(1) Easy
128 Longest Consecutive Sequence O(n) O(n) Hard Google🔥 Tricky
157 Read N Characters Given Read4 O(n) O(1) Easy 🔒
158 Read N Characters Given Read4 II - Call multiple times O(n) O(1) Hard 🔒
163 Missing Ranges Python O(n) O(1) Medium 🔒Google🔥
169 Majority Element O(n) O(1) Easy
189 Rotate Array O(n) O(1) Easy
209 Minimum Size Subarray Sum O(n) O(1) Medium Binary Search
215 Kth Largest Element in an Array Python O(n) ~ O(n^2) O(1) Medium Apple,EPI
228 Summary Ranges Python O(n) O(1) Medium Google🔥
229 Majority Element II O(n) O(1) Medium
238 Product of Array Except Self Python O(n) O(1) Medium Apple
240 Search a 2D Matrix II Python O(m + n) O(1) Medium Google🔥Apple
243 Shortest Word Distance O(n) O(1) Easy 🔒
245 Shortest Word Distance III O(n) O(1) Medium 🔒
251 Flatten 2D Vector O(1) O(1) Medium 🔒
277 Find the Celebrity O(n) O(1) Medium 🔒, EPI
289 Game of Life Python O(m * n) O(1) Medium Google🔥
293 Flip Game Python O(n * (c+1)) O(1) Easy 🔒Google🔥
296 Best Meeting Point O(m * n) O(m + n) Hard 🔒
311 Sparse Matrix Multiplication O(m * n * l) O(m * l) Medium 🔒
334 Increasing Triplet Subsequence O(n) O(1) Medium
370 Range Addition O(k + n) O(1) Medium 🔒
384 Shuffle an Array O(n) O(n) Medium EPI
396 Rotate Function O(n) O(1) Easy
412 Fizz Buzz O(n) O(1) Easy
414 Third Maximum Number Python O(n) O(1) Easy
419 Battleships in a Board O(m * n) O(1) Medium
422 Valid Word Square O(m * n) O(1) Easy 🔒Google🔥
442 Find All Duplicates in an Array O(n) O(1) Medium
448 Find All Numbers Disappeared in an Array O(n) O(1) Easy
531 Lonely Pixel I O(m * n) O(m + n) Medium 🔒
533 Lonely Pixel II O(m * n) O(m * n) Medium 🔒
565 Array Nesting Python O(n) O(1) Medium Apple
566 Reshape the Matrix O(m * n) O(m * n) Easy
581 Shortest Unsorted Continuous Subarray O(n) O(1) Easy
605 Can Place Flowers O(n) O(1) Easy
624 Maximum Distance in Arrays O(n) O(1) Easy 🔒
643 Maximum Average Subarray I O(n) O(1) Easy Math
644 Maximum Average Subarray II O(n) O(n) Hard Google🔥 Math
661 Image Smoother O(m * n) O(1) Easy
665 Non-decreasing Array O(n) O(1) Easy
667 Beautiful Arrangement II O(n) O(1) Medium
670 Maximum Swap O(logn) O(logn) Medium
674 Longest Continuous Increasing Subsequence O(n) O(1) Easy
683 K Empty Slots O(n) O(n) Hard Google🔥
697 Degree of an Array O(n) O(n) Easy
713 Subarray Product Less Than K O(n) O(1) Medium
717 1-bit and 2-bit Characters O(n) O(1) Easy Greedy
723 Candy Crush O((R * C)^2) O(1) Medium
724 Find Pivot Index O(n) O(1) Easy
729 My Calendar I O(nlogn) O(n) Medium Google🔥
731 My Calendar II O(n^2) O(n) Medium Google🔥
732 My Calendar III O(n^2) O(n) Hard
747 Largest Number At Least Twice of Others O(n) O(1) Easy
755 Pour Water O(v * n) O(1) Medium
766 Toeplitz Matrix Python O(m * n) O(1) Easy Google🔥
768 Max Chunks To Make Sorted II O(nlogn) O(n) Hard
769 Max Chunks To Make Sorted O(n) O(1) Medium
778 Swim in Rising Water O(n^2) O(n^2) Hard Union Find
792 Number of Matching Subsequences O(n + w) O(1) Medium
794 Valid Tic-Tac-Toe State O(1) O(1) Medium
795 Number of Subarrays with Bounded Maximum O(n) O(1) Medium
803 Bricks Falling When Hit O(r * c) O(r * c) Hard Google🔥 Union Find
807 Max Increase to Keep City Skyline O(n^2) O(n) Medium
821 Shortest Distance to a Character O(n) O(1) Easy
830 Positions of Large Groups O(n) O(1) Easy
832 Flipping an Image O(n^2) O(1) Easy
835 Image Overlap O(n^4) O(n^2) Medium
840 Magic Squares In Grid O(m * n) O(1) Easy
842 Split Array into Fibonacci Sequence O(n^3) O(n) Medium
845 Longest Mountain in Array O(n) O(1) Medium
849 Maximize Distance to Closest Person O(n) O(1) Easy
860 Lemonade Change O(n) O(1) Easy
868 Transpose Matrix O(r * c) O(1) Easy
885 Spiral Matrix III O(max(m, n)^2) O(1) Medium
888 Fair Candy Swap O(m + n) O(m + n) Easy
896 Monotonic Array O(n) O(1) Easy
905 Sort Array By Parity O(n) O(1) Easy
909 Snakes and Ladders O(n^2) O(n^2) Medium
915 Partition Array into Disjoint Intervals O(n) O(n) Medium
918 Maximum Sum Circular Subarray O(n) O(1) Medium
921 Minimum Add to Make Parentheses Valid O(n) O(1) Medium
922 Sort Array By Parity II O(n) O(1) Easy
923 3Sum With Multiplicity O(n^2) O(n) Medium

String

# Title Solution Time Space Difficulty Tag Note
005 Longest Palindromic Substring O(n) O(n) Medium Manacher's Algorithm
006 ZigZag Conversion O(n) O(1) Easy
008 String to Integer (atoi) O(n) O(1) Easy
014 Longest Common Prefix O(n * k) O(1) Easy
028 Implement strStr() Python O(n + k) O(k) Easy Apple KMP Algorithm
038 Count and Say O(n * 2^n) O(2^n) Easy
043 Multiply Strings O(m * n) O(m + n) Medium
058 Length of Last Word O(n) O(1) Easy
067 Add Binary O(n) O(1) Easy
068 Text Justification O(n) O(1) Hard
125 Valid Palindrome O(n) O(1) Easy
151 Reverse Words in a String Python O(n) O(1) Medium Apple
161 One Edit Distance O(m + n) O(1) Medium 🔒
165 Compare Version Numbers Python O(n) O(1) Easy Apple
186 Reverse Words in a String II O(n) O(1) Medium 🔒
214 Shortest Palindrome O(n) O(n) Hard KMP Algorithm Manacher's Algorithm
242 Valid Anagram Python O(n) O(1) Easy LintCode
271 Encode and Decode Strings Python O(n) O(1) Medium 🔒Google🔥
273 Integer to English Words O(1) O(1) Hard
306 Addictive Number O(n^3) O(n) Medium
383 Ransom Note Python O(n) O(1) Easy Apple,EPI
405 Convert a Number to Hexadecimal Python O(n) O(1) Easy
408 Valid Word Abbreviation O(n) O(1) Easy 🔒
415 Add Strings O(n) O(1) Easy Google🔥
420 Strong Password Checker O(n) O(1) Hard
434 Number of Segments in a String O(n) O(1) Easy
443 String Compression O(n) O(1) Easy
459 Repeated Substring Pattern O(n) O(n) Easy KMP Algorithm
468 Validate IP Address O(1) O(1) Medium
482 License Key Formatting Python Java O(n) O(n) Easy Google🔥
520 Detect Capital O(l) O(1) Easy
521 Longest Uncommon Subsequence I O(min(a, b)) O(1) Easy
522 Longest Uncommon Subsequence II O(l * n^2) O(1) Medium Sort
524 Longest Word in Dictionary through Deleting Python O((d * l) * logd) O(1) Medium Google🔥 Sort
527 Word Abbreviation O(n * l) ~ O(n^2 * l^2) O(n * l) Hard 🔒
539 Minimum Time Difference O(nlogn) O(n) Medium
541 Reverse String II Python O(n) O(1) Easy
551 Student Attendance Record I O(n) O(1) Easy
556 Next Greater Element III O(1) O(1) Medium
557 Reverse Words in a String III O(n) O(1) Easy
564 Find the Closest Palindrome O(l) O(l) Hard
591 Tag Validator O(n) O(n) Hard
616 Add Bold Tag in String Python Java O(n * d * l) O(n) Medium 🔒Google🔥
647 Palindromic Substrings O(n) O(n) Medium Manacher's Algorithm
648 Replace Words O(n) O(t) Medium Trie
657 Judge Route Circle O(n) O(1) Easy
678 Valid Parenthesis String O(n) O(1) Medium
680 Valid Palindrome II O(n) O(1) Easy
681 Next Closest Time Python Java O(1) O(1) Medium Google🔥
686 Repeated String Match Python O(n + m) O(1) Easy Google🔥 Rabin-Karp Algorithm
696 Count Binary Substrings O(n) O(1) Easy
720 Longest Word in Dictionary O(n) O(t) Easy Trie
722 Remove Comments O(n) O(k) Medium
751 IP to CIDR O(n) O(1) Medium
758 Bold Words in String O(n * l) O(t) Easy 🔒, variant of Add Bold Tag in String
791 Custom Sort String O(n) O(1) Medium
796 Rotate String O(n) O(1) Easy KMP Algorithm Rabin-Karp Algorithm
804 Unique Morse Code Words O(n) O(n) Easy
806 Number of Lines To Write String O(n) O(1) Easy
809 Expressive Words O(n + s) O(l + s) Medium
816 Ambiguous Coordinates O(n^4) O(n) Medium
819 Most Common Word O(m + n) O(m + n) Easy
820 Short Encoding of Words O(n) O(t) Medium Trie
824 Goat Latin O(n + w^2) O(l) Easy
831 Masking Personal Information O(1) O(1) Medium
833 Find And Replace in String O(n + m) O(n) Medium
839 Similar String Groups O(n^2 * l) O(n) Hard Union Find
848 Shifting Letters O(n) O(1) Medium
859 Buddy Strings O(n) O(1) Easy
880 Decoded String at Index O(n) O(1) Medium
884 Uncommon Words from Two Sentences O(m + n) O(m + n) Easy
890 Find and Replace Pattern O(n * l) O(1) Medium
893 Groups of Special-Equivalent Strings O(n * l) O(n) Easy
916 Word Subsets O(m + n) O(1) Medium
917 Reverse Only Letters O(n) O(1) Easy

Linked List

# Title Solution Time Space Difficulty Tag Note
002 Add Two Numbers O(n) O(1) Medium
021 Merge Two Sorted Lists Python O(n) O(1) Easy Apple
023 Merge k Sorted Lists O(nlogk) O(1) Hard Google🔥 Heap, Divide and Conquer
024 Swap Nodes in Pairs O(n) O(1) Easy
025 Reverse Nodes in k-Group O(n) O(1) Hard
061 Rotate List O(n) O(1) Medium
082 Remove Duplicates from Sorted List II O(n) O(1) Medium
083 Remove Duplicates from Sorted List O(n) O(1) Easy
092 Reverse Linked List II O(n) O(1) Medium
138 Copy List with Random Pointer O(n) O(1) Hard
160 Intersection of Two Linked Lists O(m + n) O(1) Easy
203 Remove Linked List Elements Python O(n) O(1) Easy
206 Reverse Linked List Python O(n) O(1) Easy Apple
234 Palindrome Linked List Python O(n) O(1) Easy
237 Delete Node in a Linked List Python O(1) O(1) Easy Apple
328 Odd Even Linked List O(n) O(1) Medium
369 Plus One Linked List O(n) O(1) Medium 🔒Google🔥 Two Pointers
445 Add Two Numbers II O(m + n) O(m + n) Medium
725 Split Linked List in Parts O(n + k) O(1) Medium
817 Linked List Components O(m + n) O(m) Medium

Stack

# Title Solution Time Space Difficulty Tag Note
020 Valid Parentheses O(n) O(n) Easy Google🔥
032 Longest Valid Parentheses O(n) O(1) Hard
071 Simplify Path O(n) O(n) Medium
084 Largest Rectangle in Histogram O(n) O(n) Hard Ascending Stack, DP
085 Maximal Rectangle O(m * n) O(n) Hard EPI Ascending Stack
101 Symmetric Tree O(n) O(h) Easy
150 Evaluate Reverse Polish Notation O(n) O(n) Medium
155 Min Stack O(n) O(1) Easy Google🔥
173 Binary Search Tree Iterator O(1) O(h) Medium Google🔥
224 Basic Calculator O(n) O(n) Hard
227 Basic Calculator II O(n) O(n) Medium
232 Implement Queue using Stacks O(1), amortized O(n) Easy EPI, LintCode
255 Verify Preorder Sequence in Binary Search Tree O(n) O(1) Medium 🔒
272 Closest Binary Search Tree Value II O(h + k) O(h) Hard 🔒
331 Verify Preorder Serialization of a Binary Tree O(n) O(1) Medium
341 Flatten Nested List Iterator Python O(n) O(h) Medium 🔒Google🔥 Iterator
385 Mini Parser O(n) O(h) Medium
394 Decode String Python O(n) O(h) Medium Google🔥
439 Ternary Expression Parser O(n) O(1) Medium 🔒
456 132 Pattern O(n) O(n) Medium
636 Exclusive Time of Functions O(n) O(n) Medium
682 Baseball Game O(n) O(n) Easy
726 Number of Atoms O(n) O(n) Hard
735 Asteroid Collision O(n) O(n) Medium
736 Parse Lisp Expression O(n^2) O(n^2) Hard
739 Daily Temperatures O(n) O(n) Medium
770 Basic Calculator IV add: O(d * t)
sub: O(d * t)
mul: O(d * t^2)
eval: O(d * t)
to_list: O(d * tlogt)
O(e + d * t) Hard
772 Basic Calculator III O(n) O(n) Hard
853 Car Fleet O(nlogn) O(n) Medium
856 Score of Parentheses O(n) O(1) Medium
872 Leaf-Similar Trees O(n) O(h) Easy
895 Maximum Frequency Stack O(1) O(n) Hard Hash
901 Online Stock Span O(n) O(n) Medium

Queue

# Title Solution Time Space Difficulty Tag Note
239 Sliding Window Maximum O(n) O(k) Hard EPI, LintCode
281 Zigzag Iterator Python O(n) O(k) Medium 🔒Google🔥
346 Moving Average from Data Stream Python O(1) O(w) Easy 🔒Google🔥
862 Shortest Subarray with Sum at Least K O(n) O(n) Hard

Heap

# Title Solution Time Space Difficulty Tag Note
264 Ugly Number II O(n) O(1) Medium CTCI, LintCode BST, Heap
295 Find Median from Data Stream O(nlogn) O(n) Hard Google🔥 BST, Heap
313 Super Ugly Number O(n * k) O(n + k) Medium BST, Heap
358 Rearrange String k Distance Apart O(n) O(n) Hard 🔒 Greedy, Heap
373 Find K Pairs with Smallest Sums O(k * log(min(n, m, k))) O(min(n, m, k)) Medium
378 Kth Smallest Element in a Sorted Matrix O(k * log(min(n, m, k))) O(min(n, m, k)) Medium LintCode
407 Trapping Rain Water II O(m * n * (logm + logn)) O(m * n) Hard Google🔥
632 Smallest Range O(nlogk) O(k) Hard
846 Hand of Straights O(nlogn) O(n) Medium
855 Exam Room seat: O(logn)
leave: O(logn)
O(n) Medium BST, Hash
857 Minimum Cost to Hire K Workers O(nlogn) O(n) Hard Sort
871 Minimum Number of Refueling Stops O(nlogn) O(n) Hard Sort

Tree

# Title Solution Time Space Difficulty Tag Note
094 Binary Tree Inorder Traversal O(n) O(1) Medium Morris Traversal
099 Recover Binary Search Tree O(n) O(1) Hard Morris Traversal
144 Binary Tree Preorder Traversal O(n) O(1) Medium Morris Traversal
145 Binary Tree Postorder Traversal O(n) O(1) Hard Morris Traversal
208 Implement Trie (Prefix Tree) O(n) O(1) Medium Google🔥 Trie
211 Add and Search Word - Data structure design O(min(n, h)) O(min(n, h)) Medium Trie, DFS
226 Invert Binary Tree O(n) O(h), O(w) Easy
297 Serialize and Deserialize Binary Tree O(n) O(h) Hard Google🔥 DFS
307 Range Sum Query - Mutable ctor: O(n), update: O(logn), query: O(logn) O(n) Medium LintCode DFS, Segment Tree, BIT
308 Range Sum Query 2D - Mutable ctor: O(m * n), update: O(logm + logn), query: O(logm + logn) O(m * n) Hard 🔒Google🔥 DFS, Segment Tree, BIT
315 Count of Smaller Numbers After Self O(nlogn) O(n) Hard Google🔥 BST, BIT, Divide and Conquer
525 Contiguous Array O(n) O(n) Medium
529 Minesweeper O(m * n) O(m + n) Medium
536 Construct Binary Tree from String O(n) O(h) Medium 🔒
538 Convert BST to Greater Tree O(n) O(h) Easy
543 Diameter of Binary Tree O(n) O(h) Easy
545 Boundary of Binary Tree O(n) O(h) Medium 🔒
548 Split Array with Equal Sum O(n^2) O(n) Medium 🔒
563 Binary Tree Tilt O(n) O(n) Easy
572 Subtree of Another Tree O(m * n) O(h) Easy
606 Construct String from Binary Tree O(n) O(h) Easy
617 Merge Two Binary Trees O(n) O(h) Easy
623 Add One Row to Tree O(n) O(h) Medium
637 Average of Levels in Binary Tree O(n) O(h) Easy
652 Find Duplicate Subtrees O(n) O(n) Medium DFS, Hash
653 Two Sum IV - Input is a BST O(n) O(h) Easy Two Pointers
654 Maximum Binary Tree O(n) O(n) Medium LintCode Descending Stack
655 Print Binary Tree O(n) O(h) Medium
662 Maximum Width of Binary Tree O(n) O(h) Medium DFS
663 Equal Tree Partition O(n) O(n) Medium 🔒 Hash
677 Map Sum Pairs O(n) O(t) Medium Trie
684 Redundant Connection O(n) O(n) Medium Union Find
685 Redundant Connection II O(n) O(n) Hard Union Find
687 Longest Univalue Path Python O(n) O(h) Easy Google🔥
699 Falling Squares O(nlogn) O(n) Hard Segment Tree
814 Binary Tree Pruning O(n) O(h) Medium DFS
850 Rectangle Area II O(nlogn) O(n) Hard Segment Tree
863 All Nodes Distance K in Binary Tree O(n) O(n) Medium DFS + BFS
866 Smallest Subtree with all the Deepest Nodes O(n) O(h) Medium DFS
889 Construct Binary Tree from Preorder and Postorder Traversal O(n) O(h) Medium DFS, stack
897 Increasing Order Search Tree O(n) O(h) Easy DFS
919 Complete Binary Tree Inserter ctor: O(n)
insert: O(1)
get_root: O(1)
O(n) Medium

Hash Table

# Title Solution Time Space Difficulty Tag Note
001 Two Sum Python O(n) O(n) Easy Apple
003 Longest Substring Without Repeating Characters O(n) O(1) Medium
030 Substring with Concatenation of All Words O((m + n) * k) O(n * k) Hard
036 Valid Sudoku Python O(9^2) O(9) Easy Apple
049 Group Anagrams Python O(n * glogg) O(n) Medium
076 Minimum Window Substring O(n) O(k) Hard
149 Max Points on a Line O(n^2) O(n) Hard Apple
159 Longest Substring with At Most Two Distinct Characters O(n) O(1) Hard 🔒Google🔥
170 Two Sum III - Data structure design O(n) O(n) Easy 🔒
187 Repeated DNA Sequences O(n) O(n) Medium
202 Happy Number O(k) O(k) Easy
204 Count Primes O(n) O(n) Easy
205 Isomorphic Strings Python O(n) O(1) Easy
217 Contains Duplicate Python O(n) O(n) Easy
219 Contains Duplicate II Python O(n) O(n) Easy
244 Shortest Word Distance II ctor: O(n), lookup: O(a + b) O(n) Medium 🔒
246 Strobogrammatic Number Python O(n) O(1) Easy 🔒Google🔥
249 Group Shifted Strings Python O(nlogn) O(n) Easy 🔒Google🔥
266 Palindrome Permutation O(n) O(1) Easy 🔒
288 Unique Word Abbreviation Python ctor: O(n), lookup: O(1) O(k) Easy 🔒Google🔥
290 Word Pattern Python O(n) O(c) Easy variant of Isomorphic Strings
299 Bulls and Cows O(n) O(1) Easy
305 Number of Islands II Python O(klgmn) Hard Google🔥🔒 Union Find
314 Binary Tree Vertical Order Traversal O(n) O(n) Medium 🔒 BFS
323 Number of Connected Components in an Undirected Graph O(n) O(n) Medium 🔒 Union Find
325 Maximum Size Subarray Sum Equals k O(n) O(n) Medium 🔒
336 Palindrome Pairs O(n * k^2) O(n * k) Hard
340 Longest Substring with At Most K Distinct Characters O(n) O(1) Hard 🔒Google🔥
356 Line Reflection O(n) O(n) Medium 🔒 Hash, Two Pointers
387 First Unique Character in a String Python O(n) O(n) Easy
388 Longest Absolute File Path Python java O(n) O(d) Medium Google🔥 Stack
409 Longest Palindrome Python O(n) O(1) Easy
424 Longest Repeating Character Replacement O(n) O(1) Medium
438 Find All Anagrams in a String Python O(n) O(1) Easy
447 Number of Boomerangs O(n^2) O(n) Easy
454 4Sum II O(n^2) O(n^2) Medium
463 Island Perimeter Python O(m*n) O(1) Easy Google🔥
470 Implement Rand10() Using Rand7() O(1) O(1) Medium
473 Matchsticks to Square O(n * s * 2^n) O(n * (2^n + s)) Medium
523 Continuous Subarray Sum O(n) O(k) Medium
532 K-diff Pairs in an Array O(n) O(n) Easy
554 Brick Wall O(n) O(m) Medium
560 Subarray Sum Equals K O(n) O(n) Medium
561 Array Partition I O(r) O(r) Easy
575 Distribute Candies O(n) O(n) Easy
594 Longest Harmonious Subsequence O(n) O(n) Easy
599 Minimum Index Sum of Two Lists O((m + n) * l) O(m * l) Easy
609 Find Duplicate File in System O(n * l) O(n * l) Medium
721 Accounts Merge O(nlogn) O(n) Medium Union Find
734 Sentence Similarity Python O(n + p) O(p) Easy 🔒Google🔥
737 Sentence Similarity II Python O(n + p) O(p) Medium 🔒Google🔥 Union Find
748 Shortest Completing Word O(n) O(1) Easy
760 Find Anagram Mappings O(n) O(n) Easy
771 Jewels and Stones O(m + n) O(n) Easy
811 Subdomain Visit Count O(n) O(n) Easy
822 Card Flipping Game O(n) O(n) Medium
825 Friends Of Appropriate Ages O(a^2 + n) O(a) Medium
869 Reordered Power of 2 O(1) O(1) Medium
873 Length of Longest Fibonacci Subsequence O(n^2) O(n) Medium

Math

# Title Solution Time Space Difficulty Tag Note
007 Reverse Integer Python O(1) O(1) Easy Apple
009 Palindrome Number O(1) O(1) Easy
012 Integer to Roman O(n) O(1) Medium
013 Roman to Integer O(n) O(1) Easy
029 Divide Two Integers O(1) O(1) Medium
050 Pow(x, n) O(1) O(1) Medium Google🔥
060 Permutation Sequence O(n^2) O(n) Medium Cantor Ordering
065 Valid Number O(n) O(1) Hard Automata
089 Gray Code O(2^n) O(1) Medium
166 Fraction to Recurring Decimal O(logn) O(1) Medium
168 Excel Sheet Column Title Python O(logn) O(1) Easy
171 Excel Sheet Column Number O(n) O(1) Easy
172 Factorial Trailing Zeroes O(1) O(1) Easy
223 Rectangle Area O(1) O(1) Easy
233 Number of Digit One O(1) O(1) Hard CTCI, LintCode
248 Strobogrammatic Number III O(5^(n/2)) O(n) Hard 🔒
258 Add Digits Python O(1) O(1) Easy
263 Ugly Number Python O(1) O(1) Easy
292 Nim Game Python O(1) O(1) Easy LintCode
319 Bulb Switcher O(1) O(1) Medium
326 Power of Three Python O(1) O(1) Easy
335 Self Crossing O(n) O(1) Hard
338 Counting Bits O(n) O(n) Medium
343 Integer Break O(logn) O(1) Medium Tricky, DP
365 Water and Jug Problem O(logn) O(1) Medium Bézout's identity
372 Super Pow O(n) O(1) Medium
382 Linked List Random Node O(n) O(1) Medium Reservoir Sampling
386 Lexicographical Numbers O(n) O(1) Medium
390 Elimination Game O(logn) O(1) Medium
391 Perfect Rectangle O(n) O(n) Hard Google🔥
398 Random Pick Index O(n) O(1) Medium Reservoir Sampling
400 Nth Digit O(logn) O(1) Easy
413 Arithmetic Slices O(n) O(1) Medium
423 Reconstruct Original Digits from English O(n) O(1) Medium GCJ2016 - Round 1B
441 Arranging Coins O(nlogn) O(1) Easy Binary Search
453 Minimum Moves to Equal Array Elements O(n) O(1) Easy
458 Poor Pigs O(n) O(1) Easy
469 Convex Polygon O(n) O(1) Medium 🔒Google🔥
470 Implement Rand10() Using Rand7() O(1) O(1) Medium
478 Generate Random Point in a Circle O(1) O(1) Medium
497 Random Point in Non-overlapping Rectangles ctor: O(n)
pick: O(logn)
O(n) Medium
517 Super Washing Machines O(n) O(1) Hard
519 Random Flip Matrix ctor: O(1)
pick: O(1) reset: O(n)
O(n) Medium
528 Random Pick with Weight ctor: O(n)
pick: O(logn)
O(n) Medium
537 Complex Number Multiplication O(1) O(1) Medium
553 Optimal Division O(n) O(1) Medium
573 Squirrel Simulation O(n) O(1) Medium 🔒
592 Fraction Addition and Subtraction O(nlogx) O(n) Medium
593 Valid Square O(1) O(1) Medium
598 Range Addition II O(p) O(1) Easy
625 Minimum Factorization O(loga) O(1) Medium 🔒
628 Maximum Product of Three Numbers O(n) O(1) Easy
633 Sum of Square Numbers O(sqrt(c) * logc) O(1) Easy
634 Find the Derangement of An Array O(n) O(1) Medium 🔒
640 Solve the Equation O(n) O(n) Medium
651 4 Keys Keyboard O(1) O(1) Medium 🔒 Math, DP
660 Remove 9 O(logn) O(1) Hard 🔒
672 Bulb Switcher II O(1) O(1) Medium
728 Self Dividing Numbers O(n) O(1) Medium
754 Reach a Number O(logn) O(1) Medium
775 Global and Local Inversions O(n) O(1) Medium
779 K-th Symbol in Grammar O(1) O(1) Medium
780 Reaching Points O(log(max(m, n))) O(1) Hard
781 Rabbits in Forest O(n) O(n) Medium
782 Transform to Chessboard O(n^2) O(n) Hard
789 Escape The Ghosts O(n) O(1) Medium
800 Similar RGB Color O(1) O(1) Easy 🔒 Google🔥
810 Chalkboard XOR Game O(1) O(1) Hard
812 Largest Triangle Area O(n^3) O(1) Easy
829 Consecutive Numbers Sum O(sqrt(n)) O(1) Medium
836 Rectangle Overlap O(1) O(1) Easy
858 Mirror Reflection O(1) O(1) Medium
867 Prime Palindrome O(n^(1/2) * (logn + n^(1/2))) O(logn) Medium
883 Projection Area of 3D Shapes O(n^2) O(1) Easy
887 Super Egg Drop O(klogn) O(1) Hard
891 Sum of Subsequence Widths O(n) O(1) Hard
899 Orderly Queue O(n^2) O(n) Hard
902 Numbers At Most N Given Digit Set O(logn) O(logn) Hard
906 Super Palindromes O(n^0.25 * logn) O(logn) Hard
907 Sum of Subarray Minimums O(n) O(n) Medium Ascending Stack
908 Smallest Range I O(n) O(1) Easy
910 Smallest Range II O(nlogn) O(1) Medium
914 X of a Kind in a Deck of Cards O(n * (logn)^2) O(n) Easy

Sort

# Title Solution Time Space Difficulty Tag Note
056 Merge Intervals Python O(nlogn) O(1) Hard Google🔥
057 Insert Interval O(n) O(1) Hard Google🔥
075 Sort Colors O(n) O(1) Medium Tri Partition
088 Merge Sorted Array O(n) O(1) Easy
147 Insertion Sort List O(n^2) O(1) Medium
148 Sort List O(nlogn) O(logn) Medium
164 Maximum Gap O(n) O(n) Hard Tricky
179 Largest Number O(nlogn) O(1) Medium
218 The Skyline Problem O(nlogn) O(n) Hard Google🔥 Sort, BST
252 Meeting Rooms O(nlogn) O(n) Easy 🔒
253 Meeting Rooms II O(nlogn) O(n) Medium 🔒
274 H-Index Python O(n) O(n) Medium Counting Sort
280 Wiggle Sort Python Java O(n) O(1) Medium 🔒Google🔥
324 Wiggle Sort II O(n) on average O(1) Medium variant of Sort Colors Tri Partition
347 Top K Frequent Elements O(n) O(n) Medium Quick Select, Heap, Bucket Sort
406 Queue Reconstruction by Height Python O(n * sqrt(n)) O(n) Medium Google🔥 Tricky
451 Sort Characters By Frequency O(n) O(n) Medium
692 Top K Frequent Words O(n + klogk) on average O(n) Medium Quick Select, Heap, Bucket Sort

Two Pointers

# Title Solution Time Space Difficulty Tag Note
019 Remove Nth Node From End of List O(n) O(1) Easy
086 Partition List O(n) O(1) Medium
141 Linked List Cycle O(n) O(1) Easy
142 Linked List Cycle II O(n) O(1) Medium
143 Reorder List O(n) O(1) Medium
167 Two Sum II - Input array is sorted Python O(n) O(1) Medium
259 3Sum Smaller Python Java O(n^2) O(1) Medium 🔒Google🔥
283 Move Zeroes Python O(n) O(1) Easy
287 Find the Duplicate Number O(n) O(1) Hard Binary Search, Two Pointers
344 Reverse String O(n) O(1) Easy
345 Reverse Vowels of a String Python O(n) O(1) Easy Google🔥
349 Intersection of Two Arrays Python O(m + n) O(min(m, n)) Easy EPI Hash, Binary Search
350 Intersection of Two Arrays II Python O(m + n) O(1) Easy EPI Hash, Binary Search
360 Sort Transformed Array Python Java O(n) O(1) Medium 🔒Google🔥
457 Circular Array Loop O(n) O(1) Medium
567 Permutation in String O(n) O(1) Medium
611 Valid Triangle Number O(n^2) O(1) Medium
777 Swap Adjacent in LR String O(n) O(1) Medium
826 Most Profit Assigning Work O(mlogm + nlogn) O(n) Medium
828 Unique Letter String O(n) O(1) Hard
844 Backspace String Compare Python O(m + n) O(1) Easy Google🔥
876 Middle of the Linked List O(n) O(1) Easy
904 Fruit Into Baskets O(n) O(1) Medium

Recursion

# Title Solution Time Space Difficulty Tag Note
095 Unique Binary Search Trees II Python O(4^n / n^(3/2) O(4^n / n^(3/2) Medium
098 Validate Binary Search Tree O(n) O(1) Medium
100 Same Tree O(n) O(h) Easy
104 Maximum Depth of Binary Tree Python O(n) O(h) Easy Apple
105 Construct Binary Tree from Preorder and Inorder Traversal O(n) O(n) Medium
106 Construct Binary Tree from Inorder and Postorder Traversal O(n) O(n) Medium
108 Convert Sorted Array to Binary Search Tree O(n) O(logn) Medium
109 Convert Sorted List to Binary Search Tree O(n) O(logn) Medium
110 Balanced Binary Tree O(n) O(h) Easy
111 Minimum Depth of Binary Tree O(n) O(h) Easy
114 Flatten Binary Tree to Linked List O(n) O(h) Medium
116 Populating Next Right Pointers in Each Node O(n) O(1) Medium
124 Binary Tree Maximum Path Sum O(n) O(h) Hard
129 Sum Root to Leaf Numbers O(n) O(h) Medium
156 Binary Tree Upside Down O(n) O(1) Medium 🔒
241 Different Ways to Add Parentheses O(n * 4^n / n^(3/2)) O(n * 4^n / n^(3/2)) Medium
298 Binary Tree Longest Consecutive Sequence Python O(n) O(h) Medium 🔒Google🔥
327 Count of Range Sum O(nlogn) O(n) Hard Google🔥
333 Largest BST Subtree O(n) O(h) Medium 🔒
337 House Robber III O(n) O(h) Medium
395 Longest Substring with At Least K Repeating Characters O(n) O(1) Medium
404 Sum of Left Leaves O(n) O(h) Easy
437 Path Sum III Java O(n) O(h) Easy
544 Output Contest Matches O(n) O(n) Medium
549 Binary Tree Longest Consecutive Sequence II O(n) O(h) Medium 🔒
669 Trim a Binary Search Tree O(n) O(h) Easy
671 Second Minimum Node In a Binary Tree O(n) O(h) Easy
761 Special Binary String O(n^2) O(n) Hard

Binary Search

# Title Solution Time Space Difficulty Tag Note
004 Median of Two Sorted Arrays O(log(min(m, n))) O(1) Hard Google🔥Apple
033 Search in Rotated Sorted Array O(logn) O(1) Hard
034 Search for a Range O(logn) O(1) Medium
305 Search Insert Position O(logn) O(1) Medium
069 Sqrt(x) Python O(logn) O(1) Medium Apple
074 Search a 2D Matrix O(logm + logn) O(1) Medium
081 Search in Rotated Sorted Array II O(logn) O(1) Medium
153 Find Minimum in Rotated Sorted Array O(logn) O(1) Medium
154 Find Minimum in Rotated Sorted Array II O(logn) ~ O(n) O(1) Hard
162 Find Peak Element O(logn) O(1) Medium Google🔥
222 Count Complete Tree Nodes O((logn)^2) O(1) Medium
275 H-Index II O(logn) O(1) Medium Binary Search
278 First Bad Version Python O(logn) O(1) Easy LintCode
300 Longest Increasing Subsequence O(nlogn) O(n) Medium CTCI, LintCode Binary Search, DP
302 Smallest Rectangle Enclosing Black Pixels O(nlogn) O(1) Hard 🔒Google🔥
354 Russian Doll Envelopes O(nlogn) O(1) Hard Google🔥
363 Max Sum of Rectangle No Larger Than K O(min(m, n)^2 * max(m, n) * logn(max(m, n))) O(max(m, n)) Hard
367 Valid Perfect Square Python O(logn) O(1) Medium
374 Guess Number Higher or Lower O(logn) O(1) Easy
410 Split Array Largest Sum O(nlogs) O(1) Hard
436 Find Right Interval O(nlogn) O(n) Medium
475 Heaters O((m + n) * logn) O(1) Easy
540 Single Element in a Sorted Array O(logn) O(1) Medium
658 Find K Closest Elements O(logn + k) O(1) Medium Google🔥
668 Kth Smallest Number in Multiplication Table O(m * log(m * n)) O(1) Hard
719 Find K-th Smallest Pair Distance O(nlogn + nlogw) O(1) Hard
744 Find Smallest Letter Greater Than Target O(logn) O(1) Easy
774 Minimize Max Distance to Gas Station O(nlogr) O(1) Hard Google🔥
786 K-th Smallest Prime Fraction O(nlogr) O(1) Hard
793 Preimage Size of Factorial Zeroes Function O((logn)^2) O(1) Hard
852 Peak Index in a Mountain Array O(logn) O(1) Easy
864 Random Pick with Blacklist ctor: O(b)
pick: O(1)
O(b) Hard
875 Koko Eating Bananas O(nlogr) O(1) Medium
878 Nth Magical Number O(logn) O(1) Hard
894 All Possible Full Binary Trees O(n * 4^n / n^(3/2)) O(n * 4^n / n^(3/2)) Medium
911 Online Election ctor: O(n)
query : O(logn)
O(n) Medium

Binary Search Tree

# Title Solution Time Space Difficulty Tag Note
220 Contains Duplicate III O(nlogk) O(k) Medium
230 Kth Smallest Element in a BST O(max(h, k)) O(min(h, k)) Medium Google🔥
235 Lowest Common Ancestor of a Binary Search Tree Python O(h) O(1) Easy EPI
270 Closest Binary Search Tree Value O(h) O(1) Easy 🔒
285 Inorder Successor in BST O(h) O(1) Medium 🔒
352 Data Stream as Disjoint Intervals O(logn) O(n) Hard
449 Serialize and Deserialize BST O(n) O(h) Medium
450 Delete Node in a BST O(h) O(h) Medium
530 Minimum Absolute Difference in BST O(n) O(h) Easy
776 Split BST O(n) O(h) Medium 🔒
783 Minimum Distance Between BST Nodes O(n) O(h) Easy

Breadth-First Search

# Title Solution Time Space Difficulty Tag Note
102 Binary Tree Level Order Traversal Python O(n) O(n) Easy Apple
107 Binary Tree Level Order Traversal II O(n) O(n) Easy
103 Binary Tree Zigzag Level Order Traversal O(n) O(n) Medium
117 Populating Next Right Pointers in Each Node II O(n) O(1) Hard
127 Word Ladder O(n * d) O(d) Medium
130 Surrounded Regions O(m * n) O(m + n) Medium
133 Clone Graph O(n) O(n) Medium Google🔥
207 Course Schedule Python O(|V| + |E|) O(|E|) Medium Apple Topological Sort
210 Course Schedule II O(|V| + |E|) O(|E|) Medium Topological Sort
261 Graph Valid Tree O(|V| + |E|) O(|V| + |E|) Medium Google🔥
269 Alien Dictionary O(n) O(1) Hard 🔒 Topological Sort, BFS, DFS
286 Walls and Gates Python O(m * n) O(g) Medium 🔒Google🔥
310 Minimum Height Trees O(n) O(n) Medium Google🔥
317 Shortest Distance from All Buildings O(k * m * n) O(m * n) Hard 🔒Google🔥
433 Minimum Genetic Mutation O(n * b) O(b) Medium
444 Sequence Reconstruction O(n * s) O(n) Medium 🔒 Topological Sort
490 The Maze Python O(m * n) O(m * n) Medium 🔒Google🔥
542 01 Matrix O(m * n) O(m * n) Medium DP
666 Path Sum IV O(n) O(w) Medium 🔒 Topological Sort
675 Cut Off Trees for Golf Event O(t * m * n) O(m * n) Hard A* Search Algorithm
742 Closest Leaf in a Binary Tree O(n) O(n) Medium
743 Network Delay Time O(|E| * log|V|) O(|E|) Medium Dijkstra's algorithm
752 Open the Lock O(k * n^k + d) O(k * n^k + d) Medium
773 Sliding Puzzle O((m * n) * (m * n)!) O((m * n) * (m * n)!) Hard A* Search Algorithm
787 Cheapest Flights Within K Stops O(|E| * log|V|) O(|E|) Medium Dijkstra's algorithm
815 Bus Routes O(|E| + |V|) O(|E| + |V|) Hard
854 K-Similar Strings O(n * n!/(c_a!*...*c_z!)) O(n * n!/(c_a!*...*c_z!)) Hard
865 Shortest Path to Get All Keys O(k * r * c + k^3*2^k) O(k*2^k) Hard Dijkstra's algorithm
882 Reachable Nodes In Subdivided Graph O(|E| * log|V|) O(|E|) Hard Dijkstra's algorithm
886 Possible Bipartition O(|V| + |E|) O(|V| + |E|) Medium

Depth-First Search

# Title Solution Time Space Difficulty Tag Note
112 Path Sum Python O(n) O(h) Easy
113 Path Sum II O(n) O(h) Medium
199 Binary Tree Right Side View O(n) O(h) Medium
200 Number of Islands Python Java O(m * n) O(m * n) Medium Google🔥
236 Lowest Common Ancestor of a Binary Tree Python O(n) O(h) Medium Apple,EPI
247 Strobogrammatic Number II Python O(n^2 * 5^(n/2)) O(n) Medium 🔒Google🔥
250 Count Univalue Subtrees O(n) O(h) Medium 🔒
257 Binary Tree Paths Python O(n * h) O(h) Easy Google🔥Apple
282 Expression Add Operators O(4^n) O(n) Hard
301 Remove Invalid Parentheses O(C(n, c)) O(c) Hard
329 Longest Increasing Path in a Matrix Python O(m * n) O(m * n) Hard Google🔥
332 Reconstruct Itinerary O(t! / (n1! * n2! * ... nk!)) O(t) Medium
339 Nested List Weight Sum O(n) O(h) Easy 🔒
364 Nested List Weight Sum II O(n) O(h) Medium 🔒
366 Find Leaves of Binary Tree O(n) O(h) Medium 🔒
399 Evaluate Division Python O(K * E) O(E) Medium Google🔥
417 Pacific Atlantic Water Flow Python O(m * n) O(m * n) Medium Google🔥
440 K-th Smallest in Lexicographical Order O(logn) O(logn) Hard
464 Can I Win O(n!) O(n) Medium
515 Find Largest Value in Each Tree Row O(n) O(h) Medium
547 Friend Circles O(n^2) O(n) Medium Union Find
582 Kill Process O(n) O(n) Medium 🔒 DFS, BFS
638 Shopping Offers O(n * 2^n) O(n) Medium
690 Employee Importance O(n) O(h) Easy DFS, BFS
694 Number of Distinct Islands O(m * n) O(m * n) Medium 🔒
695 Max Area of Island O(m * n) O(m * n) Easy
711 Number of Distinct Islands II O((m * n) * log(m * n)) O(m * n) Hard 🔒 Hash
733 Max Area of Island O(m * n) O(m * n) Easy
749 Contain Virus O((m * n)^(4/3)) O(m * n) Hard Simulation
753 Cracking the Safe O(k^n) O(k^n) Hard Google🔥 de Bruijn sequences, Lyndon word
756 Pyramid Transition Matrix O(a^b) O(a^b) Medium
785 Is Graph Bipartite? O(|V| + |E|) O(|V|) Medium
797 All Paths From Source to Target O(p + r * n) O(n) Medium
802 Find Eventual Safe States O(|V| + |E|) O(|V|) Medium
827 Making A Large Island O(n^2) O(n^2) Hard
834 Sum of Distances in Tree O(n) O(n) Hard
841 Keys and Rooms O(n!) O(n) Medium
851 Loud and Rich O(q + r) O(q + r) Medium
913 Cat and Mouse O(n^3) O(n^2) Hard

Backtracking

# Title Solution Time Space Difficulty Tag Note
017 Letter Combinations of a Phone Number O(n * 4^n) O(n) Medium Google🔥
022 Generate Parentheses O(4^n / n^(3/2)) O(n) Medium Google🔥
037 Sudoku Solver O((9!)^9) O(1) Hard
039 Combination Sum O(k * n^k) O(k) Medium
040 Combination Sum II O(k * C(n, k)) O(k) Medium
046 Permutations O(n * n!) O(n) Medium
047 Permutations II O(n * n!) O(n) Medium
051 N-Queens O(n!) O(n) Hard
052 N-Queens-II O(n!) O(n) Hard
077 Combinations O(O(k * C(n, k))) O(k) Medium
079 Word Search O(m * n * l) O(l) Medium
093 Restore IP Addresses O(1) O(1) Medium
078 Subsets O(n * 2^n) O(1) Medium
090 Subsets II O(n * 2^n) O(1) Medium
126 Word Ladder II O(n * d) O(d) Hard
131 Palindrome Partitioning O(n^2) ~ O(2^n) O(n^2) Medium
140 Word Break II O(n * l^2 + n * r) O(n^2) Hard
212 Word Search II O(m * n * l) O(l) Hard LintCode Trie, DFS
216 Combination Sum III O(k * C(n, k)) O(k) Medium
254 Factor Combinations O(nlogn) O(logn) Medium 🔒
267 Palindrome Permutation II O(n * n!) O(n) Medium 🔒
291 Word Pattern II O(n * C(n - 1, c - 1)) O(n + c) Hard 🔒
294 Flip Game II Python O(n + c^2) O(c) Medium 🔒Google🔥 DP, Hash
320 Generalized Abbreviation Python O(n * 2^n) O(n) Medium 🔒Google
425 Word Squares O(n^2 * n!) O(n^2) Hard 🔒Google🔥
526 Beautiful Arrangement Python O(n!) O(n) Medium Google🔥
676 Implement Magic Dictionary O(n) O(d) Medium Trie, DFS
679 24 Game O(1) O(1) Hard Google🔥 DFS
698 Partition to K Equal Sum Subsets O(n * 2^n) O(2^n) Medium DFS, DP, Memoization
718 Maximum Length of Repeated Subarray O(m * n) O(min(m, n)) Medium DP, Hash, Binary Search
784 Letter Case Permutation O(n * 2^n) O(1) Easy

Dynamic Programming

# Title Solution Time Space Difficulty Tag Note
010 Regular Expression Matching O(m * n) O(n) Hard Google🔥
053 Maximum Subarray O(n) O(1) Medium
062 Unique Paths O(m * n) O(m + n) Medium
063 Unique Paths II O(m * n) O(m + n) Medium
064 Minimum Path Sum O(m * n) O(m + n) Medium
070 Climbing Stairs Python O(n) O(1) Easy Apple
072 Edit Distance O(m * n) O(m + n) Hard
087 Scramble String O(n^4) O(n^3) Hard
091 Decode Ways O(n) O(1) Medium
096 Unique Binary Search Trees Python O(n) O(1) Medium Math
097 Interleaving String O(m * n) O(m + n) Hard
115 Distinct Subsequences O(n^2) O(n) Hard
120 Triangle O(m * n) O(n) Medium
123 Best Time to Buy and Sell Stock III O(n) O(1) Hard
132 Palindrome Partitioning II O(n^2) O(n^2) Hard
139 Word Break O(n * l^2) O(n) Medium Google🔥
152 Maximum Product Subarray O(n) O(1) Medium
174 Dungeon Game O(m * n) O(m + n) Hard
188 Best Time to Buy and Sell Stock IV O(k * n) O(k) Hard
198 House Robber O(n) O(1) Easy
213 House Robber II O(n) O(1) Medium
221 Maximal Square Python O(n^2) O(n) Medium Apple,EPI
256 Paint House O(n) O(1) Medium 🔒
265 Paint House II O(n * k) O(k) Hard 🔒
276 Paint Fence Python O(n) O(1) Easy 🔒Google🔥
279 Perfect Squares Python O(n * sqrt(n)) O(n) Medium Google🔥 Hash
303 Range Sum Query - Immutable Python ctor: O(n), lookup: O(1) O(n) Easy
304 Range Sum Query 2D - Immutable ctor: O(m * n), lookup: O(1) O(m * n) Medium
309 Best Time to Buy and Sell Stock with Cooldown O(n) O(1) Medium
312 Burst Balloons O(n^3) O(n^2) Hard
322 Coin Change O(n * k) O(k) Medium
351 Android Unlock Patterns Python Java O(9^2 * 2^9) O(9 * 2^9) Medium 🔒Google🔥 Backtracking
357 Count Numbers with Unique Digits O(n) O(1) Medium Backtracking, Math
361 Bomb Enemy Python Java O(m * n) O(m * n) Medium Google🔥
368 Largest Divisible Subset O(n^2) O(n) Medium
375 Guess Number Higher or Lower II O(n^2) O(n^2) Medium
377 Combination Sum IV O(nlogn + n * t) O(t) Medium
403 Frog Jump O(n) O(n) ~ O(n^2) Hard
416 Partition Equal Subset Sum O(n * s) O(s) Medium
418 Sentence Screen Fitting Python Java O(r + n * c) O(n) Medium 🔒Google🔥
446 Arithmetic Slices II - Subsequence O(n^2) O(n * d) Hard
465 Optimal Account Balancing O(n * 2^n) O(n * 2^n) Hard 🔒Google🔥
466 Count The Repetitions O(s1 * min(s2, n1)) O(s2) Hard
467 Unique Substrings in Wraparound String O(n) O(1) Medium
471 Encode String with Shortest Length O(n^3) on average O(n^2) Medium 🔒Google🔥
472 Concatenated Words O(n * l^2) O(n * l) Medium
474 Ones and Zeroes O(s * m * n) O(m * n) Medium
486 Predict the Winner O(n^2) O(n) Medium
514 Freedom Trail O(k) ~ O(k * r^2) O(r) Hard
516 Longest Palindromic Subsequence O(n^2) O(n) Medium
546 Remove Boxes O(n^3) ~ O(n^4) O(n^3) Hard
552 Student Attendance Record II O(n) O(1) Hard
562 Longest Line of Consecutive One in Matrix O(m * n) O(n) Medium 🔒
568 Maximum Vacation Days O(n^2 * k) O(k) Hard 🔒Google🔥
576 Out of Boundary Paths O(N * m * n) O(m * n) Medium
583 Delete Operation for Two Strings O(m * n) O(n) Medium
600 Non-negative Integers without Consecutive Ones O(1) O(1) Hard
629 K Inverse Pairs Array O(n * k) O(k) Hard
639 Decode Ways II O(n) O(1) Hard
650 2 Keys Keyboard O(sqrt(n)) O(1) Medium
656 Coin Path O(n * B) O(n) Hard 🔒
664 Strange Printer O(n^3) O(n^2) Hard
673 Number of Longest Increasing Subsequence O(n^2) O(n) Medium
688 Knight Probability in Chessboard O(k * n^2) O(n^2) Medium
689 Maximum Sum of 3 Non-Overlapping Subarrays O(n) O(n) Hard
691 Stickers to Spell Word O(T * S^T) O(T * S^T) Hard Backtracking, Memoization
712 Minimum ASCII Delete Sum for Two Strings O(m * n) O(n) Medium
714 Best Time to Buy and Sell Stock with Transaction Fee O(n) O(1) Medium
727 Minimum Window Subsequence O(s * t) O(s) Hard 🔒
730 Count Different Palindromic Subsequences O(n^2) O(n) Hard
740 Delete and Earn O(n) O(1) Medium
741 Cherry Pickup O(n^3) O(n^2) Hard
746 Min Cost Climbing Stairs O(n) O(1) Easy
750 Number Of Corner Rectangles O(n * m^2) O(n * m) Medium
764 Largest Plus Sign O(n^2) O(n^2) Medium
788 Rotated Digits O(logn) O(logn) Easy Memoization
790 Domino and Tromino Tiling O(logn) O(logn) Medium Google🔥 Matrix Exponentiation
799 Champagne Tower O(n^2) O(n) Medium
801 Minimum Swaps To Make Sequences Increasing O(n) O(1) Medium
805 Split Array With Same Average O(n^4) O(n^3) Hard
808 Soup Servings O(1) O(1) Medium Memoization
813 Largest Sum of Averages O(k * n^2) O(n) Medium
818 Race Car O(nlogn) O(n) Hard
823 Binary Trees With Factors O(n^2) O(n) Medium
837 New 21 Game O(n) O(n) Medium
838 Push Dominoes O(n) O(n) Medium
847 Shortest Path Visiting All Nodes O(n *2^n) O(n * 2^n) Hard BFS
877 Stone Game O(n^2) O(n) Medium variant of Predict the Winner
879 Profitable Schemes O(n * p * g) O(p * g) Hard
903 Valid Permutations for DI Sequence O(n^2) O(n) Hard
920 Number of Music Playlists O(n * l) O(l) Hard

Greedy

# Title Solution Time Space Difficulty Tag Note
011 Container With Most Water O(n) O(1) Medium
042 Trapping Rain Water Python O(n) O(1) Hard Google🔥Apple Tricky
044 Wildcard Matching O(m + n) O(1) Hard Google🔥 Tricky
045 Jump Game II O(n) O(1) Hard
055 Jump Game O(n) O(1) Medium
122 Best Time to Buy and Sell Stock II O(n) O(1) Easy
134 Gas Station O(n) O(1) Medium
135 Candy O(n) O(n) Hard
316 Remove Duplicate Letters O(n) O(k) Hard Ascending Stack
321 Create Maximum Number O(k * (m + n + k)) ~ O(k * (m + n + k^2)) O(m + n + k^2) Hard variant of Delete Digits Greedy, DP
330 Patching Array O(s + logn) O(1) Hard
376 Wiggle Subsequence O(n) O(1) Medium
392 Is Subsequence O(n) O(1) Medium
397 Integer Replacement O(n) O(1) Medium Google🔥 Math
402 Remove K Digits O(n) O(n) Medium LintCode
435 Non-overlapping Intervals O(nlogn) O(1) Medium Line Sweep
452 Minimum Number of Arrows to Burst Balloons O(nlogn) O(1) Medium
455 Assign Cookies O(nlogn) O(1) Easy
621 Task Scheduler O(n) O(1) Medium
630 Course Schedule III O(nlogn) O(k) Hard
646 Maximum Length of Pair Chain O(nlogn) O(1) Medium similar to Non-overlapping Intervals Line Sweep
649 Dota2 Senate O(n) O(n) Medium
659 Split Array into Consecutive Subsequences O(n) O(1) Medium
738 Monotone Increasing Digits O(1) O(1) Medium
757 Set Intersection Size At Least Two O(nlogn) O(n) Hard
759 Employee Free Time O(m * logn) O(n) Hard
763 Partition Labels O(n) O(n) Medium
767 Reorganize String O(n) O(1) Medium
798 Smallest Rotation with Highest Score O(n) O(1) Hard
843 Guess the Word O(n^2) O(n) Hard Google🔥 MinMax
861 Score After Flipping Matrix O(r * c) O(1) Medium
870 Advantage Shuffle O(nlogn) O(n) Medium
881 Boats to Save People O(nlogn) O(n) Medium

Graph

# Title Solution Time Space Difficulty Tag Note
765 Couples Holding Hands O(n) O(n) Hard
924 Minimize Malware Spread O(n) O(n) Hard Union Find

Geometry

# Title Solution Time Space Difficulty Tag Note
587 Erect the Fence O(nlogn) O(n) Hard Monotone Chain
892 Surface Area of 3D Shapes O(n^2) O(1) Easy

Simulation

# Title Solution Time Space Difficulty Tag Note
874 Walking Robot Simulation O(n + k) O(k) Easy

Design

# Title Solution Time Space Difficulty Tag Note
146 LRU Cache O(1) O(k) Hard Google🔥
225 Implement Stack using Queues push: O(n), pop: O(1), top: O(1) O(n) Easy
284 Peeking Iterator Python O(1) O(1) Medium Google🔥Apple
348 Design Tic-Tac-Toe O(1) O(n^2) Medium 🔒
353 Design Snake Game O(1) O(s) Medium 🔒 Deque
355 Design Twitter O(klogu) O(t + f) Medium LintCode Heap
359 Logger Rate Limiter Python O(1), amortized O(k) Easy 🔒Google🔥 Deque
362 Design Hit Counter Python O(1), amortized O(k) Medium 🔒Google🔥 Deque
379 Design Phone Directory O(1) O(n) Medium 🔒
380 Insert Delete GetRandom O(1) O(1) O(n) Hard Google🔥
381 Insert Delete GetRandom O(1) - Duplicates allowed O(1) O(n) Hard
432 All O`one Data Structure O(1) O(n) Hard
460 LFU Cache O(1) O(k) Hard Google🔥
535 Encode and Decode TinyURL O(1) O(n) Medium
588 Design In-Memory File System ls: O(l + klogk)
mkdir: O(l)
addContentToFile: O(l + c)
readContentFromFile: O(l + c)
O(n + s) Hard 🔒
604 Design Compressed String Iterator O(1) O(1) Easy 🔒
631 Design Excel Sum Formula set: O((r * c)^2)
get: O(1)
sum: O((r * c)^2)
O(r * c) Hard 🔒
635 Design Log Storage System put: O(1)
retrieve: O(n + dlogd)
O(n) Medium 🔒
642 Design Search Autocomplete System O(p^2) O(p * t + s) Hard 🔒
715 Range Module add: O(n)
remove: O(n)
query: O(logn)
O(n) Hard
716 Max Stack push: O(logn)
pop: O(logn)
popMax: O(logn)
top: O(1)
peekMax: O(1)
O(n) Easy
745 Prefix and Suffix Search ctor: O(w * l^2)
search : O(p + s)
O(t) Hard Trie
900 RLE Iterator O(n) O(1) Medium

SQL

# Title Solution Time Space Difficulty Tag Note
175 Combine Two Tables MySQL O(m + n) O(m + n) Easy
176 Second Highest Salary MySQL O(n) O(1) Easy
177 Nth Highest Salary MySQL O(n^2) O(n) Medium
178 Rank Scores MySQL O(n^2) O(n) Medium
180 Consecutive Numbers MySQL O(n) O(n) Medium
181 Employees Earning More Than Their Managers MySQL O(n^2) O(1) Easy
182 Duplicate Emails MySQL O(n^2) O(n) Easy
183 Customers Who Never Order MySQL O(n^2) O(1) Easy
184 Department Highest Salary MySQL O(n^2) O(n) Medium
185 Department Top Three Salaries MySQL O(n^2) O(n) Hard
196 Delete Duplicate Emails MySQL O(n^2) O(n) Easy
197 Rising Temperature MySQL O(n^2) O(n) Easy
262 Trips and Users MySQL O((t * u) + tlogt) O(t) Hard

Shell Script

# Title Solution Time Space Difficulty Tag Note
192 Word Frequency Shell O(n) O(k) Medium
193 Valid Phone Numbers Shell O(n) O(1) Easy
194 Transpose File Shell O(n^2) O(n^2) Medium
195 Tenth Line Shell O(n) O(1) Easy

About

Python/Java Solutions for LeetCode Problems 🔥

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published