Skip to content

CodeEthusiasm/LeetCode

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Repository files navigation

The number of LeetCode questions is increasing every week. For more questions and solutions, you can see my LintCode repository. I'll keep updating for full summary and better solutions. Stay tuned for updates. (Notes: "📖" means you need to subscribe to LeetCode premium membership for the access to premium questions.)

Algorithms

Database

Shell

Reference

Bit Manipulation

#TitleSolutionTimeSpaceDifficultyTagNote
136Single NumberC++PythonO(n)O(1)Easy
137Single Number IIC++PythonO(n)O(1)Medium
190Reverse BitsC++PythonO(1)O(1)Easy
191Number of 1 BitsC++PythonO(1)O(1)Easy
201Bitwise AND of Numbers RangeC++PythonO(1)O(1)Medium
231Power of TwoC++PythonO(1)O(1)EasyLintCode
260Single Number IIIC++PythonO(n)O(1)Medium
268Missing NumberC++PythonO(n)O(1)MediumLintCode
318Maximum Product of Word LengthsC++PythonO(n) ~ O(n^2)O(n)MediumBit Manipulation, Counting Sort, Pruning
342Power of FourC++PythonO(1)O(1)Easy
371Sum of Two IntegersC++PythonO(1)O(1)EasyLintCode
389Find the DifferenceC++PythonO(n)O(1)Easy
393UTF-8 ValidationC++PythonO(n)O(1)Medium
401Binary WatchC++PythonO(1)O(1)Easy
411Minimum Unique Word AbbreviationC++PythonO(2^n)O(n)Hard📖
421Maximum XOR of Two Numbers in an ArrayC++PythonO(n)O(n)Medium
461Hamming DistanceC++PythonO(1)O(1)Easy
462Minimum Moves to Equal Array Elements IIC++PythonO(n) on averageO(1)Medium
477Total Hamming DistanceC++PythonO(n)O(1)Medium
645Set MismatchC++PythonO(n)O(1)Easy
693Binary Number with Alternating BitsC++PythonO(1)O(1)Easy
762Prime Number of Set Bits in Binary RepresentationC++PythonO(1)O(1)Easy
868Binary GapC++PythonO(1)O(1)Easy
898Bitwise ORs of SubarraysC++PythonO(n)O(1)Medium

Array

#TitleSolutionTimeSpaceDifficultyTagNote
0153 SumC++PythonO(n^2)O(1)MediumTwo Pointers
0163 Sum ClosestC++PythonO(n^2)O(1)MediumTwo Pointers
0184 SumC++PythonO(n^3)O(1)MediumTwo Pointers
026Remove Duplicates from Sorted ArrayC++PythonO(n)O(1)EasyTwo Pointers
027Remove ElementC++PythonO(n)O(1)Easy
031Next PermutationC++PythonO(n)O(1)MediumTricky
041First Missing PositiveC++PythonO(n)O(1)HardTricky
048Rotate ImageC++PythonO(n^2)O(1)Medium
054Spiral MatrixC++PythonO(m * n)O(1)Medium
059Spiral Matrix IIC++PythonO(n^2)O(1)Medium
066Plus OneC++PythonO(n)O(1)Easy
073Set Matrix ZeroesC++PythonO(m * n)O(1)Medium
080Remove Duplicates from Sorted Array IIC++PythonO(n)O(1)MediumTwo Pointers
118Pascal's TriangleC++PythonO(n^2)O(1)Easy
119Pascal's Triangle IIC++PythonO(n^2)O(1)Easy
121Best Time to Buy and Sell StockC++PythonO(n)O(1)Easy
128Longest Consecutive SequenceC++PythonO(n)O(n)HardTricky
157Read N Characters Given Read4C++PythonO(n)O(1)Easy📖
158Read N Characters Given Read4 II - Call multiple timesC++PythonO(n)O(1)Hard📖
163Missing RangesC++PythonO(n)O(1)Medium📖
169Majority ElementC++PythonO(n)O(1)Easy
189Rotate ArrayC++PythonO(n)O(1)Easy
209Minimum Size Subarray SumC++PythonO(n)O(1)MediumBinary Search
215Kth Largest Element in an ArrayC++PythonO(n) ~ O(n^2)O(1)MediumEPI
228Summary RangesC++PythonO(n)O(1)Medium
229Majority Element IIC++PythonO(n)O(1)Medium
238Product of Array Except SelfC++PythonO(n)O(1)MediumLintCode
240Search a 2D Matrix IIC++PythonO(m + n)O(1)MediumEPI, LintCode
243Shortest Word DistanceC++PythonO(n)O(1)Easy📖
245Shortest Word Distance IIIC++PythonO(n)O(1)Medium📖
251Flatten 2D VectorC++PythonO(1)O(1)Medium📖
277Find the CelebrityC++PythonO(n)O(1)Medium📖, EPI
289Game of LifeC++PythonO(m * n)O(1)Medium
293Flip GameC++PythonO(n * (c+1))O(1)Easy📖
296Best Meeting PointC++PythonO(m * n)O(m + n)Hard📖
311Sparse Matrix MultiplicationC++PythonO(m * n * l)O(m * l)Medium📖
334Increasing Triplet SubsequenceC++PythonO(n)O(1)Medium
370Range AdditionC++PythonO(k + n)O(1)Medium📖
384Shuffle an ArrayC++PythonO(n)O(n)MediumEPI
396Rotate FunctionC++PythonO(n)O(1)Easy
412Fizz BuzzC++PythonO(n)O(1)Easy
414Third Maximum NumberC++PythonO(n)O(1)Easy
419Battleships in a BoardC++PythonO(m * n)O(1)Medium
422Valid Word SquareC++PythonO(m * n)O(1)Easy📖
442Find All Duplicates in an ArrayC++PythonO(n)O(1)Medium
448Find All Numbers Disappeared in an ArrayC++PythonO(n)O(1)Easy
531Lonely Pixel IC++PythonO(m * n)O(m + n)Medium📖
533Lonely Pixel IIC++PythonO(m * n)O(m * n)Medium📖
565Array NestingC++PythonO(n)O(1)Medium
566Reshape the MatrixC++PythonO(m * n)O(m * n)Easy
581Shortest Unsorted Continuous SubarrayC++PythonO(n)O(1)Easy
605Can Place FlowersC++PythonO(n)O(1)Easy
624Maximum Distance in ArraysC++PythonO(n)O(1)Easy📖
643Maximum Average Subarray IC++PythonO(n)O(1)EasyMath
644Maximum Average Subarray IIC++PythonO(n)O(n)Hard📖Math
661Image SmootherC++PythonO(m * n)O(1)Easy
665Non-decreasing ArrayC++PythonO(n)O(1)Easy
667Beautiful Arrangement IIC++PythonO(n)O(1)Medium
670Maximum SwapC++PythonO(logn)O(logn)Medium
674Longest Continuous Increasing SubsequenceC++PythonO(n)O(1)Easy
683K Empty SlotsC++PythonO(n)O(n)Hard
697Degree of an ArrayC++PythonO(n)O(n)Easy
713Subarray Product Less Than KC++PythonO(n)O(1)Medium
7171-bit and 2-bit CharactersC++PythonO(n)O(1)EasyGreedy
723Candy CrushC++PythonO((R * C)^2)O(1)Medium
724Find Pivot IndexC++PythonO(n)O(1)Easy
729My Calendar IC++PythonO(nlogn)O(n)Medium
731My Calendar IIC++PythonO(n^2)O(n)Medium
732My Calendar IIIC++PythonO(n^2)O(n)Hard
747Largest Number At Least Twice of OthersC++PythonO(n)O(1)Easy
755Pour WaterC++PythonO(v * n)O(1)Medium
766Toeplitz MatrixC++PythonO(m * n)O(1)Easy
768Max Chunks To Make Sorted IIC++PythonO(nlogn)O(n)Hard
769Max Chunks To Make SortedC++PythonO(n)O(1)Medium
778Swim in Rising WaterC++PythonO(n^2)O(n^2)HardUnion Find
792Number of Matching SubsequencesC++PythonO(n + w)O(1)Medium
794Valid Tic-Tac-Toe StateC++PythonO(1)O(1)Medium
795Number of Subarrays with Bounded MaximumC++PythonO(n)O(1)Medium
803Bricks Falling When HitC++PythonO(r * c)O(r * c)HardUnion Find
807Max Increase to Keep City SkylineC++PythonO(n^2)O(n)Medium
821Shortest Distance to a CharacterC++PythonO(n)O(1)Easy
830Positions of Large GroupsC++PythonO(n)O(1)Easy
832Flipping an ImageC++PythonO(n^2)O(1)Easy
835Image OverlapC++PythonO(n^4)O(n^2)Medium
840Magic Squares In GridC++PythonO(m * n)O(1)Easy
842Split Array into Fibonacci SequenceC++PythonO(n^3)O(n)Medium
845Longest Mountain in ArrayC++PythonO(n)O(1)Medium
849Maximize Distance to Closest PersonC++PythonO(n)O(1)Easy
860Lemonade ChangeC++PythonO(n)O(1)Easy
868Transpose MatrixC++PythonO(r * c)O(1)Easy
885Spiral Matrix IIIC++PythonO(max(m, n)^2)O(1)Medium
888Fair Candy SwapC++PythonO(m + n)O(m + n)Easy
896Monotonic ArrayC++PythonO(n)O(1)Easy
905Sort Array By ParityC++PythonO(n)O(1)Easy
909Snakes and LaddersC++PythonO(n^2)O(n^2)Medium
915Partition Array into Disjoint IntervalsC++PythonO(n)O(n)Medium
918Maximum Sum Circular SubarrayC++PythonO(n)O(1)Medium

String

#TitleSolutionTimeSpaceDifficultyTagNote
005Longest Palindromic SubstringC++PythonO(n)O(n)MediumManacher's Algorithm
006ZigZag ConversionC++PythonO(n)O(1)Easy
008String to Integer (atoi)C++PythonO(n)O(1)Easy
014Longest Common PrefixC++PythonO(n * k)O(1)Easy
028Implement strStr()C++PythonO(n + k)O(k)EasyKMP Algorithm
038Count and SayC++PythonO(n * 2^n)O(2^n)Easy
043Multiply StringsC++PythonO(m * n)O(m + n)Medium
058Length of Last WordC++PythonO(n)O(1)Easy
067Add BinaryC++PythonO(n)O(1)Easy
068Text JustificationC++PythonO(n)O(1)Hard
125Valid PalindromeC++PythonO(n)O(1)Easy
151Reverse Words in a StringC++PythonO(n)O(1)Medium
161One Edit DistanceC++PythonO(m + n)O(1)Medium📖
165Compare Version NumbersC++PythonO(n)O(1)Easy
186Reverse Words in a String IIC++PythonO(n)O(1)Medium📖
214Shortest PalindromeC++PythonO(n)O(n)HardKMP AlgorithmManacher's Algorithm
242Valid AnagramC++PythonO(n)O(1)EasyLintCode
271Encode and Decode StringsC++PythonO(n)O(1)Medium📖
273Integer to English WordsC++PythonO(1)O(1)Hard
306Addictive NumberC++PythonO(n^3)O(n)Medium
383Ransom NoteC++PythonO(n)O(1)EasyEPI
405Convert a Number to HexadecimalC++PythonO(n)O(1)Easy
408Valid Word AbbreviationC++PythonO(n)O(1)Easy📖
415Add StringsC++PythonO(n)O(1)Easy
420Strong Password CheckerC++PythonO(n)O(1)Hard
434Number of Segments in a StringC++PythonO(n)O(1)Easy
443String CompressionC++PythonO(n)O(1)Easy
459Repeated Substring PatternC++PythonO(n)O(n)EasyKMP Algorithm
468Validate IP AddressC++PythonO(1)O(1)Medium
520Detect CapitalC++PythonO(l)O(1)Easy
521Longest Uncommon Subsequence IC++PythonO(min(a, b))O(1)Easy
522Longest Uncommon Subsequence IIC++PythonO(l * n^2)O(1)MediumSort
524Longest Word in Dictionary through DeletingC++PythonO((d * l) * logd)O(1)MediumSort
527Word AbbreviationC++PythonO(n * l) ~ O(n^2 * l^2)O(n * l)Hard📖
539Minimum Time DifferenceC++PythonO(nlogn)O(n)Medium
541Reverse String IIC++PythonO(n)O(1)Easy
551Student Attendance Record IC++PythonO(n)O(1)Easy
556Next Greater Element IIIC++PythonO(1)O(1)Medium
557Reverse Words in a String IIIC++PythonO(n)O(1)Easy
564Find the Closest PalindromeC++PythonO(l)O(l)Hard
591Tag ValidatorC++PythonO(n)O(n)Hard
616Add Bold Tag in StringC++PythonO(n * d * l)O(n)Medium📖
647Palindromic SubstringsC++PythonO(n)O(n)MediumManacher's Algorithm
648Replace WordsC++PythonO(n)O(t)MediumTrie
657Judge Route CircleC++PythonO(n)O(1)Easy
678Valid Parenthesis StringC++PythonO(n)O(1)Medium
680Valid Palindrome IIC++PythonO(n)O(1)Easy
681Next Closest TimeC++PythonO(1)O(1)Medium
686Repeated String MatchC++PythonO(n + m)O(1)EasyRabin-Karp Algorithm
696Count Binary SubstringsC++PythonO(n)O(1)Easy
720Longest Word in DictionaryC++PythonO(n)O(t)EasyTrie
722Remove CommentsC++PythonO(n)O(k)Medium
751IP to CIDRC++PythonO(n)O(1)Medium
758Bold Words in StringC++PythonO(n * l)O(t)Easy📖, variant of Add Bold Tag in String
791Custom Sort StringC++PythonO(n)O(1)Medium
796Rotate StringC++PythonO(n)O(1)EasyKMP AlgorithmRabin-Karp Algorithm
804Unique Morse Code WordsC++PythonO(n)O(n)Easy
806Number of Lines To Write StringC++PythonO(n)O(1)Easy
809Expressive WordsC++PythonO(n + s)O(l + s)Medium
816Ambiguous CoordinatesC++PythonO(n^4)O(n)Medium
819Most Common WordC++PythonO(m + n)O(m + n)Easy
820Short Encoding of WordsC++PythonO(n)O(t)MediumTrie
824Goat LatinC++PythonO(n + w^2)O(l)Easy
831Masking Personal InformationC++PythonO(1)O(1)Medium
833Find And Replace in StringC++PythonO(n + m)O(n)Medium
839Similar String GroupsC++PythonO(n^2 * l)O(n)HardUnion Find
848Shifting LettersC++PythonO(n)O(1)Medium
859Buddy StringsC++PythonO(n)O(1)Easy
880Decoded String at IndexC++PythonO(n)O(1)Medium
884Uncommon Words from Two SentencesC++PythonO(m + n)O(m + n)Easy
890Find and Replace PatternC++PythonO(n * l)O(1)Medium
893Groups of Special-Equivalent StringsC++PythonO(n * l)O(n)Easy
916Word SubsetsC++PythonO(m + n)O(1)Medium
917Reverse Only LettersC++PythonO(n)O(1)Easy

Linked List

#TitleSolutionTimeSpaceDifficultyTagNote
002Add Two NumbersC++PythonO(n)O(1)Medium
021Merge Two Sorted ListsC++PythonO(n)O(1)Easy
023Merge k Sorted ListsC++PythonO(nlogk)O(1)HardHeap, Divide and Conquer
024Swap Nodes in PairsC++PythonO(n)O(1)Easy
025Reverse Nodes in k-GroupC++PythonO(n)O(1)Hard
061Rotate ListC++PythonO(n)O(1)Medium
082Remove Duplicates from Sorted List IIC++PythonO(n)O(1)Medium
083Remove Duplicates from Sorted ListC++PythonO(n)O(1)Easy
092Reverse Linked List IIC++PythonO(n)O(1)Medium
138Copy List with Random PointerC++PythonO(n)O(1)Hard
160Intersection of Two Linked ListsC++PythonO(m + n)O(1)Easy
203Remove Linked List ElementsC++PythonO(n)O(1)Easy
206Reverse Linked ListC++PythonO(n)O(1)Easy
234Palindrome Linked ListC++PythonO(n)O(1)Easy
237Delete Node in a Linked ListC++PythonO(1)O(1)EasyLintCode
328Odd Even Linked ListC++PythonO(n)O(1)Medium
369Plus One Linked ListC++PythonO(n)O(1)Medium📖Two Pointers
445Add Two Numbers IIC++PythonO(m + n)O(m + n)Medium
725Split Linked List in PartsC++PythonO(n + k)O(1)Medium
817Linked List ComponentsC++PythonO(m + n)O(m)Medium

Stack

#TitleSolutionTimeSpaceDifficultyTagNote
020Valid ParenthesesC++PythonO(n)O(n)Easy
032Longest Valid ParenthesesC++PythonO(n)O(1)Hard
071Simplify PathC++PythonO(n)O(n)Medium
084Largest Rectangle in HistogramC++PythonO(n)O(n)HardAscending Stack, DP
085Maximal RectangleC++PythonO(m * n)O(n)HardEPIAscending Stack
101Symmetric TreeC++PythonO(n)O(h)Easy
150Evaluate Reverse Polish NotationC++PythonO(n)O(n)Medium
155Min StackC++PythonO(n)O(1)Easy
173Binary Search Tree IteratorC++PythonO(1)O(h)Medium
224Basic CalculatorC++PythonO(n)O(n)Hard
227Basic Calculator IIC++PythonO(n)O(n)Medium
232Implement Queue using StacksC++PythonO(1), amortizedO(n)EasyEPI, LintCode
255Verify Preorder Sequence in Binary Search TreeC++PythonO(n)O(1)Medium📖
272Closest Binary Search Tree Value IIC++PythonO(h + k)O(h)Hard📖
331Verify Preorder Serialization of a Binary TreeC++PythonO(n)O(1)Medium
341Flatten Nested List IteratorC++PythonO(n)O(h)Medium📖Iterator
385Mini ParserC++PythonO(n)O(h)Medium
394Decode StringC++PythonO(n)O(h)Medium
439Ternary Expression ParserC++PythonO(n)O(1)Medium📖
456132 PatternC++PythonO(n)O(n)Medium
636Exclusive Time of FunctionsC++PythonO(n)O(n)Medium
682Baseball GameC++PythonO(n)O(n)Easy
726Number of AtomsC++PythonO(n)O(n)Hard
735Asteroid CollisionC++PythonO(n)O(n)Medium
736Parse Lisp ExpressionC++PythonO(n^2)O(n^2)Hard
739Daily TemperaturesC++PythonO(n)O(n)Medium
770Basic Calculator IVC++Pythonadd: 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
772Basic Calculator IIIC++PythonO(n)O(n)Hard
853Car FleetC++PythonO(nlogn)O(n)Medium
856Score of ParenthesesC++PythonO(n)O(1)Medium
872Leaf-Similar TreesC++PythonO(n)O(h)Easy
895Maximum Frequency StackC++PythonO(1)O(n)HardHash
901Online Stock SpanC++PythonO(n)O(n)Medium

Queue

#TitleSolutionTimeSpaceDifficultyTagNote
239Sliding Window MaximumC++PythonO(n)O(k)HardEPI, LintCode
281Zigzag IteratorC++PythonO(n)O(k)Medium📖
346Moving Average from Data StreamC++PythonO(1)O(w)Easy📖
862Shortest Subarray with Sum at Least KC++PythonO(n)O(n)Hard

Heap

#TitleSolutionTimeSpaceDifficultyTagNote
264Ugly Number IIC++PythonO(n)O(1)MediumCTCI, LintCodeBST, Heap
295Find Median from Data StreamC++PythonO(nlogn)O(n)HardEPI, LintCodeBST, Heap
313Super Ugly NumberC++PythonO(n * k)O(n + k)MediumBST, Heap
358Rearrange String k Distance ApartC++PythonO(n)O(n)Hard📖Greedy, Heap
373Find K Pairs with Smallest SumsC++PythonO(k * log(min(n, m, k)))O(min(n, m, k))Medium
378Kth Smallest Element in a Sorted MatrixC++PythonO(k * log(min(n, m, k)))O(min(n, m, k))MediumLintCode
407Trapping Rain Water IIC++PythonO(m * n * (logm + logn))O(m * n)HardLintCode
632Smallest RangeC++PythonO(nlogk)O(k)Hard
846Hand of StraightsC++PythonO(nlogn)O(n)Medium
855Exam RoomC++Pythonseat: O(logn)
leave: O(logn)
O(n)MediumBST, Hash
857Minimum Cost to Hire K WorkersC++PythonO(nlogn)O(n)HardSort
871Minimum Number of Refueling StopsC++PythonO(nlogn)O(n)HardSort

Tree

#TitleSolutionTimeSpaceDifficultyTagNote
094Binary Tree Inorder TraversalC++PythonO(n)O(1)MediumMorris Traversal
099Recover Binary Search TreeC++PythonO(n)O(1)HardMorris Traversal
144Binary Tree Preorder TraversalC++PythonO(n)O(1)MediumMorris Traversal
145Binary Tree Postorder TraversalC++PythonO(n)O(1)HardMorris Traversal
208Implement Trie (Prefix Tree)C++PythonO(n)O(1)MediumTrie
211Add and Search Word - Data structure designC++PythonO(min(n, h))O(min(n, h))MediumTrie, DFS
226Invert Binary TreeC++PythonO(n)O(h), O(w)Easy
297Serialize and Deserialize Binary TreeC++PythonO(n)O(h)HardLintCodeDFS
307Range Sum Query - MutableC++Pythonctor: O(n), update: O(logn), query: O(logn)O(n)MediumLintCodeDFS, Segment Tree, BIT
308Range Sum Query 2D - MutableC++Pythonctor: O(m * n), update: O(logm + logn), query: O(logm + logn)O(m * n)Hard📖DFS, Segment Tree, BIT
315Count of Smaller Numbers After SelfC++PythonO(nlogn)O(n)HardLintCodeBST, BIT, Divide and Conquer
525Contiguous ArrayC++PythonO(n)O(n)Medium
529MinesweeperC++PythonO(m * n)O(m + n)Medium
536Construct Binary Tree from StringC++PythonO(n)O(h)Medium📖
538Convert BST to Greater TreeC++PythonO(n)O(h)Easy
543Diameter of Binary TreeC++PythonO(n)O(h)Easy
545Boundary of Binary TreeC++PythonO(n)O(h)Medium📖
548Split Array with Equal SumC++PythonO(n^2)O(n)Medium📖
563Binary Tree TiltC++PythonO(n)O(n)Easy
572Subtree of Another TreeC++PythonO(m * n)O(h)Easy
606Construct String from Binary TreeC++PythonO(n)O(h)Easy
617Merge Two Binary TreesC++PythonO(n)O(h)Easy
623Add One Row to TreeC++PythonO(n)O(h)Medium
637Average of Levels in Binary TreeC++PythonO(n)O(h)Easy
652Find Duplicate SubtreesC++PythonO(n)O(n)MediumDFS, Hash
653Two Sum IV - Input is a BSTC++PythonO(n)O(h)EasyTwo Pointers
654Maximum Binary TreeC++PythonO(n)O(n)MediumLintCodeDescending Stack
655Print Binary TreeC++PythonO(n)O(h)Medium
662Maximum Width of Binary TreeC++PythonO(n)O(h)MediumDFS
663Equal Tree PartitionC++PythonO(n)O(n)Medium📖Hash
677Map Sum PairsC++PythonO(n)O(t)MediumTrie
684Redundant ConnectionC++PythonO(n)O(n)MediumUnion Find
685Redundant Connection IIC++PythonO(n)O(n)HardUnion Find
687Longest Univalue PathC++PythonO(n)O(h)Easy
699Falling SquaresC++PythonO(nlogn)O(n)HardSegment Tree
814Binary Tree PruningC++PythonO(n)O(h)MediumDFS
850Rectangle Area IIC++PythonO(nlogn)O(n)HardSegment Tree
863All Nodes Distance K in Binary TreeC++PythonO(n)O(n)MediumDFS + BFS
866Smallest Subtree with all the Deepest NodesC++PythonO(n)O(h)MediumDFS
889Construct Binary Tree from Preorder and Postorder TraversalC++PythonO(n)O(h)MediumDFS, stack
897Increasing Order Search TreeC++PythonO(n)O(h)EasyDFS
919Complete Binary Tree InserterC++Pythonctor: O(n)
insert: O(1)
get_root: O(1)
O(n)Medium

Hash Table

#TitleSolutionTimeSpaceDifficultyTagNote
001Two SumC++PythonO(n)O(n)Easy
003Longest Substring Without Repeating CharactersC++PythonO(n)O(1)Medium
030Substring with Concatenation of All WordsC++PythonO((m + n) * k)O(n * k)Hard
036Valid SudokuC++PythonO(9^2)O(9)Easy
049Group AnagramsC++PythonO(n * glogg)O(n)Medium
076Minimum Window SubstringC++PythonO(n)O(k)Hard
149Max Points on a LineC++PythonO(n^2)O(n)Hard
159Longest Substring with At Most Two Distinct CharactersC++PythonO(n)O(1)Hard📖
170Two Sum III - Data structure designC++PythonO(n)O(n)Easy📖
187Repeated DNA SequencesPythonO(n)O(n)Medium
202Happy NumberC++PythonO(k)O(k)Easy
204Count PrimesC++PythonO(n)O(n)Easy
205Isomorphic StringsC++PythonO(n)O(1)Easy
217Contains DuplicateC++PythonO(n)O(n)Easy
219Contains Duplicate IIC++PythonO(n)O(n)Easy
244Shortest Word Distance IIC++Pythonctor: O(n), lookup: O(a + b)O(n)Medium📖
246Strobogrammatic NumberC++PythonO(n)O(1)Easy📖
249Group Shifted StringsC++PythonO(nlogn)O(n)Easy📖
266Palindrome PermutationC++PythonO(n)O(1)Easy📖
288Unique Word AbbreviationC++Pythonctor: O(n), lookup: O(1)O(k)Easy📖
290Word PatternC++PythonO(n)O(c)Easyvariant of Isomorphic Strings
299Bulls and CowsC++PythonO(n)O(1)Easy
305Number of Islands IIC++PythonO(k)O(k)HardLintCode, 📖Union Find
314Binary Tree Vertical Order TraversalC++PythonO(n)O(n)Medium📖BFS
323Number of Connected Components in an Undirected GraphC++PythonO(n)O(n)Medium📖Union Find
325Maximum Size Subarray Sum Equals kC++PythonO(n)O(n)Medium📖
336Palindrome PairsC++PythonO(n * k^2)O(n * k)Hard
340Longest Substring with At Most K Distinct CharactersC++PythonO(n)O(1)Hard📖
356Line ReflectionC++PythonO(n)O(n)Medium📖Hash, Two Pointers
387First Unique Character in a StringC++PythonO(n)O(n)Easy
388Longest Absolute File PathC++PythonO(n)O(d)MediumStack
409Longest PalindromeC++PythonO(n)O(1)Easy
424Longest Repeating Character ReplacementC++PythonO(n)O(1)Medium
438Find All Anagrams in a StringC++PythonO(n)O(1)Easy
447Number of BoomerangsC++PythonO(n^2)O(n)Easy
4544Sum IIC++PythonO(n^2)O(n^2)Medium
470Implement Rand10() Using Rand7()C++PythonO(1)O(1)Medium
473Matchsticks to SquareC++PythonO(n * s * 2^n)O(n * (2^n + s))Medium
523Continuous Subarray SumC++PythonO(n)O(k)Medium
532K-diff Pairs in an ArrayC++PythonO(n)O(n)Easy
554Brick WallC++PythonO(n)O(m)Medium
560Subarray Sum Equals KC++PythonO(n)O(n)Medium
561Array Partition IC++PythonO(r)O(r)Easy
575Distribute CandiesC++PythonO(n)O(n)Easy
594Longest Harmonious SubsequenceC++PythonO(n)O(n)Easy
599Minimum Index Sum of Two ListsC++PythonO((m + n) * l)O(m * l)Easy
609Find Duplicate File in SystemC++PythonO(n * l)O(n * l)Medium
721Accounts MergeC++PythonO(nlogn)O(n)MediumUnion Find
734Sentence SimilarityC++PythonO(n + p)O(p)Easy
737Sentence Similarity IIC++PythonO(n + p)O(p)MediumUnion Find
748Shortest Completing WordC++PythonO(n)O(1)Easy
760Find Anagram MappingsC++PythonO(n)O(n)Easy
771Jewels and StonesC++PythonO(m + n)O(n)Easy
811Subdomain Visit CountC++PythonO(n)O(n)Easy
822Card Flipping GameC++PythonO(n)O(n)Medium
825Friends Of Appropriate AgesC++PythonO(a^2 + n)O(a)Medium
869Reordered Power of 2C++PythonO(1)O(1)Medium
873Length of Longest Fibonacci SubsequenceC++PythonO(n^2)O(n)Medium

Math

#TitleSolutionTimeSpaceDifficultyTagNote
007Reverse IntegerC++PythonO(1)O(1)Easy
009Palindrome NumberC++PythonO(1)O(1)Easy
012Integer to RomanC++PythonO(n)O(1)Medium
013Roman to IntegerC++PythonO(n)O(1)Easy
029Divide Two IntegersC++PythonO(1)O(1)Medium
050Pow(x, n)C++PythonO(1)O(1)Medium
060Permutation SequenceC++PythonO(n^2)O(n)MediumCantor Ordering
065Valid NumberC++PythonO(n)O(1)HardAutomata
089Gray CodeC++PythonO(2^n)O(1)Medium
166Fraction to Recurring DecimalC++PythonO(logn)O(1)Medium
168Excel Sheet Column TitleC++PythonO(logn)O(1)Easy
171Excel Sheet Column NumberC++PythonO(n)O(1)Easy
172Factorial Trailing ZeroesC++PythonO(1)O(1)Easy
223Rectangle AreaC++PythonO(1)O(1)Easy
233Number of Digit OneC++PythonO(1)O(1)HardCTCI, LintCode
248Strobogrammatic Number IIIC++PythonO(5^(n/2))O(n)Hard📖
258Add DigitsC++PythonO(1)O(1)Easy
263Ugly NumberC++PythonO(1)O(1)Easy
292Nim GameC++PythonO(1)O(1)EasyLintCode
319Bulb SwitcherC++PythonO(1)O(1)Medium
326Power of ThreeC++PythonO(1)O(1)Easy
335Self CrossingC++PythonO(n)O(1)Hard
338Counting BitsC++PythonO(n)O(n)Medium
343Integer BreakC++PythonO(logn)O(1)MediumTricky, DP
365Water and Jug ProblemC++PythonO(logn)O(1)MediumBézout's identity
372Super PowC++PythonO(n)O(1)Medium
382Linked List Random NodeC++PythonO(n)O(1)MediumReservoir Sampling
386Lexicographical NumbersC++PythonO(n)O(1)Medium
390Elimination GameC++PythonO(logn)O(1)Medium
391Perfect RectangleC++PythonO(n)O(n)Hard
398Random Pick IndexC++PythonO(n)O(1)MediumReservoir Sampling
400Nth DigitC++PythonO(logn)O(1)Easy
413Arithmetic SlicesC++PythonO(n)O(1)Medium
423Reconstruct Original Digits from EnglishC++PythonO(n)O(1)MediumGCJ2016 - Round 1B
441Arranging CoinsC++PythonO(nlogn)O(1)EasyBinary Search
453Minimum Moves to Equal Array ElementsC++PythonO(n)O(1)Easy
458Poor PigsC++PythonO(n)O(1)Easy
469Convex PolygonC++PythonO(n)O(1)Medium📖
470Implement Rand10() Using Rand7()C++PythonO(1)O(1)Medium
478Generate Random Point in a CircleC++PythonO(1)O(1)Medium
497Random Point in Non-overlapping RectanglesC++Pythonctor: O(n)
pick: O(logn)
O(n)Medium
517Super Washing MachinesC++PythonO(n)O(1)Hard
519Random Flip MatrixC++Pythonctor: O(1)
pick: O(1) reset: O(n)
O(n)Medium
528Random Pick with WeightC++Pythonctor: O(n)
pick: O(logn)
O(n)Medium
537Complex Number MultiplicationC++PythonO(1)O(1)Medium
553Optimal DivisionC++PythonO(n)O(1)Medium
573Squirrel SimulationC++PythonO(n)O(1)Medium📖
592Fraction Addition and SubtractionC++PythonO(nlogx)O(n)Medium
593Valid SquareC++PythonO(1)O(1)Medium
598Range Addition IIC++PythonO(p)O(1)Easy
625Minimum FactorizationC++PythonO(loga)O(1)Medium📖
628Maximum Product of Three NumbersC++PythonO(n)O(1)Easy
633Sum of Square NumbersC++PythonO(sqrt(c) * logc)O(1)Easy
634Find the Derangement of An ArrayC++PythonO(n)O(1)Medium📖
640Solve the EquationC++PythonO(n)O(n)Medium
6514 Keys KeyboardC++PythonO(1)O(1)Medium📖Math, DP
660Remove 9C++PythonO(logn)O(1)Hard📖
672Bulb Switcher IIC++PythonO(1)O(1)Medium
728Self Dividing NumbersC++PythonO(n)O(1)Medium
754Reach a NumberC++PythonO(logn)O(1)Medium
775Global and Local InversionsC++PythonO(n)O(1)Medium
779K-th Symbol in GrammarC++PythonO(1)O(1)Medium
780Reaching PointsC++PythonO(log(max(m, n)))O(1)Hard
781Rabbits in ForestC++PythonO(n)O(n)Medium
782Transform to ChessboardC++PythonO(n^2)O(n)Hard
789Escape The GhostsC++PythonO(n)O(1)Medium
800Similar RGB ColorC++PythonO(1)O(1)Easy📖
810Chalkboard XOR GameC++PythonO(1)O(1)Hard
812Largest Triangle AreaC++PythonO(n^3)O(1)Easy
829Consecutive Numbers SumC++PythonO(sqrt(n))O(1)Medium
836Rectangle OverlapC++PythonO(1)O(1)Easy
858Mirror ReflectionC++PythonO(1)O(1)Medium
867Prime PalindromeC++PythonO(n^(1/2) * (logn + n^(1/2)))O(logn)Medium
883Projection Area of 3D ShapesC++PythonO(n^2)O(1)Easy
887Super Egg DropC++PythonO(klogn)O(1)Hard
891Sum of Subsequence WidthsC++PythonO(n)O(1)Hard
899Orderly QueueC++PythonO(n^2)O(n)Hard
902Numbers At Most N Given Digit SetC++PythonO(logn)O(logn)Hard
906Super PalindromesC++PythonO(n^0.25 * logn)O(logn)Hard
907Sum of Subarray MinimumsC++PythonO(n)O(n)MediumAscending Stack
908Smallest Range IC++PythonO(n)O(1)Easy
910Smallest Range IIC++PythonO(nlogn)O(1)Medium
914X of a Kind in a Deck of CardsC++PythonO(n * (logn)^2)O(n)Easy

Sort

#TitleSolutionTimeSpaceDifficultyTagNote
056Merge IntervalsC++PythonO(nlogn)O(1)Hard
057Insert IntervalC++PythonO(n)O(1)Hard
075Sort ColorsC++PythonO(n)O(1)MediumTri Partition
088Merge Sorted ArrayC++PythonO(n)O(1)Easy
147Insertion Sort ListC++PythonO(n^2)O(1)Medium
148Sort ListC++PythonO(nlogn)O(logn)Medium
164Maximum GapC++PythonO(n)O(n)HardTricky
179Largest NumberC++PythonO(nlogn)O(1)Medium
218The Skyline ProblemC++PythonO(nlogn)O(n)HardSort, BST
252Meeting RoomsC++PythonO(nlogn)O(n)Easy📖
253Meeting Rooms IIC++PythonO(nlogn)O(n)Medium📖
274H-IndexC++PythonO(n)O(n)MediumCounting Sort
280Wiggle SortC++PythonO(n)O(1)Medium📖
324Wiggle Sort IIC++PythonO(n) on averageO(1)Mediumvariant of Sort ColorsTri Partition
347Top K Frequent ElementsC++PythonO(n)O(n)MediumQuick Select, Heap, Bucket Sort
406Queue Reconstruction by HeightC++PythonO(n * sqrt(n))O(n)MediumTricky
451Sort Characters By FrequencyC++PythonO(n)O(n)Medium
692Top K Frequent WordsC++PythonO(n + klogk) on averageO(n)MediumQuick Select, Heap, Bucket Sort

Two Pointers

#TitleSolutionTimeSpaceDifficultyTagNote
019Remove Nth Node From End of ListC++PythonO(n)O(1)Easy
086Partition ListC++PythonO(n)O(1)Medium
141Linked List CycleC++PythonO(n)O(1)Easy
142Linked List Cycle IIC++PythonO(n)O(1)Medium
143Reorder ListC++PythonO(n)O(1)Medium
167Two Sum II - Input array is sortedC++PythonO(n)O(1)Medium
2593Sum SmallerC++PythonO(n^2)O(1)Medium📖, LintCode
283Move ZeroesC++PythonO(n)O(1)Easy
287Find the Duplicate NumberC++PythonO(n)O(1)HardBinary Search, Two Pointers
344Reverse StringC++PythonO(n)O(1)Easy
345Reverse Vowels of a StringC++PythonO(n)O(1)Easy
349Intersection of Two ArraysC++PythonO(m + n)O(min(m, n))EasyEPIHash, Binary Search
350Intersection of Two Arrays IIC++PythonO(m + n)O(1)EasyEPIHash, Binary Search
360Sort Transformed ArrayC++PythonO(n)O(1)Medium📖
457Circular Array LoopC++PythonO(n)O(1)Medium
567Permutation in StringC++PythonO(n)O(1)Medium
611Valid Triangle NumberC++PythonO(n^2)O(1)Medium
777Swap Adjacent in LR StringC++PythonO(n)O(1)Medium
826Most Profit Assigning WorkC++PythonO(mlogm + nlogn)O(n)Medium
828Unique Letter StringC++PythonO(n)O(1)Hard
844Backspace String CompareC++PythonO(m + n)O(1)Easy
876Middle of the Linked ListC++PythonO(n)O(1)Easy
904Fruit Into BasketsC++PythonO(n)O(1)Medium

Recursion

#TitleSolutionTimeSpaceDifficultyTagNote
095Unique Binary Search Trees IIC++PythonO(4^n / n^(3/2)O(4^n / n^(3/2)Medium
098Validate Binary Search TreeC++PythonO(n)O(1)Medium
100Same TreeC+PythonO(n)O(h)Easy
104Maximum Depth of Binary TreeC++PythonO(n)O(h)Easy
105Construct Binary Tree from Preorder and Inorder TraversalC++PythonO(n)O(n)Medium
106Construct Binary Tree from Inorder and Postorder TraversalC++PythonO(n)O(n)Medium
108Convert Sorted Array to Binary Search TreeC++PythonO(n)O(logn)Medium
109Convert Sorted List to Binary Search TreeC++PythonO(n)O(logn)Medium
110Balanced Binary TreePythonO(n)O(h)Easy
111Minimum Depth of Binary TreePythonO(n)O(h)Easy
114Flatten Binary Tree to Linked ListPythonO(n)O(h)Medium
116Populating Next Right Pointers in Each NodePythonO(n)O(1)Medium
124Binary Tree Maximum Path SumPythonO(n)O(h)Hard
129Sum Root to Leaf NumbersPythonO(n)O(h)Medium
156Binary Tree Upside DownPythonO(n)O(1)Medium📖
241Different Ways to Add ParenthesesC++PythonO(n * 4^n / n^(3/2))O(n * 4^n / n^(3/2))Medium
298Binary Tree Longest Consecutive SequenceC++PythonO(n)O(h)Medium📖
327Count of Range SumC++PythonO(nlogn)O(n)Hard
333Largest BST SubtreeC++PythonO(n)O(h)Medium📖
337House Robber IIIC++PythonO(n)O(h)Medium
395Longest Substring with At Least K Repeating CharactersC++PythonO(n)O(1)Medium
404Sum of Left LeavesC++PythonO(n)O(h)Easy
437Path Sum IIIC++PythonO(n)O(h)Easy
544Output Contest MatchesC++PythonO(n)O(n)Medium
549Binary Tree Longest Consecutive Sequence IIC++PythonO(n)O(h)Medium📖
669Trim a Binary Search TreeC++PythonO(n)O(h)Easy
671Second Minimum Node In a Binary TreeC++PythonO(n)O(h)Easy
761Special Binary StringC++PythonO(n^2)O(n)Hard

Binary Search

#TitleSolutionTimeSpaceDifficultyTagNote
004Median of Two Sorted ArraysC++PythonO(log(min(m, n)))O(1)Hard
033Search in Rotated Sorted ArrayC++PythonO(logn)O(1)Hard
034Search for a RangeC++PythonO(logn)O(1)Medium
305Search Insert PositionC++PythonO(logn)O(1)Medium
069Sqrt(x)C++PythonO(logn)O(1)Medium
074Search a 2D MatrixC++PythonO(logm + logn)O(1)Medium
081Search in Rotated Sorted Array IIC++PythonO(logn)O(1)Medium
153Find Minimum in Rotated Sorted ArrayC++PythonO(logn)O(1)Medium
154Find Minimum in Rotated Sorted Array IIC++PythonO(logn) ~ O(n)O(1)Hard
162Find Peak ElementC++PythonO(logn)O(1)Medium
222Count Complete Tree NodesC++PythonO((logn)^2)O(1)Medium
275H-Index IIC++PythonO(logn)O(1)MediumBinary Search
278First Bad VersionC++PythonO(logn)O(1)EasyLintCode
300Longest Increasing SubsequenceC++PythonO(nlogn)O(n)MediumCTCI, LintCodeBinary Search, DP
302Smallest Rectangle Enclosing Black PixelsC++PythonO(nlogn)O(1)Hard📖
354Russian Doll EnvelopesC++PythonO(nlogn)O(1)Hard
363Max Sum of Rectangle No Larger Than KC++PythonO(min(m, n)^2 * max(m, n) * logn(max(m, n)))O(max(m, n))Hard
367Valid Perfect SquareC++PythonO(logn)O(1)Medium
374Guess Number Higher or LowerC++PythonO(logn)O(1)Easy
410Split Array Largest SumC++PythonO(nlogs)O(1)Hard
436Find Right IntervalC++PythonO(nlogn)O(n)Medium
475HeatersC++PythonO((m + n) * logn)O(1)Easy
540Single Element in a Sorted ArrayC++PythonO(logn)O(1)Medium
658Find K Closest ElementsC++PythonO(logn + k)O(1)Medium
668Kth Smallest Number in Multiplication TableC++PythonO(m * log(m * n))O(1)Hard
719Find K-th Smallest Pair DistanceC++PythonO(nlogn + nlogw)O(1)Hard
744Find Smallest Letter Greater Than TargetC++PythonO(logn)O(1)Easy
774Minimize Max Distance to Gas StationC++PythonO(nlogr)O(1)Hard
786K-th Smallest Prime FractionC++PythonO(nlogr)O(1)Hard
793Preimage Size of Factorial Zeroes FunctionC++PythonO((logn)^2)O(1)Hard
852Peak Index in a Mountain ArrayC++PythonO(logn)O(1)Easy
864Random Pick with BlacklistC++Pythonctor: O(b)
pick: O(1)
O(b)Hard
875Koko Eating BananasC++PythonO(nlogr)O(1)Medium
878Nth Magical NumberC++PythonO(logn)O(1)Hard
894All Possible Full Binary TreesC++PythonO(n * 4^n / n^(3/2))O(n * 4^n / n^(3/2))Medium
911Online ElectionC++Pythonctor: O(n)
query : O(logn)
O(n)Medium

Binary Search Tree

#TitleSolutionTimeSpaceDifficultyTagNote
220Contains Duplicate IIIC++PythonO(nlogk)O(k)Medium
230Kth Smallest Element in a BSTC++PythonO(max(h, k))O(min(h, k))Medium
235Lowest Common Ancestor of a Binary Search TreeC++PythonO(h)O(1)EasyEPI
270Closest Binary Search Tree ValueC++PythonO(h)O(1)Easy📖
285Inorder Successor in BSTC++PythonO(h)O(1)Medium📖
352Data Stream as Disjoint IntervalsC++PythonO(logn)O(n)Hard
449Serialize and Deserialize BSTC++PythonO(n)O(h)Medium
450Delete Node in a BSTC++PythonO(h)O(h)Medium
530Minimum Absolute Difference in BSTC++PythonO(n)O(h)Easy
776Split BSTC++PythonO(n)O(h)Medium📖
783Minimum Distance Between BST NodesC++PythonO(n)O(h)Easy

Breadth-First Search

#TitleSolutionTimeSpaceDifficultyTagNote
102Binary Tree Level Order TraversalC++PythonO(n)O(n)Easy
107Binary Tree Level Order Traversal IIPythonO(n)O(n)Easy
103Binary Tree Zigzag Level Order TraversalPythonO(n)O(n)Medium
117Populating Next Right Pointers in Each Node IIPythonO(n)O(1)Hard
127Word LadderPythonO(n * d)O(d)Medium
130Surrounded RegionsC++PythonO(m * n)O(m + n)Medium
133Clone GraphPythonO(n)O(n)Medium
207Course SchedulePythonO(|V| + |E|)O(|E|)MediumTopological Sort
210Course Schedule IIPythonO(|V| + |E|)O(|E|)MediumTopological Sort
261Graph Valid TreeC++PythonO(|V| + |E|)O(|V| + |E|)Medium📖
269Alien DictionaryC++PythonO(n)O(1)Hard📖Topological Sort, BFS, DFS
286Walls and GatesC++PythonO(m * n)O(g)Medium📖
310Minimum Height TreesC++PythonO(n)O(n)Medium
317Shortest Distance from All BuildingsC++PythonO(k * m * n)O(m * n)Hard📖
433Minimum Genetic MutationC++PythonO(n * b)O(b)Medium
444Sequence ReconstructionC++PythonO(n * s)O(n)Medium📖Topological Sort
54201 MatrixC++PythonO(m * n)O(m * n)MediumDP
666Path Sum IVC++PythonO(n)O(w)Medium📖Topological Sort
675Cut Off Trees for Golf EventC++PythonO(t * m * n)O(m * n)HardA* Search Algorithm
742Closest Leaf in a Binary TreeC++PythonO(n)O(n)Medium
743Network Delay TimeC++PythonO(|E| * log|V|)O(|E|)MediumDijkstra's algorithm
752Open the LockC++PythonO(k * n^k + d)O(k * n^k + d)Medium
773Sliding PuzzleC++PythonO((m * n) * (m * n)!)O((m * n) * (m * n)!)HardA* Search Algorithm
787Cheapest Flights Within K StopsC++PythonO(|E| * log|V|)O(|E|)MediumDijkstra's algorithm
815Bus RoutesC++PythonO(|E| + |V|)O(|E| + |V|)Hard
854K-Similar StringsC++PythonO(n * n!/(c_a!*...*c_z!))O(n * n!/(c_a!*...*c_z!))Hard
865Shortest Path to Get All KeysC++PythonO(k * r * c + k^3*2^k)O(k*2^k)HardDijkstra's algorithm
882Reachable Nodes In Subdivided GraphC++PythonO(|E| * log|V|)O(|E|)HardDijkstra's algorithm
886Possible BipartitionC++PythonO(|V| + |E|)O(|V| + |E|)Medium

Depth-First Search

#TitleSolutionTimeSpaceDifficultyTagNote
112Path SumPythonO(n)O(h)Easy
113Path Sum IIPythonO(n)O(h)Medium
199Binary Tree Right Side ViewPythonO(n)O(h)Medium
200Number of IslandsPythonO(m * n)O(m * n)Medium
236Lowest Common Ancestor of a Binary TreeC++PythonO(n)O(h)MediumEPI
247Strobogrammatic Number IIC++PythonO(n^2 * 5^(n/2))O(n)Medium📖
250Count Univalue SubtreesC++PythonO(n)O(h)Medium📖
257Binary Tree PathsC++PythonO(n * h)O(h)Easy
282Expression Add OperatorsC++PythonO(4^n)O(n)Hard
301Remove Invalid ParenthesesC++PythonO(C(n, c))O(c)Hard
329Longest Increasing Path in a MatrixC++PythonO(m * n)O(m * n)Hard
332Reconstruct ItineraryC++PythonO(t! / (n1! * n2! * ... nk!))O(t)Medium
339Nested List Weight SumC++PythonO(n)O(h)Easy📖
364Nested List Weight Sum IIC++PythonO(n)O(h)Medium📖
366Find Leaves of Binary TreeC++PythonO(n)O(h)Medium📖
399Evaluate DivisionC++PythonO(q * |V|!)O(e)Medium
417Pacific Atlantic Water FlowC++PythonO(m * n)O(m * n)Medium
440K-th Smallest in Lexicographical OrderC++PythonO(logn)O(logn)Hard
464Can I WinC++PythonO(n!)O(n)Medium
515Find Largest Value in Each Tree RowC++PythonO(n)O(h)Medium
547Friend CirclesC++PythonO(n^2)O(n)MediumUnion Find
582Kill ProcessC++PythonO(n)O(n)Medium📖DFS, BFS
638Shopping OffersC++PythonO(n * 2^n)O(n)Medium
690Employee ImportanceC++PythonO(n)O(h)EasyDFS, BFS
694Number of Distinct IslandsC++PythonO(m * n)O(m * n)Medium📖
695Max Area of IslandC++PythonO(m * n)O(m * n)Easy
711Number of Distinct Islands IIC++PythonO((m * n) * log(m * n))O(m * n)Hard📖Hash
733Max Area of IslandC++PythonO(m * n)O(m * n)Easy
749Contain VirusC++PythonO((m * n)^(4/3))O(m * n)HardSimulation
753Cracking the SafeC++PythonO(k^n)O(k^n)Hardde Bruijn sequences, Lyndon word
756Pyramid Transition MatrixC++PythonO(a^b)O(a^b)Medium
785Is Graph Bipartite?C++PythonO(|V| + |E|)O(|V|)Medium
797All Paths From Source to TargetC++PythonO(p + r * n)O(n)Medium
802Find Eventual Safe StatesC++PythonO(|V| + |E|)O(|V|)Medium
827Making A Large IslandC++PythonO(n^2)O(n^2)Hard
834Sum of Distances in TreeC++PythonO(n)O(n)Hard
841Keys and RoomsC++PythonO(n!)O(n)Medium
851Loud and RichC++PythonO(q + r)O(q + r)Medium
913Cat and MouseC++PythonO(n^3)O(n^2)Hard

Backtracking

#TitleSolutionTimeSpaceDifficultyTagNote
017Letter Combinations of a Phone NumberPythonO(n * 4^n)O(n)Medium
022Generate ParenthesesPythonO(4^n / n^(3/2))O(n)Medium
037Sudoku SolverPythonO((9!)^9)O(1)Hard
039Combination SumPythonO(k * n^k)O(k)Medium
040Combination Sum IIPythonO(k * C(n, k))O(k)Medium
046PermutationsPythonO(n * n!)O(n)Medium
047Permutations IIPythonO(n * n!)O(n)Medium
051N-QueensPythonO(n!)O(n)Hard
052N-Queens-IIPythonO(n!)O(n)Hard
077CombinationsPythonO(O(k * C(n, k)))O(k)Medium
079Word SearchPythonO(m * n * l)O(l)Medium
093Restore IP AddressesPythonO(1)O(1)Medium
078SubsetsC++PythonO(n * 2^n)O(1)Medium
090Subsets IIC++PythonO(n * 2^n)O(1)Medium
126Word Ladder IIPythonO(n * d)O(d)Hard
131Palindrome PartitioningPythonO(n^2) ~ O(2^n)O(n^2)Medium
140Word Break IIC++PythonO(n * l^2 + n * r)O(n^2)Hard
212Word Search IIC++PythonO(m * n * l)O(l)HardLintCodeTrie, DFS
216Combination Sum IIIC++PythonO(k * C(n, k))O(k)Medium
254Factor CombinationsC++PythonO(nlogn)O(logn)Medium📖
267Palindrome Permutation IIC++PythonO(n * n!)O(n)Medium📖
291Word Pattern IIC++PythonO(n * C(n - 1, c - 1))O(n + c)Hard📖
294Flip Game IIC++PythonO(n + c^2)O(c)Medium📖DP, Hash
320Generalized AbbreviationC++PythonO(n * 2^n)O(n)Medium📖
425Word SquaresC++PythonO(n^2 * n!)O(n^2)Hard📖
526Beautiful ArrangementC++PythonO(n!)O(n)Medium
676Implement Magic DictionaryC++PythonO(n)O(d)MediumTrie, DFS
67924 GameC++PythonO(1)O(1)HardDFS
698Partition to K Equal Sum SubsetsC++PythonO(n * 2^n)O(2^n)MediumDFS, DP, Memoization
718Maximum Length of Repeated SubarrayC++PythonO(m * n)O(min(m, n))MediumDP, Hash, Binary Search
784Letter Case PermutationC++PythonO(n * 2^n)O(1)Easy

Dynamic Programming

#TitleSolutionTimeSpaceDifficultyTagNote
010Regular Expression MatchingPythonO(m * n)O(n)Hard
053Maximum SubarrayPythonO(n)O(1)Medium
062Unique PathsPythonO(m * n)O(m + n)Medium
063Unique Paths IIPythonO(m * n)O(m + n)Medium
064Minimum Path SumPythonO(m * n)O(m + n)Medium
070Climbing StairsPythonO(n)O(1)Easy
072Edit DistancePythonO(m * n)O(m + n)Hard
087Scramble StringPythonO(n^4)O(n^3)Hard
091Decode WaysC++PythonO(n)O(1)Medium
096Unique Binary Search TreesPythonO(n)O(1)MediumMath
097Interleaving StringPythonO(m * n)O(m + n)Hard
115Distinct SubsequencesPythonO(n^2)O(n)Hard
120TrianglePythonO(m * n)O(n)Medium
123Best Time to Buy and Sell Stock IIIPythonO(n)O(1)Hard
132Palindrome Partitioning IIPythonO(n^2)O(n^2)Hard
139Word BreakC++PythonO(n * l^2)O(n)Medium
152Maximum Product SubarrayPythonO(n)O(1)Medium
174Dungeon GamePythonO(m * n)O(m + n)Hard
188Best Time to Buy and Sell Stock IVPythonO(k * n)O(k)Hard
198House RobberPythonO(n)O(1)Easy
213House Robber IIC++PythonO(n)O(1)Medium
221Maximal SquareC++PythonO(n^2)O(n)MediumEPI
256Paint HouseC++PythonO(n)O(1)Medium📖
265Paint House IIC++PythonO(n * k)O(k)Hard📖
276Paint FenceC++PythonO(n)O(1)Easy📖
279Perfect SquaresC++PythonO(n * sqrt(n))O(n)MediumHash
303Range Sum Query - ImmutableC++Pythonctor: O(n), lookup: O(1)O(n)Easy
304Range Sum Query 2D - ImmutableC++Pythonctor: O(m * n), lookup: O(1)O(m * n)Medium
309Best Time to Buy and Sell Stock with CooldownC++PythonO(n)O(1)Medium
312Burst BalloonsC++PythonO(n^3)O(n^2)Hard
322Coin ChangeC++PythonO(n * k)O(k)Medium
351Android Unlock PatternsC++PythonO(9^2 * 2^9)O(9 * 2^9)Medium📖Backtracking
357Count Numbers with Unique DigitsC++PythonO(n)O(1)MediumBacktracking, Math
361Bomb EnemyC++PythonO(m * n)O(m * n)Medium📖
368Largest Divisible SubsetC++PythonO(n^2)O(n)Medium
375Guess Number Higher or Lower IIC++PythonO(n^2)O(n^2)Medium
377Combination Sum IVC++PythonO(nlogn + n * t)O(t)Medium
403Frog JumpC++PythonO(n)O(n) ~ O(n^2)Hard
416Partition Equal Subset SumC++PythonO(n * s)O(s)Medium
418Sentence Screen FittingC++PythonO(r + n * c)O(n)Medium📖
446Arithmetic Slices II - SubsequenceC++PythonO(n^2)O(n * d)Hard
465Optimal Account BalancingC++PythonO(n * 2^n)O(n * 2^n)Hard📖
466Count The RepetitionsC++PythonO(s1 * min(s2, n1))O(s2)Hard
467Unique Substrings in Wraparound StringC++PythonO(n)O(1)Medium
471Encode String with Shortest LengthC++PythonO(n^3) on averageO(n^2)Medium📖
472Concatenated WordsC++PythonO(n * l^2)O(n * l)Medium
474Ones and ZeroesC++PythonO(s * m * n)O(m * n)Medium
486Predict the WinnerC++PythonO(n^2)O(n)Medium
514Freedom TrailC++PythonO(k) ~ O(k * r^2)O(r)Hard
516Longest Palindromic SubsequenceC++PythonO(n^2)O(n)Medium
546Remove BoxesC++PythonO(n^3) ~ O(n^4)O(n^3)Hard
552Student Attendance Record IIC++PythonO(n)O(1)Hard
562Longest Line of Consecutive One in MatrixC++PythonO(m * n)O(n)Medium📖
568Maximum Vacation DaysC++PythonO(n^2 * k)O(k)Hard📖
576Out of Boundary PathsC++PythonO(N * m * n)O(m * n)Medium
583Delete Operation for Two StringsC++PythonO(m * n)O(n)Medium
600Non-negative Integers without Consecutive OnesC++PythonO(1)O(1)Hard
629K Inverse Pairs ArrayC++PythonO(n * k)O(k)Hard
639Decode Ways IIC++PythonO(n)O(1)Hard
6502 Keys KeyboardC++PythonO(sqrt(n))O(1)Medium
656Coin PathC++PythonO(n * B)O(n)Hard📖
664Strange PrinterC++PythonO(n^3)O(n^2)Hard
673Number of Longest Increasing SubsequenceC++PythonO(n^2)O(n)Medium
688Knight Probability in ChessboardC++PythonO(k * n^2)O(n^2)Medium
689Maximum Sum of 3 Non-Overlapping SubarraysC++PythonO(n)O(n)Hard
691Stickers to Spell WordC++PythonO(T * S^T)O(T * S^T)HardBacktracking, Memoization
712Minimum ASCII Delete Sum for Two StringsC++PythonO(m * n)O(n)Medium
714Best Time to Buy and Sell Stock with Transaction FeeC++PythonO(n)O(1)Medium
727Minimum Window SubsequenceC++PythonO(s * t)O(s)Hard📖
730Count Different Palindromic SubsequencesC++PythonO(n^2)O(n)Hard
740Delete and EarnC++PythonO(n)O(1)Medium
741Cherry PickupC++PythonO(n^3)O(n^2)Hard
746Min Cost Climbing StairsC++PythonO(n)O(1)Easy
750Number Of Corner RectanglesC++PythonO(n * m^2)O(n * m)Medium
764Largest Plus SignC++PythonO(n^2)O(n^2)Medium
788Rotated DigitsC++PythonO(logn)O(logn)EasyMemoization
790Domino and Tromino TilingC++PythonO(logn)O(logn)MediumMatrix Exponentiation
799Champagne TowerC++PythonO(n^2)O(n)Medium
801Minimum Swaps To Make Sequences IncreasingC++PythonO(n)O(1)Medium
805Split Array With Same AverageC++PythonO(n^4)O(n^3)Hard
808Soup ServingsC++PythonO(1)O(1)MediumMemoization
813Largest Sum of AveragesC++PythonO(k * n^2)O(n)Medium
818Race CarC++PythonO(nlogn)O(n)Hard
823Binary Trees With FactorsC++PythonO(n^2)O(n)Medium
837New 21 GameC++PythonO(n)O(n)Medium
838Push DominoesC++PythonO(n)O(n)Medium
847Shortest Path Visiting All NodesC++PythonO(n *2^n)O(n * 2^n)HardBFS
877Stone GameC++PythonO(n^2)O(n)Mediumvariant of Predict the Winner
879Profitable SchemesC++PythonO(n * p * g)O(p * g)Hard
903Valid Permutations for DI SequenceC++PythonO(n^2)O(n)Hard
920Number of Music PlaylistsC++PythonO(n * l)O(l)Hard

Greedy

#TitleSolutionTimeSpaceDifficultyTagNote
011Container With Most WaterC++PythonO(n)O(1)Medium
042Trapping Rain WaterC++PythonO(n)O(1)HardTricky
044Wildcard MatchingPythonO(m + n)O(1)HardTricky
045Jump Game IIPythonO(n)O(1)Hard
055Jump GamePythonO(n)O(1)Medium
122Best Time to Buy and Sell Stock IIPythonO(n)O(1)Easy
134Gas StationPythonO(n)O(1)Medium
135CandyC++PythonO(n)O(n)Hard
316Remove Duplicate LettersC++PythonO(n)O(k)HardAscending Stack
321Create Maximum NumberC++PythonO(k * (m + n + k)) ~ O(k * (m + n + k^2))O(m + n + k^2)Hardvariant of Delete DigitsGreedy, DP
330Patching ArrayC++PythonO(s + logn)O(1)Hard
376Wiggle SubsequenceC++PythonO(n)O(1)Medium
392Is SubsequenceC++PythonO(n)O(1)Medium
397Integer ReplacementC++PythonO(n)O(1)MediumMath
402Remove K DigitsC++PythonO(n)O(n)MediumLintCode
435Non-overlapping IntervalsC++PythonO(nlogn)O(1)MediumLine Sweep
452Minimum Number of Arrows to Burst BalloonsC++PythonO(nlogn)O(1)Medium
455Assign CookiesC++PythonO(nlogn)O(1)Easy
621Task SchedulerC++PythonO(n)O(1)Medium
630Course Schedule IIIC++PythonO(nlogn)O(k)Hard
646Maximum Length of Pair ChainC++PythonO(nlogn)O(1)Mediumsimilar to Non-overlapping IntervalsLine Sweep
649Dota2 SenateC++PythonO(n)O(n)Medium
659Split Array into Consecutive SubsequencesC++PythonO(n)O(1)Medium
738Monotone Increasing DigitsC++PythonO(1)O(1)Medium
757Set Intersection Size At Least TwoC++PythonO(nlogn)O(n)Hard
759Employee Free TimeC++PythonO(m * logn)O(n)Hard
763Partition LabelsC++PythonO(n)O(n)Medium
767Reorganize StringC++PythonO(n)O(1)Medium
798Smallest Rotation with Highest ScoreC++PythonO(n)O(1)Hard
843Guess the WordC++PythonO(n^2)O(n)HardMinMax
861Score After Flipping MatrixC++PythonO(r * c)O(1)Medium
870Advantage ShuffleC++PythonO(nlogn)O(n)Medium
881Boats to Save PeopleC++PythonO(nlogn)O(n)Medium

Graph

#TitleSolutionTimeSpaceDifficultyTagNote
765Couples Holding HandsC++PythonO(n)O(n)Hard

Geometry

#TitleSolutionTimeSpaceDifficultyTagNote
587Erect the FenceC++PythonO(nlogn)O(n)HardMonotone Chain
892Surface Area of 3D ShapesC++PythonO(n^2)O(1)Easy

Simulation

#TitleSolutionTimeSpaceDifficultyTagNote
874Walking Robot SimulationC++PythonO(n + k)O(k)Easy

Design

#TitleSolutionTimeSpaceDifficultyTagNote
146LRU CacheC++PythonO(1)O(k)Hard
225Implement Stack using QueuesC++Pythonpush: O(n), pop: O(1), top: O(1)O(n)Easy
284Peeking IteratorC++PythonO(1)O(1)Medium
348Design Tic-Tac-ToeC++PythonO(1)O(n^2)Medium📖
353Design Snake GameC++PythonO(1)O(s)Medium📖Deque
355Design TwitterC++PythonO(klogu)O(t + f)MediumLintCodeHeap
359Logger Rate LimiterC++PythonO(1), amortizedO(k)Easy📖Deque
362Design Hit CounterC++PythonO(1), amortizedO(k)Medium📖Deque
379Design Phone DirectoryC++PythonO(1)O(n)Medium📖
380Insert Delete GetRandom O(1)C++PythonO(1)O(n)Hard
381Insert Delete GetRandom O(1) - Duplicates allowedC++PythonO(1)O(n)Hard
432All O`one Data StructureC++PythonO(1)O(n)Hard
460LFU CacheC++PythonO(1)O(k)Hard
535Encode and Decode TinyURLC++PythonO(1)O(n)Medium
588Design In-Memory File SystemC++Pythonls: O(l + klogk)
mkdir: O(l)
addContentToFile: O(l + c)
readContentFromFile: O(l + c)
O(n + s)Hard📖
604Design Compressed String IteratorC++PythonO(1)O(1)Easy📖
631Design Excel Sum FormulaC++Pythonset: O((r * c)^2)
get: O(1)
sum: O((r * c)^2)
O(r * c)Hard📖
635Design Log Storage SystemC++Pythonput: O(1)
retrieve: O(n + dlogd)
O(n)Medium📖
642Design Search Autocomplete SystemC++PythonO(p^2)O(p * t + s)Hard📖
715Range ModuleC++Pythonadd: O(n)
remove: O(n)
query: O(logn)
O(n)Hard
716Max StackC++Pythonpush: O(logn)
pop: O(logn)
popMax: O(logn)
top: O(1)
peekMax: O(1)
O(n)Easy
745Prefix and Suffix SearchC++Pythonctor: O(w * l^2)
search : O(p + s)
O(t)HardTrie
900RLE IteratorC++PythonO(n)O(1)Medium

SQL

#TitleSolutionTimeSpaceDifficultyTagNote
175Combine Two TablesMySQLO(m + n)O(m + n)Easy
176Second Highest SalaryMySQLO(n)O(1)Easy
177Nth Highest SalaryMySQLO(n^2)O(n)Medium
178Rank ScoresMySQLO(n^2)O(n)Medium
180Consecutive NumbersMySQLO(n)O(n)Medium
181Employees Earning More Than Their ManagersMySQLO(n^2)O(1)Easy
182Duplicate EmailsMySQLO(n^2)O(n)Easy
183Customers Who Never OrderMySQLO(n^2)O(1)Easy
184Department Highest SalaryMySQLO(n^2)O(n)Medium
185Department Top Three SalariesMySQLO(n^2)O(n)Hard
196Delete Duplicate EmailsMySQLO(n^2)O(n)Easy
197Rising TemperatureMySQLO(n^2)O(n)Easy
262Trips and UsersMySQLO((t * u) + tlogt)O(t)Hard

Shell Script

#TitleSolutionTimeSpaceDifficultyTagNote
192Word FrequencyShellO(n)O(k)Medium
193Valid Phone NumbersShellO(n)O(1)Easy
194Transpose FileShellO(n^2)O(n^2)Medium
195Tenth LineShellO(n)O(1)Easy

About

📝 Python / C++ 11 Solutions of All LeetCode Questions

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python58.2%
  • C++41.3%
  • Other0.5%