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

ShusenTang
268 Stars 69 Forks MIT License 674 Commits 1 Opened issues

Description

LeetCode solutions with Chinese explanation & Summary of classic algorithms.

Services available

!
?

Need anything else?

Contributors list

# 360
Jupyter...
pytorch
pytorch...
Compute...
672 commits

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.