# LeetCode LeetCode solutions with Chinese explanation. LeetCode中文题解。 每个题目都保证击败超过80%的提交,并尽量给出多种解法并分析算法复杂度。 持续更新中,欢迎交流,欢迎star :) | # | 题目 | 题解 | 难度 | | ---- | -----------| ------- | ------- | | 1 |[Two Sum](https://leetcode.com/problems/two-sum)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/1.%20Two%20Sum.md)|Easy| | | 2 |[Add Two Numbers](https://leetcode.com/problems/add-two-numbers)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/2.%20Add%20Two%20Numbers.md)|Medium| | | 3 |[Longest Substring Without Repeating Characters](https://leetcode.com/problems/longest-substring-without-repeating-characters)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/3.%20Longest%20Substring%20Without%20Repeating%20Characters.md)|Medium| | | 5 |[Longest Palindromic Substring](https://leetcode.com/problems/longest-palindromic-substring)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/5.%20Longest%20Palindromic%20Substring.md)|Medium| | | 6 |[ZigZag Conversion](https://leetcode.com/problems/zigzag-conversion)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/6.%20ZigZag%20Conversion.md)|Medium| | | 7 |[Reverse Integer](https://leetcode.com/problems/reverse-integer)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/7.%20Reverse%20Integer.md)|Easy| | | 8 |[String to Integer (atoi)](https://leetcode.com/problems/string-to-integer-atoi)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/8.%20String%20to%20Integer%20(atoi).md)|Medium| | | 9 |[Palindrome Number](https://leetcode.com/problems/palindrome-number)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/9.%20Palindrome%20Number.md)|Easy| | | 11 |[Container With Most Water](https://leetcode.com/problems/container-with-most-water)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/11.%20Container%20With%20Most%20Water.md)|Medium| | | 12 |[Integer to Roman](https://leetcode.com/problems/integer-to-roman)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/12.%20Integer%20to%20Roman.md)|Medium| | | 13 |[Roman to Integer](https://leetcode.com/problems/roman-to-integer)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/13.%20Roman%20to%20Integer.md)|Easy| | | 14 |[Longest Common Prefix](https://leetcode.com/problems/longest-common-prefix)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/14.%20Longest%20Common%20Prefix.md)|Easy| | | 15 |[3Sum](https://leetcode.com/problems/3sum)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/15.%203Sum.md)|Medium| | | 16 |[3Sum Closest](https://leetcode.com/problems/3sum-closest)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/16.%203Sum%20Closest.md)|Medium| | | 17 |[Letter Combinations of a Phone Number](https://leetcode.com/problems/letter-combinations-of-a-phone-number)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/17.%20Letter%20Combinations%20of%20a%20Phone%20Number.md)|Medium| | | 18 |[4Sum](https://leetcode.com/problems/4sum)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/18.%204Sum.md)|Medium| | | 19 |[Remove Nth Node From End of List](https://leetcode.com/problems/remove-nth-node-from-end-of-list)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/19.%20Remove%20Nth%20Node%20From%20End%20of%20List.md)|Medium| | | 20 |[Valid Parentheses](https://leetcode.com/problems/valid-parentheses)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/20.%20Valid%20Parentheses.md)|Easy| | | 21 |[Merge Two Sorted Lists](https://leetcode.com/problems/merge-two-sorted-lists)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/21.%20Merge%20Two%20Sorted%20Lists.md)|Easy| | | 22 |[Generate Parentheses](https://leetcode.com/problems/generate-parentheses)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/22.%20Generate%20Parentheses.md)|Medium| | | 24 |[Swap Nodes in Pairs](https://leetcode.com/problems/swap-nodes-in-pairs)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/24.%20Swap%20Nodes%20in%20Pairs.md)|Medium| | | 26 |[Remove Duplicates from Sorted Array](https://leetcode.com/problems/remove-duplicates-from-sorted-array)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/26.%20Remove%20Duplicates%20from%20Sorted%20Array.md)|Easy| | | 27 |[Remove Element](https://leetcode.com/problems/remove-element)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/27.%20Remove%20Element.md)|Easy| | | 29 |[Divide Two Integers](https://leetcode.com/problems/divide-two-integers)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/29.%20Divide%20Two%20Integers.md)|Medium| | | 31 |[Next Permutation](https://leetcode.com/problems/next-permutation)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/31.%20Next%20Permutation.md)|Medium| | | 34 |[Find First and Last Position of Element in Sorted ](https://leetcode.com/problems/find-first-and-last-position-of-element-in-sorted-array/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/34.%20Find%20First%20and%20Last%20Position%20of%20Element%20in%20Sorted%20Array.md)|Medium| | | 33 |[Search in Rotated Sorted Array](https://leetcode.com/problems/search-in-rotated-sorted-array/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/33.%20Search%20in%20Rotated%20Sorted%20Array.md)|Medium| | | 35 |[Search Insert Position](https://leetcode.com/problems/search-insert-position)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/35.%20Search%20Insert%20Position.md)|Easy| | |36 |[Valid Sudoku](https://leetcode.com/problems/valid-sudoku/) |[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/36.%20Valid%20Sudoku.md)|Medium| | | 38 |[Count and Say](https://leetcode.com/problems/count-and-say)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/38.%20Count%20and%20Say.md)|Easy| | | 39 |[Combination Sum](https://leetcode.com/problems/combination-sum/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/39.%20Combination%20Sum.md)|Medium| | | 40 |[Combination Sum II](https://leetcode.com/problems/combination-sum-ii/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/40.%20Combination%20Sum%20II.md)|Medium| | | 43 |[Multiply Strings](https://leetcode.com/problems/multiply-strings/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/43.%20Multiply%20Strings.md)|Medium| | | 46 |[Permutations](https://leetcode.com/problems/permutations/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/46.%20Permutations.md)|Medium| | | 47 |[Permutations II](https://leetcode.com/problems/permutations-ii/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/47.%20Permutations%20II.md)|Medium| | | 48 |[Rotate Image](https://leetcode.com/problems/rotate-image/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/48.%20Rotate%20Image.md)|Medium| | | 49 |[Group Anagrams](https://leetcode.com/problems/group-anagrams/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/49.%20Group%20Anagrams.md)|Medium| | | 50 |[Pow(x, n)](https://leetcode.com/problems/powx-n/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/50.%20Pow(x%2C%20n).md)|Medium| | | 53 |[Maximum Subarray](https://leetcode.com/problems/maximum-subarray)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/53.%20Maximum%20Subarray.md)|Easy| | | 54 |[Spiral Matrix](https://leetcode.com/problems/spiral-matrix/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/54.%20Spiral%20Matrix.md)|Medium| | | 55 |[Jump Game](https://leetcode.com/problems/jump-game/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/55.%20Jump%20Game.md)|Medium| | | 56 |[Merge Intervals](https://leetcode.com/problems/merge-intervals/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/56.%20Merge%20Intervals.md)|Medium| | | 58 |[Length of Last Word](https://leetcode.com/problems/length-of-last-word)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/58.%20Length%20of%20Last%20Word.md)|Easy| | | 59 |[Spiral Matrix II](https://leetcode.com/problems/spiral-matrix-ii/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/59.%20Spiral%20Matrix%20II.md)|Medium| | | 60 |[Permutation Sequence](https://leetcode.com/problems/permutation-sequence/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/60.%20Permutation%20Sequence.md)|Medium| | | 61 |[Rotate List](https://leetcode.com/problems/rotate-list/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/61.%20Rotate%20List.md)|Medium| | | 62 |[Unique Paths](https://leetcode.com/problems/unique-paths/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/62.%20Unique%20Paths.md)|Medium| | | 63 |[Unique Paths II](https://leetcode.com/problems/unique-paths-ii/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/63.%20Unique%20Paths%20II.md)|Medium| | | 66 |[Plus One](https://leetcode.com/problems/plus-one)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/66.%20Plus%20One.md)|Easy| | | 67 |[Add Binary](https://leetcode.com/problems/add-binary)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/67.%20Add%20Binary.md)|Easy| | | 69 |[Sqrt(x)](https://leetcode.com/problems/sqrtx)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/69.%20Sqrt(x).md)|Easy| | | 70 |[Climbing Stairs](https://leetcode.com/problems/climbing-stairs)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/70.%20Climbing%20Stairs.md)|Easy| | | 71 |[Simplify Path](https://leetcode.com/problems/simplify-path/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/71.%20Simplify%20Path.md)|Medium| | | 73 |[Set Matrix Zeroes](https://leetcode.com/problems/set-matrix-zeroes/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/73.%20Set%20Matrix%20Zeroes.md)|Medium| | | 74 |[Search a 2D Matrix](https://leetcode.com/problems/search-a-2d-matrix/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/74.%20Search%20a%202D%20Matrix.md)|Medium| | | 75 |[Sort Colors](https://leetcode.com/problems/sort-colors/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/75.%20Sort%20Colors.md)|Medium| | | 77 |[Combinations](https://leetcode.com/problems/combinations/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/77.%20Combinations.md)|Medium| | | 78 |[Subsets](https://leetcode.com/problems/subsets/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/78.%20Subsets.md)|Medium| | | 79 |[Word Search](https://leetcode.com/problems/word-search/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/79.%20Word%20Search.md)|Medium| | | 80 |[Remove Duplicates from Sorted Array II](https://leetcode.com/problems/remove-duplicates-from-sorted-array-ii/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/80.%20Remove%20Duplicates%20from%20Sorted%20Array%20II.md)|Medium| | | 81 |[Search in Rotated Sorted Array II](https://leetcode.com/problems/search-in-rotated-sorted-array-ii/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/81.%20Search%20in%20Rotated%20Sorted%20Array%20II.md)|Medium| | | 82 |[Remove Duplicates from Sorted List II](https://leetcode.com/problems/remove-duplicates-from-sorted-list-ii/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/82.%20Remove%20Duplicates%20from%20Sorted%20List%20II.md)|Medium| | | 83 |[Remove Duplicates from Sorted List](https://leetcode.com/problems/remove-duplicates-from-sorted-list)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/83.%20Remove%20Duplicates%20from%20Sorted%20List.md)|Easy| | | 86 |[Partition List](https://leetcode.com/problems/partition-list/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/86.%20Partition%20List.md)|Medium| | | 88 |[Merge Sorted Array](https://leetcode.com/problems/merge-sorted-array)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/88.%20Merge%20Sorted%20Array.md)|Easy| | | 89 |[Gray Code](https://leetcode.com/problems/gray-code/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/89.%20Gray%20Code.md)|Medium| | | 90 |[Subsets II](https://leetcode.com/problems/subsets-ii/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/90.%20Subsets%20II.md)|Medium| | | 91 |[Decode Ways](https://leetcode.com/problems/decode-ways/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/91.%20Decode%20Ways.md)|Medium| | | 92 |[Reverse Linked List II](https://leetcode.com/problems/reverse-linked-list-ii/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/92.%20Reverse%20Linked%20List%20II.md)|Medium| | | 93 |[Restore IP Addresses](https://leetcode.com/problems/restore-ip-addresses/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/93.%20Restore%20IP%20Addresses.md)|Medium| | | 94 |[Binary Tree Inorder Traversal](https://leetcode.com/problems/binary-tree-inorder-traversal/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/94.%20Binary%20Tree%20Inorder%20Traversal.md)|Medium| | | 95 |[Unique Binary Search Trees II](https://leetcode.com/problems/unique-binary-search-trees-ii/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/95.%20Unique%20Binary%20Search%20Trees%20II.md)|Medium| | | 96 |[Unique Binary Search Trees](https://leetcode.com/problems/unique-binary-search-trees/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/96.%20Unique%20Binary%20Search%20Trees.md)|Medium| | | 98 |[Validate Binary Search Tree](https://leetcode.com/problems/validate-binary-search-tree/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/98.%20Validate%20Binary%20Search%20Tree.md)|Medium| | | 100 |[Same Tree](https://leetcode.com/problems/same-tree)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/100.%20Same%20Tree.md)|Easy| | | 101 |[Symmetric Tree](https://leetcode.com/problems/symmetric-tree)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/101.%20Symmetric%20Tree.md)|Easy| | | 102 |[Binary Tree Level Order Traversal](https://leetcode.com/problems/binary-tree-level-order-traversal/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/102.%20Binary%20Tree%20Level%20Order%20Traversal.md)|Medium| | | 103 |[Binary Tree Zigzag Level Order Traversal](https://leetcode.com/problems/binary-tree-zigzag-level-order-traversal/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/103.%20Binary%20Tree%20Zigzag%20Level%20Order%20Traversal.md)|Medium| | | 104 |[Maximum Depth of Binary Tree](https://leetcode.com/problems/maximum-depth-of-binary-tree)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/104.%20Maximum%20Depth%20of%20Binary%20Tree.md)|Easy| | | 105 |[Construct Binary Tree from Preorder and Inorder Traversal](https://leetcode.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/105.%20Construct%20Binary%20Tree%20from%20Preorder%20and%20Inorder%20Traversal.md)|Medium| | | 106 |[Construct Binary Tree from Inorder and Postorder Traversal](https://leetcode.com/problems/construct-binary-tree-from-inorder-and-postorder-traversal/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/106.%20Construct%20Binary%20Tree%20from%20Inorder%20and%20Postorder%20Traversal.md)|Medium| | | 107 |[Binary Tree Level Order Traversal II](https://leetcode.com/problems/binary-tree-level-order-traversal-ii)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/107.%20Binary%20Tree%20Level%20Order%20Traversal%20II.md)|Easy| | | 108 |[Convert Sorted Array to Binary Search Tree](https://leetcode.com/problems/convert-sorted-array-to-binary-search-tree)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/108.%20Convert%20Sorted%20Array%20to%20Binary%20Search%20Tree.md)|Easy| | | 109 |[Convert Sorted List to Binary Search Tree](https://leetcode.com/problems/convert-sorted-list-to-binary-search-tree/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/109.%20Convert%20Sorted%20List%20to%20Binary%20Search%20Tree.md)|Medium| | | 110 |[Balanced Binary Tree](https://leetcode.com/problems/balanced-binary-tree)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/110.%20Balanced%20Binary%20Tree.md)|Easy| | | 111 |[Minimum Depth of Binary Tree](https://leetcode.com/problems/minimum-depth-of-binary-tree)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/111.%20Minimum%20Depth%20of%20Binary%20Tree.md)|Easy| | | 112 |[Path Sum](https://leetcode.com/problems/path-sum)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/112.%20Path%20Sum.md)|Easy| | | 113 |[Path Sum II](https://leetcode.com/problems/path-sum-ii/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/113.%20Path%20Sum%20II.md)|Medium| | | 114 |[Flatten Binary Tree to Linked List](https://leetcode.com/problems/flatten-binary-tree-to-linked-list/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/114.%20Flatten%20Binary%20Tree%20to%20Linked%20List.md)|Medium| | | 116 |[Populating Next Right Pointers in Each Node](https://leetcode.com/problems/populating-next-right-pointers-in-each-node/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/116.%20Populating%20Next%20Right%20Pointers%20in%20Each%20Node.md)|Medium| | | 117 |[Populating Next Right Pointers in Each Node II](https://leetcode.com/problems/populating-next-right-pointers-in-each-node-ii/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/117.%20Populating%20Next%20Right%20Pointers%20in%20Each%20Node%20II.md)|Medium| | | 118 |[Pascal's Triangle](https://leetcode.com/problems/pascals-triangle)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/118.%20Pascal's%20Triangle.md)|Easy| | | 119 |[Pascal's Triangle II](https://leetcode.com/problems/pascals-triangle-ii)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/119.%20Pascal's%20Triangle%20II.md)|Easy| | | 120 |[Triangle](https://leetcode.com/problems/triangle/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/120.%20Triangle.md)|Medium| | | 121 |[Best Time to Buy and Sell Stock](https://leetcode.com/problems/best-time-to-buy-and-sell-stock)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/121.%20Best%20Time%20to%20Buy%20and%20Sell%20Stock.md)|Easy| | | 122 |[Best Time to Buy and Sell Stock II](https://leetcode.com/problems/best-time-to-buy-and-sell-stock-ii)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/122.%20Best%20Time%20to%20Buy%20and%20Sell%20Stock%20II.md)|Easy| | | 125 |[Valid Palindrome](https://leetcode.com/problems/valid-palindrome)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/125.%20Valid%20Palindrome.md)|Easy| | | 127 |[Word Ladder](https://leetcode.com/problems/word-ladder/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/127.%20Word%20Ladder.md)|Medium| | | 129 |[Sum Root to Leaf Numbers](https://leetcode.com/problems/sum-root-to-leaf-numbers/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/129.%20Sum%20Root%20to%20Leaf%20Numbers.md)|Medium| | | 130 |[Surrounded Regions](https://leetcode.com/problems/surrounded-regions/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/130.%20Surrounded%20Regions.md)|Medium| | | 131 |[Palindrome Partitioning](https://leetcode.com/problems/palindrome-partitioning/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/131.%20Palindrome%20Partitioning.md)|Medium| | | 133 |[Clone Graph](https://leetcode.com/problems/clone-graph/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/133.%20Clone%20Graph.md)|Medium| | | 134 |[Gas Station](https://leetcode.com/problems/gas-station/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/134.%20Gas%20Station.md)|Medium| | | 136 |[Single Number](https://leetcode.com/problems/single-number)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/136.%20Single%20Number.md)|Easy| | | 137 |[Single Number II](https://leetcode.com/problems/single-number-ii/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/137.%20Single%20Number%20II.md)|Medium| | | 138 |[Copy List with Random Pointer](https://leetcode.com/problems/copy-list-with-random-pointer/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/138.%20Copy%20List%20with%20Random%20Pointer.md)|Medium| | | 139 |[Word Break](https://leetcode.com/problems/word-break/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/139.%20Word%20Break.md)|Medium| | | 141 |[Linked List Cycle](https://leetcode.com/problems/linked-list-cycle)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/141.%20Linked%20List%20Cycle.md)|Easy| | | 142 |[Linked List Cycle II](https://leetcode.com/problems/linked-list-cycle-ii/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/142.%20Linked%20List%20Cycle%20II.md)|Medium| | | 143 |[Reorder List](https://leetcode.com/problems/reorder-list/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/143.%20Reorder%20List.md)|Medium| | | 144 |[Binary Tree Preorder Traversal](https://leetcode.com/problems/binary-tree-preorder-traversal/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/144.%20Binary%20Tree%20Preorder%20Traversal.md)|Medium| | | 148 |[Sort List](https://leetcode.com/problems/sort-list/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/148.%20Sort%20List.md)|Medium| | | 150 |[Evaluate Reverse Polish Notation](https://leetcode.com/problems/evaluate-reverse-polish-notation/)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/150.%20Evaluate%20Reverse%20Polish%20Notation.md)|Medium| | | 155 |[Min Stack](https://leetcode.com/problems/min-stack)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/155.%20Min%20Stack.md)|Easy| | | 160 |[Intersection of Two Linked Lists](https://leetcode.com/problems/intersection-of-two-linked-lists)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/160.%20Intersection%20of%20Two%20Linked%20Lists.md)|Easy| | | 167 |[Two Sum II - Input array is sorted](https://leetcode.com/problems/two-sum-ii---input-array-is-sorted)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/167.%20Two%20Sum%20II%20-%20Input%20array%20is%20sorted.md)|Easy| | | 168 |[Excel Sheet Column Title](https://leetcode.com/problems/excel-sheet-column-title)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/168.%20Excel%20Sheet%20Column%20Title.md)|Easy| | | 169 |[Majority Element](https://leetcode.com/problems/majority-element)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/169.%20Majority%20Element.md)|Easy| | | 171 |[Excel Sheet Column Number](https://leetcode.com/problems/excel-sheet-column-number)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/171.%20Excel%20Sheet%20Column%20Number.md)|Easy| | | 172 |[Factorial Trailing Zeroes](https://leetcode.com/problems/factorial-trailing-zeroes)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/172.%20Factorial%20Trailing%20Zeroes.md)|Easy| | | 189 |[Rotate Array](https://leetcode.com/problems/rotate-array)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/189.%20Rotate%20Array.md)|Easy| | | 190 |[Reverse Bits](https://leetcode.com/problems/reverse-bits)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/190.%20Reverse%20Bits.md)|Easy| | | 191 |[Number of 1 Bits](https://leetcode.com/problems/number-of-1-bits)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/191.%20Number%20of%201%20Bits.md)|Easy| | | 198 |[House Robber](https://leetcode.com/problems/house-robber)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/198.%20House%20Robber.md)|Easy| | | 202 |[Happy Number](https://leetcode.com/problems/happy-number)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/202.%20Happy%20Number.md)|Easy| | | 203 |[Remove Linked List Elements](https://leetcode.com/problems/remove-linked-list-elements)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/203.%20Remove%20Linked%20List%20Elements.md)|Easy| | | 204 |[Count Primes](https://leetcode.com/problems/count-primes)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/204.%20Count%20Primes.md)|Easy| | | 205 |[Isomorphic Strings](https://leetcode.com/problems/isomorphic-strings)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/205.%20Isomorphic%20Strings.md)|Easy| | | 206 |[Reverse Linked List](https://leetcode.com/problems/reverse-linked-list)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/206.%20Reverse%20Linked%20List.md)|Easy| | | 217 |[Contains Duplicate](https://leetcode.com/problems/contains-duplicate)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/217.%20Contains%20Duplicate.md)|Easy| | | 219 |[Contains Duplicate II](https://leetcode.com/problems/contains-duplicate-ii)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/219.%20Contains%20Duplicate%20II.md)|Easy| | | 225 |[Implement Stack using Queues](https://leetcode.com/problems/implement-stack-using-queues)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/225.%20Implement%20Stack%20using%20Queues.md)|Easy| | | 226 |[Invert Binary Tree](https://leetcode.com/problems/invert-binary-tree)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/226.%20Invert%20Binary%20Tree.md)|Easy| | | 231 |[Power of Two](https://leetcode.com/problems/power-of-two)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/231.%20Power%20of%20Two.md)|Easy| | | 232 |[Implement Queue using Stacks](https://leetcode.com/problems/implement-queue-using-stacks)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/232.%20Implement%20Queue%20using%20Stacks.md)|Easy| | | 234 |[Palindrome Linked List](https://leetcode.com/problems/palindrome-linked-list)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/234.%20Palindrome%20Linked%20List.md)|Easy| | | 235 |[Lowest Common Ancestor of a Binary Search Tree](https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-search-tree)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/235.%20Lowest%20Common%20Ancestor%20of%20a%20Binary%20Search%20Tree.md)|Easy| | | 237 |[Delete Node in a Linked List](https://leetcode.com/problems/delete-node-in-a-linked-list)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/237.%20Delete%20Node%20in%20a%20Linked%20List.md)|Easy| | | 242 |[Valid Anagram](https://leetcode.com/problems/valid-anagram)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/242.%20Valid%20Anagram.md)|Easy| | | 257 |[Binary Tree Paths](https://leetcode.com/problems/binary-tree-paths)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/257.%20Binary%20Tree%20Paths.md)|Easy| | | 258 |[Add Digits](https://leetcode.com/problems/add-digits)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/258.%20Add%20Digits.md)|Easy| | | 263 |[Ugly Number](https://leetcode.com/problems/ugly-number)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/263.%20Ugly%20Number.md)|Easy| | | 268 |[Missing Number](https://leetcode.com/problems/missing-number)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/268.%20Missing%20Number.md)|Easy| | | 278 |[First Bad Version](https://leetcode.com/problems/first-bad-version)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/278.%20First%20Bad%20Version.md)|Easy| | | 283 |[Move Zeroes](https://leetcode.com/problems/move-zeroes)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/283.%20Move%20Zeroes.md)|Easy| | | 290 |[Word Pattern](https://leetcode.com/problems/word-pattern)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/290.%20Word%20Pattern.md)|Easy| | | 292 |[Nim Game](https://leetcode.com/problems/nim-game)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/292.%20Nim%20Game.md)|Easy| | | 303 |[Range Sum Query - Immutable](https://leetcode.com/problems/range-sum-query-immutable)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/303.%20Range%20Sum%20Query%20-%20Immutable.md)|Easy| | | 326 |[Power of Three](https://leetcode.com/problems/power-of-three)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/326.%20Power%20of%20Three.md)|Easy| | | 342 |[Power of Four](https://leetcode.com/problems/power-of-four)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/342.%20Power%20of%20Four.md)|Easy| | | 344 |[Reverse String](https://leetcode.com/problems/reverse-string)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/344.%20Reverse%20String.md)|Easy| | | 345 |[Reverse Vowels of a String](https://leetcode.com/problems/reverse-vowels-of-a-string)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/345.%20Reverse%20Vowels%20of%20a%20String.md)|Easy| | | 349 |[Intersection of Two Arrays](https://leetcode.com/problems/intersection-of-two-arrays)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/349.%20Intersection%20of%20Two%20Arrays.md)|Easy| | | 350 |[Intersection of Two Arrays II](https://leetcode.com/problems/intersection-of-two-arrays-ii)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/350.%20Intersection%20of%20Two%20Arrays%20II.md)|Easy| | | 367 |[Valid Perfect Square](https://leetcode.com/problems/valid-perfect-square)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/367.%20Valid%20Perfect%20Square.md)|Easy| | | 371 |[Sum of Two Integers](https://leetcode.com/problems/sum-of-two-integers)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/371.%20Sum%20of%20Two%20Integers.md)|Easy| | | 374 |[Guess Number Higher or Lower](https://leetcode.com/problems/guess-number-higher-or-lower)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/374.%20Guess%20Number%20Higher%20or%20Lower.md)|Easy| | | 383 |[Ransom Note](https://leetcode.com/problems/ransom-note)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/383.%20Ransom%20Note.md)|Easy| | | 387 |[First Unique Character in a String](https://leetcode.com/problems/first-unique-character-in-a-string)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/387.%20First%20Unique%20Character%20in%20a%20String.md)|Easy| | | 389 |[Find the Difference](https://leetcode.com/problems/find-the-difference)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/389.%20Find%20the%20Difference.md)|Easy| | | 400 |[Nth Digit](https://leetcode.com/problems/nth-digit)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/400.%20Nth%20Digit.md)|Easy| | | 404 |[Sum of Left Leaves](https://leetcode.com/problems/sum-of-left-leaves)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/404.%20Sum%20of%20Left%20Leaves.md)|Easy| | | 405 |[Convert a Number to Hexadecimal](https://leetcode.com/problems/convert-a-number-to-hexadecimal)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/405.%20Convert%20a%20Number%20to%20Hexadecimal.md)|Easy| | | 409 |[Longest Palindrome](https://leetcode.com/problems/longest-palindrome)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/409.%20Longest%20Palindrome.md)|Easy| | | 414 |[Third Maximum Number](https://leetcode.com/problems/third-maximum-number)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/414.%20Third%20Maximum%20Number.md)|Easy| | | 415 |[Add Strings](https://leetcode.com/problems/add-strings)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/415.%20Add%20Strings.md)|Easy| | | 429 |[N-ary Tree Level Order Traversal](https://leetcode.com/problems/n-ary-tree-level-order-traversal)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/429.%20N-ary%20Tree%20Level%20Order%20Traversal.md)|Easy| | | 434 |[Number of Segments in a String](https://leetcode.com/problems/number-of-segments-in-a-string)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/434.%20Number%20of%20Segments%20in%20a%20String.md)|Easy| | | 437 |[Path Sum III](https://leetcode.com/problems/path-sum-iii)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/437.%20Path%20Sum%20III.md)|Easy| | | 438 |[Find All Anagrams in a String](https://leetcode.com/problems/find-all-anagrams-in-a-string)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/438.%20Find%20All%20Anagrams%20in%20a%20String.md)|Easy| | | 441 |[Arranging Coins](https://leetcode.com/problems/arranging-coins)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/441.%20Arranging%20Coins.md)|Easy| | | 443 |[String Compression](https://leetcode.com/problems/string-compression)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/443.%20String%20Compression.md)|Easy| | | 447 |[Number of Boomerangs](https://leetcode.com/problems/number-of-boomerangs)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/447.%20Number%20of%20Boomerangs.md)|Easy| | | 448 |[Find All Numbers Disappeared in an Array](https://leetcode.com/problems/find-all-numbers-disappeared-in-an-array)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/448.%20Find%20All%20Numbers%20Disappeared%20in%20an%20Array.md)|Easy| | | 453 |[Minimum Moves to Equal Array Elements](https://leetcode.com/problems/minimum-moves-to-equal-array-elements)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/453.%20Minimum%20Moves%20to%20Equal%20Array%20Elements.md)|Easy| | | 455 |[Assign Cookies](https://leetcode.com/problems/assign-cookies)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/455.%20Assign%20Cookies.md)|Easy| | | 459 |[Repeated Substring Pattern](https://leetcode.com/problems/repeated-substring-pattern)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/459.%20Repeated%20Substring%20Pattern.md)|Easy| | | 461 |[Hamming Distance](https://leetcode.com/problems/hamming-distance)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/461.%20Hamming%20Distance.md)|Easy| | | 463 |[Island Perimeter](https://leetcode.com/problems/island-perimeter)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/463.%20Island%20Perimeter.md)|Easy| | | 475 |[Heaters](https://leetcode.com/problems/heaters)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/475.%20Heaters.md)|Easy| | | 476 |[Number Complement](https://leetcode.com/problems/number-complement)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/476.%20Number%20Complement.md)|Easy| | | 485 |[Max Consecutive Ones](https://leetcode.com/problems/max-consecutive-ones)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/485.%20Max%20Consecutive%20Ones.md)|Easy| | | 496 |[Next Greater Element I](https://leetcode.com/problems/next-greater-element-i)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/496.%20Next%20Greater%20Element%20I.md)|Easy| | | 500 |[Keyboard Row](https://leetcode.com/problems/keyboard-row)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/500.%20Keyboard%20Row.md)|Easy| | | 532 |[K-diff Pairs in an Array](https://leetcode.com/problems/k-diff-pairs-in-an-array)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/532.%20K-diff%20Pairs%20in%20an%20Array.md)|Easy| | | 561 |[Array Partition I](https://leetcode.com/problems/array-partition-i)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/561.%20Array%20Partition%20I.md)|Easy| | | 566 |[Reshape the Matrix](https://leetcode.com/problems/reshape-the-matrix)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/566.%20Reshape%20the%20Matrix.md)|Easy| | | 581 |[Shortest Unsorted Continuous Subarray](https://leetcode.com/problems/shortest-unsorted-continuous-subarray)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/581.%20Shortest%20Unsorted%20Continuous%20Subarray.md)|Easy| | | 605 |[Can Place Flowers](https://leetcode.com/problems/can-place-flowers)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/605.%20Can%20Place%20Flowers.md)|Easy| | | 628 |[Maximum Product of Three Numbers](https://leetcode.com/problems/maximum-product-of-three-numbers)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/628.%20Maximum%20Product%20of%20Three%20Numbers.md)|Easy| | | 643 |[Maximum Average Subarray I](https://leetcode.com/problems/maximum-average-subarray-i)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/643.%20Maximum%20Average%20Subarray%20I.md)|Easy| | | 661 |[Image Smoother](https://leetcode.com/problems/image-smoother)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/661.%20Image%20Smoother.md)|Easy| | | 665 |[Non-decreasing Array](https://leetcode.com/problems/non-decreasing-array)|[C++](https://github.com/ShusenTang/LeetCode/blob/master/solutions/665.%20Non-decreasing%20Array.md)|Easy| |