Github url


by haoel

haoel /leetcode

LeetCode Problems' Solutions

13.6K Stars 4.1K Forks Last release: Not found 593 Commits 0 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:


LeetCode Algorithm

(Notes: "♥" means you need to buy a book from Leetcode)

| # | Title | Solution | Difficulty | |---| ----- | -------- | ---------- | |1207|Unique Number of Occurrences | C++|Easy| |1170|Compare Strings by Frequency of the Smallest Character | C++|Easy| |1030|Matrix Cells in Distance Order | C++|Easy| |1029|Two City Scheduling | C++|Easy| |1028|Recover a Tree From Preorder Traversal | C++|Hard| |1024|Video Stitching | C++|Medium| |993|Cousins in Binary Tree | C++|Easy| |991|Broken Calculator | C++|Medium| |990|Satisfiability of Equality Equations | C++|Medium| |989|Add to Array-Form of Integer | C++|Easy| |988|Smallest String Starting From Leaf | C++|Medium| |987|Vertical Order Traversal of a Binary Tree | C++|Medium| |986|Interval List Intersections | C++|Medium| |985|Sum of Even Numbers After Queries | C++|Easy| |984|String Without AAA or BBB | C++|Easy| |983|Minimum Cost For Tickets | C++|Medium| |981|Time Based Key-Value Store | C++|Medium| |980|Unique Paths III | C++|Hard| |979|Distribute Coins in Binary Tree | C++|Medium| |978|Longest Turbulent Subarray | C++,Python|Medium| |977|Squares of a Sorted Array | C++, Python|Easy| |976|Largest Perimeter Triangle | C++, Python|Easy| |971|Flip Binary Tree To Match Preorder Traversal | Python|Medium| |969|Pancake Sorting | Python|Medium| |961|N-Repeated element in size 2N Array | C++|Easy| |958|Check Completeness of a Binary Tree | Python|Medium| |951|Flip Equivalent Binary Trees | Python|Medium| |950|Reveal Cards In Increasing Order | Python|Medium| |941|Valid Mountain Array | Python|Easy| |931|Minimum Falling Path Sum | C++|Medium| |922|Sort Array By Parity II | C++|Easy| |914|X of a Kind in a Deck of Cards | Python|Easy| |905|Sort Array By Parity | C++|Easy| |876|Middle of the Linked List | Python|Easy| |859|Buddy Strings | C++|Easy| |858|Mirror Reflection | C++|Medium| |852|Peak Index in a Mountain Array | C++|Easy| |849|Maximize Distance to Closest Person | Python|Easy| |844|Backspace String Compare | C++|Easy| |837|Most Common Word | C++|Easy| |830|Positions of Large Groups | Python|Easy| |804|Unique Morse Code Words | C++|Easy| |771|Jewels and Stones | C++|Easy| |747|Largest Number At Least Twice of Others | Python|Easy| |746|Min Cost Climbing Stairs | C++, Python|Easy| |721|Accounts Merge | C++|Medium| |717|1-bit and 2-bit Characters | Python|Easy| |714|Best Time to Buy and Sell Stock with Transaction Fee | C++|Medium| |712|Minimum ASCII Delete Sum for Two Strings | C++|Medium| |695|Max Area of Island | C++|Medium| |687|Longest Univalue Path | Python|Easy| |684|Redundant Connection | Python|Medium| |674|Longest Continuous Increasing Subsequence | Python|Easy| |671|Second Minimum Node In a Binary Tree | Python|Easy| |665|Non-decreasing Array | Python|Easy| |662|Maximum Width of Binary Tree | Python|Medium| |661|Image Smoother | Python|Easy| |655|Print Binary Tree | Python|Medium| |652|Find Duplicate Subtrees | Python|Medium| |647|Palindromic Substrings | C++|Medium| |643|Maximum Average Subarray I | C++, Python|Easy| |628|Maximum Product of Three Numbers | Python|Easy| |623|Add One Row to Tree | Python|Medium| |581|Shortest Unsorted Continuous Subarray | Python|Easy| |572|Subtree of Another Tree | Python|Easy| |563|Binary Tree Tilt | Python|Easy| |547|Friend Circles | C++|Medium| |543|Diameter of Binary Tree | Python|Easy| |538|Convert BST to Greater Tree | Python|Easy| |532|K-diff Pairs in an Array | Python|Easy| |520|Detect Capital | C++|Easy| |518|Coin Change 2 | C++|Medium| |509|Fibonacci Number | C++, Python|Easy| |477|Total Hamming Distance | C++|Medium| |463|Island Perimeter | C++|Easy| |450|DeleteNodeInABST | Python|Medium| |449|Serialize and Deserialize BST | Python|Medium| |438|Find all Anagrams in a string | C++|Medium| |437|Path Sum III | Python|Medium| |418|SentenceScreenFitting ♥ | C++|Easy| |416|Partition Equal Subset Sum | C++|Medium| |415|Add Strings | C++|Easy| |414|Third Maximum Number | C++, Python|Easy| |413|Arithmetic Slices | C++|Medium| |412|Fizz Buzz | C++|Easy| |410|Split Array Largest Sum | C++|Hard| |409|Longest Palindrome | C++|Easy| |406|Queue Reconstruction by Height | C++|Medium| |405|Convert a Number to Hexadecimal | C++|Easy| |404|Sum of Left Leaves | C++, Python|Easy| |403|Frog Jump | C++|Hard| |402|Remove K Digits | C++|Medium| |401|Binary Watch | C++|Easy| |400|Nth Digit | C++|Medium| |399|Evaluate Division | C++|Medium| |398|Random Pick Index | C++|Medium| |397|Integer Replacement | C++|Medium| |396|Rotate Function | C++|Easy| |395|Longest Substring with At Least K Repeating Characters | C++|Medium| |394|Decode String | C++|Medium| |393|UTF-8 Validation | C++|Medium| |392|Is Subsequence | C++|Medium| |391|Perfect Rectangle | C++|Hard| |390|Elimination Game | C++|Medium| |389|Find the Difference | C++|Easy| |388|Longest Absolute File Path | C++|Medium| |387|First Unique Character in a String | C++|Easy| |386|Lexicographical Numbers | C++|Medium| |385|Mini Parser | C++|Medium| |384|Shuffle an Array | C++|Medium| |383|Ransom Note | C++|Easy| |382|Linked List Random Node | C++|Medium| |381|Insert Delete GetRandom O(1) - Duplicates allowed | C++|Hard| |380|Insert Delete GetRandom O(1) | C++|Hard| |377|Combination Sum IV | C++|Medium| |376|Wiggle Subsequence | C++|Medium| |371|Sum of Two Integers | C++|Easy| |367|Valid Perfect Square | C++|Easy| |357|Count Numbers with Unique Digits | C++|Medium| |350|Intersection of Two Arrays II | C++|Easy| |349|Intersection of Two Arrays | C++|Easy| |347|Top K Frequent Elements | C++|Medium| |345|Reverse Vowels of a String | C++|Easy| |344|Reverse String | C++|Easy| |343|Integer Break | C++|Medium| |342|Power of Four | C++|Easy| |341|Flatten Nested List Iterator | C++|Medium| |338|Counting Bits | C++|Medium| |337|House Robber III | C++, Python|Medium| |336|Palindrome Pairs | C++|Hard| |334|Increasing Triplet Subsequence | C++|Medium| |332|Reconstruct Itinerary | C++|Medium| |331|Verify Preorder Serialization of a Binary Tree | C++|Medium| |330|Patching Array | C++|Medium| |329|Longest Increasing Path in a Matrix | C++|Medium| |328|Odd Even Linked List | C++|Easy| |327|Count of Range Sum | C++|Hard| |326|Power of Three | C++|Easy| |324|Wiggle Sort II | C++|Medium| |322|Coin Change | C++|Medium| |321|Create Maximum Number | C++|Hard| |319|Bulb Switcher | C++|Medium| |318|Maximum Product of Word Lengths | C++|Medium| |316|Remove Duplicate Letters | C++|Hard| |315|Count of Smaller Numbers After Self | C++|Hard| |313|Super Ugly Number | C++|Medium| |312|Burst Balloons | C++|Hard| |310|Minimum Height Trees | C++|Medium| |309|Best Time to Buy and Sell Stock with Cooldown | C++|Medium| |307|Range Sum Query - Mutable | C++|Medium| |306|Additive Number | C++|Medium| |304|Range Sum Query 2D - Immutable | C++|Medium| |303|Range Sum Query - Immutable | C++|Easy| |301|Remove Invalid Parentheses | C++ |Hard| |300|Longest Increasing Subsequence | C++|Medium| |299|Bulls and Cows | C++|Easy| |297|Serialize and Deserialize Binary Tree | C++|Medium| |295|Find Median from Data Stream | C++|Hard| |292|Nim Game | C++|Easy| |290|Word Pattern | C++|Easy| |289|Game of Life | C++|Medium| |287|Find the Duplicate Number | C++, Python|Hard| |285|Inorder Successor in BST ♥ | Java|Medium| |284|Peeking Iterator | C++|Medium| |283|Move Zeroes | C++|Easy| |282|Expression Add Operators | C++|Hard| |279|Perfect Squares | C++|Medium| |278|First Bad Version| C++, Java|Easy| |275|H-Index II| C++|Medium| |274|H-Index| C++|Medium| |273|Integer to English Words| C++|Medium| |268|Missing Number| C++|Medium| |264|Ugly Number II| C++|Medium| |263|Ugly Number| C++|Easy| |260|Single Number III| C++|Medium| |258|Add Digits| C++|Easy| |257|Binary Tree Paths| C++|Easy| |242|Valid Anagram| C++, Java|Easy| |241|Different Ways to Add Parentheses|C++, Python|Medium| |240|Search a 2D Matrix II|C++, Java, Python|Medium| |239|Sliding Window Maximum| C++|Hard| |238|Product of Array Except Self| C++|Medium| |237|Delete Node in a Linked List| C++|Easy| |236|Lowest Common Ancestor of a Binary Tree| C++, Java, Python|Medium| |235|Lowest Common Ancestor of a Binary Search Tree| C++, Python|Easy| |234|Palindrome Linked List| C++|Easy| |233|Number of Digit One| C++|Medium| |232|Implement Queue using Stacks| C++, Java|Easy| |231|Power of Two| C++|Easy| |230|Kth Smallest Element in a BST| C++, Python|Medium| |229|Majority Element II | C++|Medium| |228|Summary Ranges| C++|Easy| |227|Basic Calculator II| C++|Medium| |226|Invert Binary Tree| C++|Easy| |225|Implement Stack using Queues| C++, Java|Medium| |224|Basic Calculator| C++|Medium| |223|Rectangle Area| C++|Easy| |222|Count Complete Tree Nodes| C++, Python|Medium| |221|Maximal Square| C++|Medium| |220|Contains Duplicate III| C++, Python|Medium| |219|Contains Duplicate II| C++, Python|Easy| |218|The Skyline Problem| C++|Hard| |217|Contains Duplicate| C++|Easy| |216|Combination Sum III| C++|Medium| |215|Kth Largest Element in an Array| C++|Medium| |214|Shortest Palindrome| C++|Hard| |213|House Robber II| C++|Medium| |212|Word Search II| C++|Hard| |211|Add and Search Word - Data structure design| C++|Medium| |210|Course Schedule II| C++|Medium| |209|Minimum Size Subarray Sum| C++|Medium| |208|Implement Trie (Prefix Tree)| C++|Medium| |207|Course Schedule| C++|Medium| |206|Reverse Linked List| C++, Java|Easy| |205|Isomorphic Strings| C++|Easy| |204|Count Primes| C++|Easy| |203|Remove Linked List Elements| C++|Easy| |202|Happy Number| C++, Python|Easy| |201|Bitwise AND of Numbers Range| C++|Medium| |200|Number of Islands| C++, Python|Medium| |199|Binary Tree Right Side View| C++|Medium| |198|House Robber| C++, Python|Easy| |191|Number of 1 Bits| C++|Easy| |190|Reverse Bits| C++|Easy| |189|Rotate Array| C++, Java|Easy| |188|Best Time to Buy and Sell Stock IV| C++|Hard| |187|Repeated DNA Sequences| C++|Medium| |186|Reverse Words in a String II ♥ | C++|Medium| |179|Largest Number | C++|Medium| |174|Dungeon Game | C++|Hard| |173|Binary Search Tree Iterator | C++, Java, Python|Medium| |172|Factorial Trailing Zeroes | C++|Easy| |171|Excel Sheet Column Number | C++|Easy| |170|Two Sum III - Data structure design ♥ | C++|Easy| |169|Majority Element | C++|Easy| |168|Excel Sheet Column Title | C++|Easy| |167|Two Sum II - Input array is sorted ♥ | C++|Medium| |166|Fraction to Recurring Decimal | C++|Medium| |165|Compare Version Numbers | C++|Easy| |164|Maximum Gap | C++|Hard| |163|Missing Ranges ♥ | C++|Medium| |162|Find Peak Element | C++, Java|Medium| |161|One Edit Distance♥ | C++|Medium| |160|Intersection of Two Linked Lists | C++|Easy| |159|Longest Substring with At Most Two Distinct Characters ♥ | C++|Hard| |158|Read N Characters Given Read4 II - Call multiple times ♥ | C++|Hard| |157|Read N Characters Given Read4 ♥ | C++|Easy| |156|Binary Tree Upside Down ♥ | C++|Medium| |155|Min Stack| C++, Java|Easy| |154|Find Minimum in Rotated Sorted Array II| C++|Hard| |153|Find Minimum in Rotated Sorted Array| C++, Java|Medium| |152|Maximum Product Subarray| C++|Medium| |151|Reverse Words in a String| C++, Java|Medium| |150|Evaluate Reverse Polish Notation| C++|Medium| |149|Max Points on a Line| C++|Hard| |148|Sort List| C++, Python|Medium| |147|Insertion Sort List| C++, Python|Medium| |146|LRU Cache| C++, Java|Hard| |145|Binary Tree Postorder Traversal| C++, Python|Hard| |144|Binary Tree Preorder Traversal| C++, Java|Medium| |143|Reorder List| C++, Python|Medium| |142|Linked List Cycle II| C++, Python|Medium| |141|Linked List Cycle| C++|Medium| |140|Word Break II| C++|Hard| |139|Word Break| C++|Medium| |138|Copy List with Random Pointer| C++, Python|Hard| |137|Single Number II| C++|Medium| |136|Single Number| C++|Medium| |135|Candy| C++|Hard| |134|Gas Station| C++|Medium| |133|Clone Graph| C++|Medium| |132|Palindrome Partitioning II| C++|Hard| |131|Palindrome Partitioning| C++|Medium| |130|Surrounded Regions| C++|Medium| |129|Sum Root to Leaf Numbers| C++, Python|Medium| |128|Longest Consecutive Sequence| C++|Hard| |127|Word Ladder| C++|Medium| |126|Word Ladder II| C++|Hard| |125|Valid Palindrome| C++, Java|Easy| |124|Binary Tree Maximum Path Sum| C++, Java|Hard| |123|Best Time to Buy and Sell Stock III| C++|Hard| |122|Best Time to Buy and Sell Stock II| C++|Medium| |121|Best Time to Buy and Sell Stock| C++|Medium| |120|Triangle| C++, Java|Medium| |119|Pascal's Triangle II| C++|Easy| |118|Pascal's Triangle| C++|Easy| |117|Populating Next Right Pointers in Each Node II| C++, Python|Hard| |116|Populating Next Right Pointers in Each Node| C++, Python|Medium| |115|Distinct Subsequences| C++|Hard| |114|Flatten Binary Tree to Linked List| C++, Python|Medium| |113|Path Sum II| C++, Python|Medium| |112|Path Sum| C++|Easy| |111|Minimum Depth of Binary Tree| C++|Easy| |110|Balanced Binary Tree| C++, Java|Easy| |109|Convert Sorted List to Binary Search Tree| C++|Medium| |108|Convert Sorted Array to Binary Search Tree| C++|Medium| |107|Binary Tree Level Order Traversal II| C++|Easy| |106|Construct Binary Tree from Inorder and Postorder Traversal| C++, Python|Medium| |105|Construct Binary Tree from Preorder and Inorder Traversal| C++, Python|Medium| |104|Maximum Depth of Binary Tree| C++, Java|Easy| |103|Binary Tree Zigzag Level Order Traversal| C++, Python|Medium| |102|Binary Tree Level Order Traversal| C++, Java|Easy| |101|Symmetric Tree| C++|Easy| |100|Same Tree| C++|Easy| |99|Recover Binary Search Tree| C++|Hard| |98|Validate Binary Search Tree| C++, Java, Python|Medium| |97|Interleaving String| C++|Hard| |96|Unique Binary Search Trees| C++, Python|Medium| |95|Unique Binary Search Trees II| C++, Python|Medium| |94|Binary Tree Inorder Traversal| C++|Medium| |93|Restore IP Addresses| C++|Medium| |92|Reverse Linked List II| C++, Java, Python|Medium| |91|Decode Ways| C++|Medium| |90|Subsets II| C++, Java|Medium| |89|Gray Code| C++|Medium| |88|Merge Sorted Array| C++|Easy| |87|Scramble String| C++|Hard| |86|Partition List| C++, Python|Medium| |85|Maximal Rectangle| C++|Hard| |84|Largest Rectangle in Histogram| C++|Hard| |83|Remove Duplicates from Sorted List| C++|Easy| |82|Remove Duplicates from Sorted List II| C++, Python|Medium| |81|Search in Rotated Sorted Array II| C++|Medium| |80|Remove Duplicates from Sorted Array II| C++|Medium| |79|Word Search| C++|Medium| |78|Subsets| C++, Java, Python|Medium| |77|Combinations| C++|Medium| |76|Minimum Window Substring| C++|Hard| |75|Sort Colors| C++|Medium| |74|Search a 2D Matrix| C++, Java|Medium| |73|Set Matrix Zeroes| C++|Medium| |72|Edit Distance| C++|Hard| |71|Simplify Path| C++|Medium| |70|Climbing Stairs| C++, Java|Easy| |69|Sqrt(x)| C++|Medium| |68|Text Justification| C++|Hard| |67|Add Binary| C++|Easy| |66|Plus One| C++|Easy| |65|Valid Number| C++|Easy| |64|Minimum Path Sum| C++, Java|Medium| |63|Unique Paths II| C++, Java|Medium| |62|Unique Paths| C++, Java|Medium| |61|Rotate List| C++|Medium| |60|Permutation Sequence| C++|Medium| |59|Spiral Matrix II| C++|Medium| |58|Length of Last Word| C++, Java|Easy| |57|Insert Interval| C++|Hard| |56|Merge Intervals| C++|Hard| |55|Jump Game| C++|Medium| |54|Spiral Matrix| C++|Medium| |53|Maximum Subarray| C++|Medium| |52|N-Queens II| C++|Hard| |51|N-Queens| C++|Hard| |50|"Pow(x, n)"| C++, Java|Medium| |49|Group Anagrams| C++|Medium| |48|Rotate Image| C++|Medium| |47|Permutations II| C++|Hard| |46|Permutations| C++|Medium| |45|Jump Game II| C++|Hard| |44|Wildcard Matching| C++|Hard| |43|Multiply Strings| C++|Medium| |42|Trapping Rain Water| C++|Hard| |41|First Missing Positive| C++|Hard| |40|Combination Sum II| C++|Medium| |39|Combination Sum| C++|Medium| |38|Count and Say| C++, Java|Easy| |37|Sudoku Solver| C++|Hard| |36|Valid Sudoku| C++|Easy| |35|Search Insert Position| C++, Java|Medium| |34|Search for a Range| C++, Java|Medium| |33|Search in Rotated Sorted Array| C++, Java|Hard| |32|Longest Valid Parentheses| C++|Hard| |31|Next Permutation| C++|Medium| |30|Substring with Concatenation of All Words| C++|Hard| |29|Divide Two Integers| C++|Medium| |28|Implement strStr()| C++, Java|Easy| |27|Remove Element| C++|Easy| |26|Remove Duplicates from Sorted Array| C++, Java|Easy| |25|Reverse Nodes in k-Group| C++|Hard| |24|Swap Nodes in Pairs| C++|Medium| |23|Merge k Sorted Lists| C++|Hard| |22|Generate Parentheses| C++|Medium| |21|Merge Two Sorted Lists| C++|Easy| |20|Valid Parentheses| C++|Easy| |19|Remove Nth Node From End of List| C++, Python|Easy| |18|4Sum| C++|Medium| |17|Letter Combinations of a Phone Number| C++|Medium| |16|3Sum Closest| C++|Medium| |15|3Sum| C++|Medium| |14|Longest Common Prefix| C++|Easy| |13|Roman to Integer| C++|Easy| |12|Integer to Roman| C++|Medium| |11|Container With Most Water| C++|Medium| |10|Regular Expression Matching| C++|Hard| |9|Palindrome Number| C++, Java|Easy| |8|String to Integer (atoi)| C++|Easy| |7|Reverse Integer| C++|Easy| |6|ZigZag Conversion| C++|Easy| |5|Longest Palindromic Substring| C++|Medium| |4|Median of Two Sorted Arrays| C++|Hard| |3|Longest Substring Without Repeating Characters| C++|Medium| |2|Add Two Numbers| C++|Medium| |1|Two Sum| C++, Go|Easy|

LeetCode Shell

| # | Title | Solution | Difficulty | |---| ----- | -------- | ---------- | |4|Tenth Line| Bash|Easy| |3|Transpose File| Bash|Medium| |2|Valid Phone Numbers| Bash|Easy| |1|Word Frequency| Bash|Medium|


| # | Title | Solution | Difficulty | |---| ----- | -------- | ---------- | |1|Search in a big sorted array|Java|Medium| |2|Search Range in Binary Search Tree | Java|Medium|

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.