Need help with leetcode?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

haoel
14.1K Stars 4.3K Forks 625 Commits 19 Opened issues

Description

LeetCode Problems' Solutions

Services available

!
?

Need anything else?

Contributors list

No Data

LeetCode

LeetCode Algorithm

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

| # | Title | Solution | Difficulty | |---| ----- | -------- | ---------- | |1605|Find Valid Matrix Given Row and Column Sums | C++|Medium| |1573|Number of Ways to Split a String | C++|Medium| |1556|Thousand Separator | C++|Easy| |1551|Minimum Operations to Make Array Equal | C++|Medium| |1550|Three Consecutive Odds | C++|Easy| |1541|Minimum Insertions to Balance a Parentheses String | C++|Medium| |1535|Find the Winner of an Array Game | C++|Medium| |1525|Number of Good Ways to Split a String | C++|Medium| |1524|Number of Sub-arrays With Odd Sum | C++|Medium| |1523|Count Odd Numbers in an Interval Range | C++|Easy| |1513|Number of Substrings With Only 1s | C++|Medium| |1470|Shuffle the Array | C++|Easy| |1464|Maximum Product of Two Elements in an Array | C++|Easy| |1460|Make Two Arrays Equal by Reversing Sub-arrays | C++|Easy| |1376|Time Needed to Inform All Employees | C++|Medium| |1333|Filter Restaurants by Vegan-Friendly, Price and Distance | C++|Medium| |1207|Unique Number of Occurrences | C++|Easy| |1170|Compare Strings by Frequency of the Smallest Character | C++|Easy| |1071|Greatest Common Divisor of Strings | 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| |982|Triples with Bitwise AND Equal To Zero | C++|Hard| |981|Time Based Key-Value Store | C++|Medium| |980|Unique Paths III | C++,Python|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| |933|Number of Recent Calls | C++|Easy| |931|Minimum Falling Path Sum | C++|Medium| |929|Unique Email Addresses | C++|Easy| |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| |820|Short Encoding of Words | C++|Medium| |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| |497|Random Point in Non-overlapping Rectangles | C++|Medium| |494|Target Sum | C++|Medium| |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++, Python|Medium| |54|Spiral Matrix| C++|Medium| |53|Maximum Subarray| C++, Java|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++, Python|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++, Java|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|

LintCode

| # | 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.