LeetCode

by ShusenTang

ShusenTang / LeetCode

LeetCode solutions with Chinese explanation & Summary of classic algorithms.

238 Stars 60 Forks Last release: Not found MIT License 674 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:

My LeetCode solutions with Chinese explanation. 我的LeetCode中文题解。
每个题目都保证击败超过80%的提交,并尽量给出多种解法并分析算法复杂度。
每日持续更新中,欢迎交流,欢迎star :D

另外, * algorithm文件夹对经典算法作了简单介绍并给出代码模板,方便刷题参考使用; * CodingInterview给出了《剑指offer》第2版中对应的LeetCode题目。

| # | 题目 | 题解 | 难度 | | ---- | -----------| ------- | ------- | | 1 |Two Sum|C++|Easy| | | 2 |Add Two Numbers|C++|Medium| | | 3 |Longest Substring Without Repeating Characters|C++|Medium| | | 4 |Median of Two Sorted Arrays|C++|Hard| | | 5 |Longest Palindromic Substring|C++|Medium| | | 6 |ZigZag Conversion|C++|Medium| | | 7 |Reverse Integer|C++|Easy| | | 8 |String to Integer (atoi)|C++|Medium| | | 9 |Palindrome Number|C++|Easy| | | 10 |Regular Expression Matching|C++|Hard| | | 11 |Container With Most Water|C++|Medium| | | 12 |Integer to Roman|C++|Medium| | | 13 |Roman to Integer|C++|Easy| | | 14 |Longest Common Prefix|C++|Easy| | | 15 |3Sum|C++|Medium| | | 16 |3Sum Closest|C++|Medium| | | 17 |Letter Combinations of a Phone Number|C++|Medium| | | 18 |4Sum|C++|Medium| | | 19 |Remove Nth Node From End of List|C++|Medium| | | 20 |Valid Parentheses|C++|Easy| | | 21 |Merge Two Sorted Lists|C++|Easy| | | 22 |Generate Parentheses|C++|Medium| | | 23 |Merge k Sorted Lists|C++|Hard| | | 24 |Swap Nodes in Pairs|C++|Medium| | | 26 |Remove Duplicates from Sorted Array|C++|Easy| | | 27 |Remove Element|C++|Easy| | | 28 |Implement strStr()|C++|Easy| | | 29 |Divide Two Integers|C++|Medium| | | 31 |Next Permutation|C++|Medium| | | 32 |Longest Valid Parentheses|C++|Hard| | | 33 |Search in Rotated Sorted Array|C++|Medium| | | 34 |Find First and Last Position of Element in Sorted |C++|Medium| | | 35 |Search Insert Position|C++|Easy| | |36 |Valid Sudoku |C++|Medium| | | 38 |Count and Say|C++|Easy| | | 39 |Combination Sum|C++|Medium| | | 40 |Combination Sum II|C++|Medium| | | 41 |First Missing Positive|C++|Hard| | | 42 |Trapping Rain Water|C++|Hard| | | 43 |Multiply Strings|C++|Medium| | | 44 |Wildcard Matching|C++|Hard| | | 45 |Jump Game II |C++|Hard| | | 46 |Permutations|C++|Medium| | | 47 |Permutations II|C++|Medium| | | 48 |Rotate Image|C++|Medium| | | 49 |Group Anagrams|C++|Medium| | | 50 |Pow(x, n)|C++|Medium| | | 53 |Maximum Subarray|C++|Easy| | | 54 |Spiral Matrix|C++|Medium| | | 55 |Jump Game|C++|Medium| | | 56 |Merge Intervals|C++|Medium| | | 58 |Length of Last Word|C++|Easy| | | 59 |Spiral Matrix II|C++|Medium| | | 60 |Permutation Sequence|C++|Medium| | | 61 |Rotate List|C++|Medium| | | 62 |Unique Paths|C++|Medium| | | 63 |Unique Paths II|C++|Medium| | | 64 |Minimum Path Sum|C++|Medium| | | 65 |Valid Number|C++|Hard| | | 66 |Plus One|C++|Easy| | | 67 |Add Binary|C++|Easy| | | 69 |Sqrt(x)|C++|Easy| | | 70 |Climbing Stairs|C++|Easy| | | 71 |Simplify Path|C++|Medium| | | 72 |Edit Distance|C++|Hard| | | 73 |Set Matrix Zeroes|C++|Medium| | | 74 |Search a 2D Matrix|C++|Medium| | | 75 |Sort Colors|C++|Medium| | | 76 |Minimum Window Substring|C++|Hard| | | 77 |Combinations|C++|Medium| | | 78 |Subsets|C++|Medium| | | 79 |Word Search|C++|Medium| | | 80 |Remove Duplicates from Sorted Array II|C++|Medium| | | 81 |Search in Rotated Sorted Array II|C++|Medium| | | 82 |Remove Duplicates from Sorted List II|C++|Medium| | | 83 |Remove Duplicates from Sorted List|C++|Easy| | | 84 |Largest Rectangle in Histogram|C++|Hard| | | 85 |Maximal Rectangle|C++|Hard| | | 86 |Partition List|C++|Medium| | | 88 |Merge Sorted Array|C++|Easy| | | 89 |Gray Code|C++|Medium| | | 90 |Subsets II|C++|Medium| | | 91 |Decode Ways|C++|Medium| | | 92 |Reverse Linked List II|C++|Medium| | | 93 |Restore IP Addresses|C++|Medium| | | 94 |Binary Tree Inorder Traversal|C++|Medium| | | 95 |Unique Binary Search Trees II|C++|Medium| | | 96 |Unique Binary Search Trees|C++|Medium| | | 98 |Validate Binary Search Tree|C++|Medium| | | 100 |Same Tree|C++|Easy| | | 101 |Symmetric Tree|C++|Easy| | | 102 |Binary Tree Level Order Traversal|C++|Medium| | | 103 |Binary Tree Zigzag Level Order Traversal|C++|Medium| | | 104 |Maximum Depth of Binary Tree|C++|Easy| | | 105 |Construct Binary Tree from Preorder and Inorder Traversal|C++|Medium| | | 106 |Construct Binary Tree from Inorder and Postorder Traversal|C++|Medium| | | 107 |Binary Tree Level Order Traversal II|C++|Easy| | | 108 |Convert Sorted Array to Binary Search Tree|C++|Easy| | | 109 |Convert Sorted List to Binary Search Tree|C++|Medium| | | 110 |Balanced Binary Tree|C++|Easy| | | 111 |Minimum Depth of Binary Tree|C++|Easy| | | 112 |Path Sum|C++|Easy| | | 113 |Path Sum II|C++|Medium| | | 114 |Flatten Binary Tree to Linked List|C++|Medium| | | 116 |Populating Next Right Pointers in Each Node|C++|Medium| | | 117 |Populating Next Right Pointers in Each Node II|C++|Medium| | | 118 |Pascal's Triangle|C++|Easy| | | 119 |Pascal's Triangle II|C++|Easy| | | 120 |Triangle|C++|Medium| | | 121 |Best Time to Buy and Sell Stock|C++|Easy| | | 122 |Best Time to Buy and Sell Stock II|C++|Easy| | | 123 |Best Time to Buy and Sell Stock III|C++|Hard| | | 124 |Binary Tree Maximum Path Sum|C++|Hard| | | 125 |Valid Palindrome|C++|Easy| | | 127 |Word Ladder|C++|Medium| | | 128 |Longest Consecutive Sequence|C++|Hard| | | 129 |Sum Root to Leaf Numbers|C++|Medium| | | 130 |Surrounded Regions|C++|Medium| | | 131 |Palindrome Partitioning|C++|Medium| | | 133 |Clone Graph|C++|Medium| | | 134 |Gas Station|C++|Medium| | | 136 |Single Number|C++|Easy| | | 137 |Single Number II|C++|Medium| | | 138 |Copy List with Random Pointer|C++|Medium| | | 139 |Word Break|C++|Medium| | | 140 |Word Break II|C++|Hard| | | 141 |Linked List Cycle|C++|Easy| | | 142 |Linked List Cycle II|C++|Medium| | | 143 |Reorder List|C++|Medium| | | 144 |Binary Tree Preorder Traversal|C++|Medium| | | 145 |Binary Tree Postorder Traversal|C++|Hard| | | 146 |LRU Cache|C++|Medium| | | 148 |Sort List|C++|Medium| | | 149 |Max Points on a Line|C++|Hard| | | 150 |Evaluate Reverse Polish Notation|C++|Medium| | | 151 |Reverse Words in a String|C++|Medium| | | 152 |Maximum Product Subarray|C++|Medium| | | 153 |Find Minimum in Rotated Sorted Array|C++|Medium| | | 155 |Min Stack|C++|Easy| | | 160 |Intersection of Two Linked Lists|C++|Easy| | | 162 |Find Peak Element|C++|Medium| | | 165 |Compare Version Numbers|C++|Medium| | | 166 |Fraction to Recurring Decimal|C++|Medium| | | 167 |Two Sum II - Input array is sorted|C++|Easy| | | 168 |Excel Sheet Column Title|C++|Easy| | | 169 |Majority Element|C++|Easy| | | 171 |Excel Sheet Column Number|C++|Easy| | | 172 |Factorial Trailing Zeroes|C++|Easy| | | 179 |Largest Number|C++|Medium| | | 187 |Repeated DNA Sequences|C++|Medium| | | 188 |Best Time to Buy and Sell Stock IV|C++|Hard| | | 189 |Rotate Array|C++|Easy| | | 190 |Reverse Bits|C++|Easy| | | 191 |Number of 1 Bits|C++|Easy| | | 198 |House Robber|C++|Easy| | | 199 |Binary Tree Right Side View|C++|Medium| | | 200 |Number of Islands|C++|Medium| | | 201 |Bitwise AND of Numbers Range|C++|Medium| | | 202 |Happy Number|C++|Easy| | | 203 |Remove Linked List Elements|C++|Easy| | | 204 |Count Primes|C++|Easy| | | 205 |Isomorphic Strings|C++|Easy| | | 206 |Reverse Linked List|C++|Easy| | | 207 |Course Schedule|C++|Medium| | | 208 |Implement Trie (Prefix Tree)|C++|Medium| | | 209 |Minimum Size Subarray Sum|C++|Medium| | | 210 |Course Schedule II|C++|Medium| | | 211 |Add and Search Word - Data structure design|C++|Medium| | | 212 |Word Search II|C++|Hard| | | 213 |House Robber II|C++|Medium| | | 215 |Kth Largest Element in an Array|C++|Medium| | | 216 |Combination Sum III|C++|Medium| | | 217 |Contains Duplicate|C++|Easy| | | 218 |The Skyline Problem|C++|Hard| | | 219 |Contains Duplicate II|C++|Easy| | | 220 |Contains Duplicate III|C++|Medium| | | 221 |Maximal Square|C++|Medium| | | 222 |Count Complete Tree Nodes|C++|Medium| | | 223 |Rectangle Area|C++|Medium| | | 225 |Implement Stack using Queues|C++|Easy| | | 226 |Invert Binary Tree|C++|Easy| | | 227 |Basic Calculator II|C++|Medium| | | 228 |Summary Ranges|C++|Medium| | | 229 |Majority Element II|C++|Medium| | | 230 |Kth Smallest Element in a BST|C++|Medium| | | 231 |Power of Two|C++|Easy| | | 232 |Implement Queue using Stacks|C++|Easy| | | 233 |Number of Digit One|C++|Hard| | | 234 |Palindrome Linked List|C++|Easy| | | 235 |Lowest Common Ancestor of a Binary Search Tree|C++|Easy| | | 236 |Lowest Common Ancestor of a Binary Tree|C++|Medium| | | 237 |Delete Node in a Linked List|C++|Easy| | | 238 |Product of Array Except Self|C++|Medium| | | 239 |Sliding Window Maximum|C++|Hard| | | 240 |Search a 2D Matrix II|C++|Medium| | | 241 |Different Ways to Add Parentheses|C++|Medium| | | 242 |Valid Anagram|C++|Easy| | | 257 |Binary Tree Paths|C++|Easy| | | 258 |Add Digits|C++|Easy| | | 260 |Single Number III|C++|Medium| | | 263 |Ugly Number|C++|Easy| | | 264 |Ugly Number II|C++|Medium| | | 268 |Missing Number|C++|Easy| | | 274 |H-Index|C++|Medium| | | 275 |H-Index II|C++|Medium| | | 278 |First Bad Version|C++|Easy| | | 279 |Perfect Squares|C++|Medium| | | 283 |Move Zeroes|C++|Easy| | | 284 |Peeking Iterator|C++|Medium| | | 287 |Find the Duplicate Number|C++|Medium| | | 289 |Game of Life|C++|Medium| | | 290 |Word Pattern|C++|Easy| | | 292 |Nim Game|C++|Easy| | | 295 |Find Median from Data Stream|C++|Hard| | | 297 |Serialize and Deserialize Binary Tree|C++|Hard| | | 300 |Longest Increasing Subsequence|C++|Medium| | | 301 |Remove Invalid Parentheses|C++|Hard| | | 303 |Range Sum Query - Immutable|C++|Easy| | | 304 |Range Sum Query 2D - Immutable|C++|Medium| | | 306 |Additive Number|C++|Medium| | | 307 |Range Sum Query - Mutable|C++|Medium| | | 309 |Best Time to Buy and Sell Stock with Cooldown|C++|Medium| | | 310 |Minimum Height Trees|C++|Medium| | | 312 |Burst Balloons|C++|Hard| | | 313 |Super Ugly Number|C++|Medium| | | 315 |Count of Smaller Numbers After Self|C++|Hard| | | 318 |Maximum Product of Word Lengths|C++|Medium| | | 319 |Bulb Switcher|C++|Medium| | | 322 |Coin Change|C++|Medium| | | 324 |Wiggle Sort II|C++|Medium| | | 326 |Power of Three|C++|Easy| | | 328 |Odd Even Linked List|C++|Medium| | | 329 |Longest Increasing Path in a Matrix|C++|Hard| | | 331 |Verify Preorder Serialization of a Binary Tree|C++|Medium| | | 332 |Reconstruct Itinerary|C++|Medium| | | 334 |Increasing Triplet Subsequence|C++|Medium| | | 337 |House Robber III|C++|Medium| | | 338 |Counting Bits|C++|Medium| | | 341 |Flatten Nested List Iterator|C++|Medium| | | 342 |Power of Four|C++|Easy| | | 343 |Integer Break|C++|Medium| | | 344 |Reverse String|C++|Easy| | | 345 |Reverse Vowels of a String|C++|Easy| | | 347 |Top K Frequent Elements|C++|Medium| | | 349 |Intersection of Two Arrays|C++|Easy| | | 350 |Intersection of Two Arrays II|C++|Easy| | | 357 |Count Numbers with Unique Digits|C++|Medium| | | 365 |Water and Jug Problem|C++|Medium| | | 367 |Valid Perfect Square|C++|Easy| | | 368 |Largest Divisible Subset|C++|Medium| | | 371 |Sum of Two Integers|C++|Easy| | | 372 |Super Pow|C++|Medium| | | 373 |Find K Pairs with Smallest Sums|C++|Medium| | | 374 |Guess Number Higher or Lower|C++|Easy| | | 375 |Guess Number Higher or Lower II|C++|Medium| | | 376 |Wiggle Subsequence|C++|Medium| | | 377 |Combination Sum IV|C++|Medium| | | 378 |Kth Smallest Element in a Sorted Matrix|C++|Medium| | | 380 |Insert Delete GetRandom O(1)|C++|Medium| | | 381 |Insert Delete GetRandom O(1) - Duplicates allowed|C++|Hard| | | 382 |Linked List Random Node|C++|Medium| | | 383 |Ransom Note|C++|Easy| | | 384 |Shuffle an Array|C++|Medium| | | 385 |Mini Parser|C++|Medium| | | 386 |Lexicographical Numbers|C++|Medium| | | 387 |First Unique Character in a String|C++|Easy| | | 388 |Longest Absolute File Path|C++|Medium| | | 389 |Find the Difference|C++|Easy| | | 390 |Elimination Game|C++|Medium| | | 392 |Is Subsequence|C++|Easy| | | 393 |UTF-8 Validation|C++|Medium| | | 394 |Decode String|C++|Medium| | | 395 |Longest Substring with At Least K Repeating Characters|C++|Medium| | | 396 |Rotate Function|C++|Medium| | | 397 |Integer Replacement|C++|Medium| | | 398 |Random Pick Index|C++|Medium| | | 400 |Nth Digit|C++|Medium| | | 404 |Sum of Left Leaves|C++|Easy| | | 405 |Convert a Number to Hexadecimal|C++|Easy| | | 406 |Queue Reconstruction by Height|C++|Medium| | | 409 |Longest Palindrome|C++|Easy| | | 412 |Fizz Buzz|C++|Easy| | | 414 |Third Maximum Number|C++|Easy| | | 415 |Add Strings|C++|Easy| | | 416 |Partition Equal Subset Sum|C++|Medium| | | 429 |N-ary Tree Level Order Traversal|C++|Easy| | | 434 |Number of Segments in a String|C++|Easy| | | 437 |Path Sum III|C++|Easy| | | 438 |Find All Anagrams in a String|C++|Easy| | | 441 |Arranging Coins|C++|Easy| | | 443 |String Compression|C++|Easy| | | 447 |Number of Boomerangs|C++|Easy| | | 448 |Find All Numbers Disappeared in an Array|C++|Easy| | | 453 |Minimum Moves to Equal Array Elements|C++|Easy| | | 454 |4Sum II|C++|Medium| | | 455 |Assign Cookies|C++|Easy| | | 459 |Repeated Substring Pattern|C++|Easy| | | 461 |Hamming Distance|C++|Easy| | | 463 |Island Perimeter|C++|Easy| | | 474 |Ones and Zeroes|C++|Medium| | | 475 |Heaters|C++|Easy| | | 476 |Number Complement|C++|Easy| | | 485 |Max Consecutive Ones|C++|Easy| | | 493 |Reverse Pairs|C++|Hard| | | 494 |Target Sum|C++|Medium| | | 496 |Next Greater Element I|C++|Easy| | | 500 |Keyboard Row|C++|Easy| | | 509 |Fibonacci Number|C++|Easy| | | 532 |K-diff Pairs in an Array|C++|Easy| | | 543 |Diameter of Binary Tree|C++|Easy| | | 560 |Subarray Sum Equals K|C++|Medium| | | 561 |Array Partition I|C++|Easy| | | 566 |Reshape the Matrix|C++|Easy| | | 572 |Subtree of Another Tree|C++|Easy| | | 581 |Shortest Unsorted Continuous Subarray|C++|Easy| | | 605 |Can Place Flowers|C++|Easy| | | 617 |Merge Two Binary Trees|C++|Easy| | | 621 |Task Scheduler|C++|Medium| | | 628 |Maximum Product of Three Numbers|C++|Easy| | | 643 |Maximum Average Subarray I|C++|Easy| | | 647 |Palindromic Substrings|C++|Medium| | | 661 |Image Smoother|C++|Easy| | | 665 |Non-decreasing Array|C++|Easy| | | 714 |Best Time to Buy and Sell Stock with Transaction Fee|C++|Medium| | | 739 |Daily Temperatures|C++|Medium| | | 829 |Consecutive Numbers Sum|C++|Hard| | | 846 |Hand of Straights|C++|Medium| | | 905 |Sort Array By Parity|C++|Easy| | | 946 |Validate Stack Sequences|C++|Medium| | | 1155 |Number of Dice Rolls With Target Sum|C++|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.