leetcode
leetcode copied to clipboard
:zap: Leetcode Solutions
🔥 Leetcode 🔥
Practice make Perfect
- 🎉 Unit test with jest
- ✨ Simple code
- 🎨 Readable code

Getting Start
git clone https://github.com/tangweikun/leetcode.git
cd leetcode
npm install
npm run test // also you can run `npm run watch`
Recommend
Contents
| # | Title | README | Difficulty | LeetCode | TAGS |
|---|---|---|---|---|---|
| 1 | compare-version-numbers | :green_book: | Easy | LeetCode | String |
| 2 | set-matrix-zeroes | :green_book: | Easy | LeetCode | Array |
| 3 | triangle | :green_book: | Medium | LeetCode | DP |
| 4 | length-of-last-word | :green_book: | Easy | LeetCode | String |
| 5 | baseball-game | :green_book: | Easy | LeetCode | Stack |
| 6 | 132-pattern | :green_book: | Medium | LeetCode | Stack |
| 7 | LongestCommonPrefix | :green_book: | Easy | LeetCode | String |
| 8 | longest-substring-without-repeating-characters | :green_book: | Easy | LeetCode | String |
| 9 | global-and-local-inversions | :green_book: | Medium | LeetCode | Array |
| 10 | min-stack | :green_book: | Medium | LeetCode | Stack |
| 11 | rotate-image | :green_book: | Medium | LeetCode | Array |
| 12 | task-scheduler | :green_book: | Medium | LeetCode | Array |
| 13 | search-insert-position | :green_book: | Easy | LeetCode | BinarySearch |
| 14 | judge-route-circle | :green_book: | Easy | LeetCode | String |
| 15 | advantage-shuffle | :green_book: | Medium | LeetCode | Array |
| 16 | number-of-matching-subsequences | :green_book: | Medium | LeetCode | Array |
| 17 | valid-parentheses | :green_book: | Easy | LeetCode | String |
| 18 | power-of-two | :green_book: | Easy | LeetCode | Math |
| 19 | number-of-1-bits | :green_book: | Easy | LeetCode | Bit |
| 20 | my-calendar-ii | :green_book: | Easy | LeetCode | Array |
| 21 | subdomain-visit-count | :green_book: | Easy | LeetCode | HashTable |
| 22 | top-k-frequent-elements | :green_book: | Medium | LeetCode | HashTable |
| 23 | climbing-stairs | :green_book: | Easy | LeetCode | DP |
| 24 | remove-element | :green_book: | Easy | LeetCode | Array |
| 25 | implement-strstr | :green_book: | Easy | LeetCode | String |
| 26 | largest-number-at-least-twice-of-others | :green_book: | Easy | LeetCode | Array |
| 27 | powx-n | :green_book: | Easy | LeetCode | Math |
| 28 | replace-words | :green_book: | Medium | LeetCode | HashTable |
| 29 | remove-duplicates-from-sorted-array | :green_book: | Easy | LeetCode | Two Pointer |
| 30 | roman-to-integer | :green_book: | Easy | LeetCode | Math |
| 31 | maximum-subarray | :green_book: | Easy | LeetCode | Array |
| 32 | plus-one | :green_book: | Easy | LeetCode | Math |
| 33 | add-binary | :green_book: | Easy | LeetCode | Math |
| 34 | sqrtx | :green_book: | Easy | LeetCode | Math |
| 35 | merge-sorted-array | :green_book: | Easy | LeetCode | Array |
| 36 | count-and-say | :green_book: | Easy | LeetCode | String |
| 37 | best-time-to-buy-and-sell-stock | :green_book: | Easy | LeetCode | Array |
| 38 | best-time-to-buy-and-sell-stock-ii | :green_book: | Easy | LeetCode | Array |
| 39 | valid-palindrome | :green_book: | Easy | LeetCode | TwoPointers |
| 40 | single-number | :green_book: | Easy | LeetCode | Bit |
| 41 | two-sum-ii-input-array-is-sorted | :green_book: | Easy | LeetCode | Array |
| 42 | rotate-array | :green_book: | Easy | LeetCode | Array |
| 43 | reverse-bits | :green_book: | Easy | LeetCode | Bit |
| 44 | asteroid-collision | :green_book: | Medium | LeetCode | Stack |
| 45 | top-k-frequent-words | :green_book: | Medium | LeetCode | HashTable |
| 46 | contiguous-array | :green_book: | Medium | LeetCode | HashTable |
| 47 | group-anagrams | :green_book: | Easy | LeetCode | HashTable |
| 48 | happy-number | :green_book: | Easy | LeetCode | Math |
| 49 | fizz-buzz | :green_book: | Easy | LeetCode | Math |
| 50 | hamming-distance | :green_book: | Easy | LeetCode | Bit |
| 51 | intersection-of-two-arrays | :green_book: | Easy | LeetCode | TowPointers |
| 52 | intersection-of-two-arrays-ii | :green_book: | Easy | LeetCode | TwoPointers |
| 53 | island-perimeter | :green_book: | Easy | LeetCode | HashTable |
| 54 | keyboard-row | :green_book: | Easy | LeetCode | HashTable |
| 55 | longest-palindrome | :green_book: | Easy | LeetCode | HashTable |
| 56 | longest-continuous-increasing-subsequence | :green_book: | Easy | LeetCode | Array |
| 57 | longest-harmonious-subsequence | :green_book: | Easy | LeetCode | HashTable |
| 58 | first-unique-character-in-a-string | :green_book: | Easy | LeetCode | String |
| 59 | find-the-difference | :green_book: | Easy | LeetCode | HashTable |
| 60 | add-digits | :green_book: | Easy | LeetCode | Math |
| 61 | add-strings | :green_book: | Easy | LeetCode | Math |
| 62 | array-partition-i | :green_book: | Easy | LeetCode | Array |
| 63 | arranging-coins | :green_book: | Easy | LeetCode | Math |
| 64 | contains-duplicate | :green_book: | Easy | LeetCode | Array |
| 65 | contains-duplicate-ii | :green_book: | Easy | LeetCode | Array |
| 66 | count-binary-substrings | :green_book: | Easy | LeetCode | String |
| 67 | detect-capital | :green_book: | Easy | LeetCode | String |
| 68 | distribute-candies | :green_book: | Easy | LeetCode | HashTable |
| 69 | count-primes | :green_book: | Easy | LeetCode | Math |
| 70 | base-7 | :green_book: | Easy | LeetCode | |
| 71 | power-of-three | :green_book: | Easy | LeetCode | Math |
| 72 | power-of-four | :green_book: | Easy | LeetCode | math |
| 73 | number-of-segments-in-a-string | :green_book: | Easy | LeetCode | String |
| 74 | reverse-string | :green_book: | Easy | LeetCode | String |
| 75 | reverse-string-ii | :green_book: | Easy | LeetCode | String |
| 76 | reverse-words-in-a-string-iii | :green_book: | Easy | LeetCode | String |
| 77 | reverse-vowels-of-a-string | :green_book: | Easy | LeetCode | String |
| 78 | ugly-number | :green_book: | Easy | LeetCode | Math |
| 79 | valid-anagram | :green_book: | Easy | LeetCode | HashTable |
| 80 | valid-palindrome-ii | :green_book: | Easy | LeetCode | String |
| 81 | word-pattern | :green_book: | Easy | LeetCode | HashTable |
| 82 | binary-number-with-alternating-bits | :green_book: | Easy | LeetCode | Bit |
| 83 | find-all-anagrams-in-a-string | :green_book: | Easy | LeetCode | HashTable |
| 84 | factorial-trailing-zeroes | :green_book: | Easy | LeetCode | Math |
| 85 | find-smallest-letter-greater-than-target | :green_book: | Easy | LeetCode | BinarySearch |
| 86 | find-pivot-index | :green_book: | Easy | LeetCode | Array |
| 87 | license-key-formatting | :green_book: | Easy | LeetCode | |
| 88 | longest-uncommon-subsequence-i | :green_book: | Easy | LeetCode | String |
| 89 | majority-element | :green_book: | Easy | LeetCode | Array |
| 90 | perfect-number | :green_book: | Easy | LeetCode | Math |
| 91 | prime-number-of-set-bits-in-binary-representation | :green_book: | Easy | LeetCode | Bit |
| 92 | number-complement | :green_book: | Easy | LeetCode | Bit |
| 93 | move-zeroes | :green_book: | Easy | LeetCode | Array |
| 94 | relative-ranks | :green_book: | Easy | LeetCode | |
| 95 | valid-perfect-square | :green_book: | Easy | LeetCode | Math |
| 96 | string-compression | :green_book: | Easy | LeetCode | String |
| 97 | student-attendance-record-i | :green_book: | Easy | LeetCode | String |
| 98 | max-consecutive-ones | :green_book: | Easy | LeetCode | Array |
| 99 | maximum-average-subarray-i | :green_book: | Easy | LeetCode | Array |
| 100 | minimum-index-sum-of-two-lists | :green_book: | Easy | LeetCode | |
| 101 | sum-of-square-numbers | :green_book: | Easy | LeetCode | Math |
| 102 | set-mismatch | :green_book: | Easy | LeetCode | Math |
| 103 | find-the-duplicate-number | :green_book: | Medium | LeetCode | Math |
| 104 | self-dividing-numbers | :green_book: | Easy | LeetCode | Math |
| 105 | missing-number | :green_book: | Easy | LeetCode | Math |
| 106 | maximum-product-of-three-numbers | :green_book: | Easy | LeetCode | Math |
| 107 | complex-number-multiplication | :green_book: | Medium | LeetCode | Math |
| 108 | ugly-number-ii | :green_book: | Medium | LeetCode | Math, DP |
| 109 | valid-square | :green_book: | Medium | LeetCode | Math |
| 110 | 1-bit-and-2-bit-characters | :green_book: | Easy | LeetCode | Array |
| 111 | can-place-flowers | :green_book: | Easy | LeetCode | Array |
| 112 | find-all-numbers-disappeared-in-an-array | :green_book: | Easy | LeetCode | Array |
| 113 | container-with-most-water | :green_book: | Medium | LeetCode | Array |
| 114 | degree-of-an-array | :green_book: | Easy | LeetCode | Array |
| 115 | find-all-duplicates-in-an-array | :green_book: | Easy | LeetCode | Array |
| 116 | find-minimum-in-rotated-sorted-array | :green_book: | Easy | LeetCode | Array |
| 117 | find-minimum-in-rotated-sorted-array-ii | :green_book: | Easy | LeetCode | Array |
| 118 | find-peak-element | :green_book: | Medium | LeetCode | Array |
| 119 | jump-game | :green_book: | Medium | LeetCode | DP |
| 120 | jump-game-ii | :green_book: | Hard | LeetCode | DP |
| 121 | max-chunks-to-make-sorted | :green_book: | Medium | LeetCode | Array |
| 122 | maximum-swap | :green_book: | Medium | LeetCode | Array |
| 123 | min-cost-climbing-stairs | :green_book: | Medium | LeetCode | DP |
| 124 | minimum-size-subarray-sum | :green_book: | Medium | LeetCode | Array |
| 125 | remove-duplicates-from-sorted-array-ii | :green_book: | Medium | LeetCode | Array |
| 126 | search-for-a-range | :green_book: | Medium | LeetCode | Array |
| 127 | subarray-product-less-than-k | :green_book: | Medium | LeetCode | Array |
| 128 | daily-temperatures | :green_book: | Medium | LeetCode | Stack |
| 129 | sum-of-two-integers | :green_book: | Easy | LeetCode | Bit |
| 130 | jewels-and-stones | :green_book: | Easy | LeetCode | HashTable |
| 131 | number-of-boomerangs | :green_book: | Easy | LeetCode | HashTable |
| 132 | isomorphic-strings | :green_book: | Easy | LeetCode | HashTable |
| 133 | counting-bits | :green_book: | Easy | LeetCode | Bit |
| 134 | valid-triangle-number | :green_book: | Medium | LeetCode | Array |
| 135 | repeated-substring-pattern | :green_book: | Easy | LeetCode | String |
| 136 | maximum-depth-of-binary-tree | :green_book: | Easy | LeetCode | BinaryTree |
| 137 | merge-two-binary-trees | :green_book: | Easy | LeetCode | BinaryTree |
| 138 | average-of-levels-in-binary-tree | :green_book: | Easy | LeetCode | BinaryTree |
| 139 | find-duplicate-subtrees | :green_book: | Medium | LeetCode | BinaryTree |
| 140 | minimum-window-substring | :green_book: | Hard | LeetCode | String |
| 141 | invert-binary-tree | :green_book: | Easy | LeetCode | BinaryTree |
| 142 | two-sum-iv-input-is-a-bst | :green_book: | Easy | LeetCode | BinaryTree |
| 143 | same-tree | :green_book: | Easy | LeetCode | BinaryTree |
| 144 | sum-of-left-leaves | :green_book: | Easy | LeetCode | BinaryTree |
| 145 | trim-a-binary-search-tree | :green_book: | Easy | LeetCode | BinaryTree |
| 146 | toeplitz-matrix | :green_book: | Easy | LeetCode | Array |
| 147 | reshape-the-matrix | :green_book: | Easy | LeetCode | Array |
| 148 | next-greater-element-i | :green_book: | Easy | LeetCode | Array |
| 149 | nim-game | :green_book: | Easy | LeetCode | BrainTeaser |
| 150 | rotated-digits | :green_book: | Easy | LeetCode | String |
| 151 | excel-sheet-column-number | :green_book: | Easy | LeetCode | Math |
| 152 | ransom-note | :green_book: | Easy | LeetCode | String |
| 153 | k-diff-pairs-in-an-array | :green_book: | Easy | LeetCode | Array |
| 154 | third-maximum-number | :green_book: | Easy | LeetCode | Array |
| 155 | single-element-in-a-sorted-array | :green_book: | Medium | LeetCode | Array |
| 156 | single-number-iii | :green_book: | Medium | LeetCode | Array |
| 157 | arithmetic-slices | :green_book: | Medium | LeetCode | Math,DP |
| 158 | palindromic-substrings | :green_book: | Medium | LeetCode | String,DP |
| 159 | maximum-xor-of-two-numbers-in-an-array | :green_book: | Medium | LeetCode | Bit |
| 160 | sort-characters-by-frequency | :green_book: | Medium | LeetCode | HashTable |
| 161 | rotate-string | :green_book: | Medium | LeetCode | String |
| 162 | product-of-array-except-self | :green_book: | Medium | LeetCode | Array |
| 163 | teemo-attacking | :green_book: | Medium | LeetCode | Array |
| 164 | queue-reconstruction-by-height | :green_book: | Medium | LeetCode | Greedy |
| 165 | 4sum-ii | :green_book: | Medium | LeetCode | HashTable |
| 166 | 01-matrix | :green_book: | Medium | LeetCode | HashTable |
| 167 | 3sum | :green_book: | Medium | LeetCode | TwoPointers |
| 168 | 3sum-closest | :green_book: | Medium | LeetCode | TwoPointers |
| 169 | 4Sum | :green_book: | Medium | LeetCode | TwoPointers |
| 170 | add-two-numbers | :green_book: | Medium | LeetCode | LinkedList |
| 171 | add-two-numbers-ii | :green_book: | Medium | LeetCode | LinkedList |
| 172 | add-and-search-word-data-structure-design | :green_book: | Medium | LeetCode | LinkedList |
| 173 | additive-number | :green_book: | Medium | LeetCode | String |
| 174 | assign-cookies | :green_book: | Easy | LeetCode | Greedy |
| 175 | basic-calculator | :green_book: | Medium | LeetCode | Stack |
| 176 | basic-calculator-ii | :green_book: | Medium | LeetCode | Stack |
| 177 | target-sum | :green_book: | Medium | LeetCode | DP |
| 178 | implement-queue-using-stacks | :green_book: | Easy | LeetCode | Stack |
| 179 | implement-stack-using-queues | :green_book: | Easy | LeetCode | Stack |
| 180 | next-greater-element-ii | :green_book: | Medium | LeetCode | Stack |
| 181 | binary-tree-tilt | :green_book: | Easy | LeetCode | Tree |
| 182 | diameter-of-binary-tree | :green_book: | Easy | LeetCode | Tree |
| 183 | symmetric-tree | :green_book: | Easy | LeetCode | Tree |
| 184 | second-minimum-node-in-a-binary-tree | :green_book: | Easy | LeetCode | Tree |
| 185 | subtree-of-another-tree | :green_book: | Easy | LeetCode | Tree |
| 186 | binary-tree-paths | :green_book: | Easy | LeetCode | DFS |
| 187 | path-sum | :green_book: | Easy | LeetCode | DFS |
| 188 | minimum-depth-of-binary-tree | :green_book: | Easy | LeetCode | DFS |
| 189 | find-bottom-left-tree-value | :green_book: | Medium | LeetCode | DFS |
| 190 | decode-string | :green_book: | Medium | LeetCode | DFS,Stack |
| 191 | find-largest-value-in-each-tree-row | :green_book: | Medium | LeetCode | DFS |
| 192 | max-area-of-island | :green_book: | Easy | LeetCode | DFS |
| 193 | flood-fill | :green_book: | Easy | LeetCode | DFS |
| 194 | balanced-binary-tree | :green_book: | Easy | LeetCode | DFS |
| 195 | friend-circles | :green_book: | Medium | LeetCode | DFS |
| 196 | house-robber-iii | :green_book: | Medium | LeetCode | DFS |
| 197 | increasing-subsequences | :green_book: | Medium | LeetCode | DFS |
| 198 | sum-root-to-leaf-numbers | :green_book: | Medium | LeetCode | DFS |
| 199 | number-of-islands | :green_book: | Medium | LeetCode | DFS |
| 200 | path-sum-ii | :green_book: | Medium | LeetCode | DFS |
| 201 | matchsticks-to-square | :green_book: | Medium | LeetCode | DFS |
| 202 | two-sum | :green_book: | Easy | LeetCode | Array |
| 203 | unique-morse-code-words | :green_book: | Easy | LeetCode | Hash |
| 204 | image-smoother | :green_book: | Easy | LeetCode | Array |
| 205 | pascals-triangle | :green_book: | Easy | LeetCode | Array |
| 206 | pascals-triangle-ii | :green_book: | Easy | LeetCode | Array |
| 207 | shortest-unsorted-continuous-subarray | :green_book: | Easy | LeetCode | Array |
| 208 | Non-decreasingArray | :green_book: | Easy | LeetCode | Array |
| 209 | range-addition-ii | :green_book: | Easy | LeetCode | Math |
| 210 | repeated-string-match | :green_book: | Easy | LeetCode | Math |
| 211 | house-robber | :green_book: | Easy | LeetCode | DP |
| 212 | minimum-ascii-delete-sum-for-two-strings | :green_book: | Medium | LeetCode | DP |
| 213 | maximum-length-of-pair-chain | :green_book: | Medium | LeetCode | DP,Greedy |
| 214 | integer-break | :green_book: | Medium | LeetCode | DP |
| 215 | count-numbers-with-unique-digits | :green_book: | Medium | LeetCode | DP |
| 216 | best-time-to-buy-and-sell-stock-with-transaction-fee | :green_book: | Medium | LeetCode | DP,Greedy |
| 217 | shopping-offers | :green_book: | Medium | LeetCode | DP,DFS |
| 218 | predict-the-winner | :green_book: | Medium | LeetCode | DP |
| 219 | 2-keys-keyboard | :green_book: | Medium | LeetCode | DP |
| 220 | is-subsequence | :green_book: | Medium | LeetCode | DP |
| 221 | delete-and-earn | :green_book: | Medium | LeetCode | DP |
| 222 | longest-palindromic-subsequence | :green_book: | Medium | LeetCode | DP |
| 223 | combination-sum-iv | :green_book: | Medium | LeetCode | DP |
| 224 | maximum-length-of-repeated-subarray | :green_book: | Medium | LeetCode | DP |
| 225 | minimum-path-sum | :green_book: | Medium | LeetCode | DP |
| 226 | largest-sum-of-averages | :green_book: | Medium | LeetCode | DP |
| 227 | longest-increasing-subsequence | :green_book: | Medium | LeetCode | DP |
| 228 | partition-equal-subset-sum | :green_book: | Medium | LeetCode | DP |
| 229 | flipping-an-image | :green_book: | Easy | LeetCode | Array |
| 230 | positions-of-large-groups | :green_book: | Easy | LeetCode | Array |
| 231 | magic-squares-in-grid | :green_book: | Easy | LeetCode | Array |
| 232 | array-nesting | :green_book: | Medium | LeetCode | Array |
| 233 | combination-sum-iii | :green_book: | Medium | LeetCode | Backtracking |
| 234 | subsets | :green_book: | Medium | LeetCode | Backtracking |
| 235 | my-calendar-i | :green_book: | Medium | LeetCode | Array |
| 236 | combination-sum | :green_book: | Medium | LeetCode | Backtracking |
| 237 | spiral-matrix-ii | :green_book: | Medium | LeetCode | Backtracking |
| 238 | number-of-subarrays-with-bounded-maximum | :green_book: | Medium | LeetCode | Array |
| 239 | subarray-sum-equals-k | :green_book: | Medium | LeetCode | HashTable |
| 240 | sort-colors | :green_book: | Medium | LeetCode | HashTable |
| 241 | subsets-ii | :green_book: | Medium | LeetCode | Backtracking |
| 242 | summary-ranges | :green_book: | Medium | LeetCode | Array |
| 243 | merge-intervals | :green_book: | Medium | LeetCode | Array |
| 244 | minimum-moves-to-equal-array-elements | :green_book: | Easy | LeetCode | Math |
| 245 | minimum-moves-to-equal-array-elements-ii | :green_book: | Easy | LeetCode | Math |
| 246 | backspace-string-compare | :green_book: | Easy | LeetCode | Stack |
| 247 | partition-labels | :green_book: | Medium | LeetCode | TwoPointers,Greedy |
| 248 | peak-index-in-a-mountain-array | :green_book: | Easy | LeetCode | BinarySearch |
| 249 | goat-latin | :green_book: | Easy | LeetCode | String |
| 250 | custom-sort-string | :green_book: | Medium | LeetCode | String |
| 251 | nth-digit | :green_book: | Easy | LeetCode | Math |
| 252 | transpose-matrix | :green_book: | Easy | LeetCode | Array |
| 253 | maximize-distance-to-closest-person | :green_book: | Easy | LeetCode | Array |
| 254 | bulls-and-cows | :green_book: | Medium | LeetCode | HashTable |
| 255 | construct-the-rectangle | :green_book: | Easy | LeetCode | Math |
| 256 | most-common-word | :green_book: | Easy | LeetCode | String |
| 257 | shortest-distance-to-a-character | :green_book: | Easy | LeetCode | String |
| 258 | binary-gap | :green_book: | Easy | LeetCode | String |
| 259 | lemonade-change | :green_book: | Easy | LeetCode | Greedy |
| 260 | excel-sheet-column-title | :green_book: | Easy | LeetCode | Math |
| 261 | largest-triangle-area | :green_book: | Easy | LeetCode | Math |
| 262 | reordered-power-of-2 | :green_book: | Medium | LeetCode | Math |
| 263 | spiral-matrix | Medium | LeetCode | Math | |
| 264 | long-pressed-name | Easy | LeetCode | String | |
| 265 | uncommon-words-from-two-sentences | Easy | LeetCode | String | |
| 266 | reverse-only-letters | Easy | LeetCode | String | |
| 267 | powerful-integers | Easy | LeetCode | Math | |
| 268 | minimum-add-to-make-parentheses-valid | Easy | LeetCode | String |
