https://github.com/convexwf/leetcode
Solution to Leetcode problems. 在此记录 Leetcode 题目的解法思路,以C++为主。
https://github.com/convexwf/leetcode
algorithm cpp data-structures leetcode
Last synced: 3 months ago
JSON representation
Solution to Leetcode problems. 在此记录 Leetcode 题目的解法思路,以C++为主。
- Host: GitHub
- URL: https://github.com/convexwf/leetcode
- Owner: convexwf
- License: mit
- Created: 2020-12-20T11:41:12.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2025-06-21T22:00:23.000Z (5 months ago)
- Last Synced: 2025-06-21T23:17:46.449Z (5 months ago)
- Topics: algorithm, cpp, data-structures, leetcode
- Language: C++
- Homepage:
- Size: 6.92 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Leetcode Solution
| **All** | **Locked** | **Unlocked** | **Easy** | **Medium** | **Hard** |
| :---: | :---: | :---: | :---: | :---: | :---: |
| 1056 | 153 | 903 | 240 | 599 | 217 |
## Table of Leetcode Solution
| Title | Difficulty | Tags | Solution |
| --- | --- | --- | --- |
| [0001.Two Sum](.doc/0001.two-sum.md) | Easy (52.31%) | array, hash-table, sort | [cpp](.cpp/0001.two-sum.cpp), [rust](.rust/0001.two-sum.rs) |
| [0002.Add Two Numbers](.doc/0002.add-two-numbers.md) | Medium (42.66%) | linked-list, arithmetic | [cpp](.cpp/0002.add-two-numbers.cpp) |
| [0003.Longest Substring Without Repeating Characters](.doc/0003.longest-substring-without-repeating-characters.md) | Medium (34.70%) | hash-table, sliding-window | [cpp](.cpp/0003.longest-substring-without-repeating-characters.cpp) |
| [0004.Median of Two Sorted Arrays](.doc/0004.median-of-two-sorted-arrays.md) | Hard (39.79%) | array, binary-search, divide-and-conquer | [cpp](.cpp/0004.median-of-two-sorted-arrays.cpp) |
| [0005.Longest Palindromic Substring](.doc/0005.longest-palindromic-substring.md) | Medium (33.77%) | string, dynamic-programming, palindrome | [cpp](.cpp/0005.longest-palindromic-substring.cpp) |
| [0006.Zigzag Conversion](.doc/0006.zigzag-conversion.md) | Medium (47.76%) | string | [cpp](.cpp/0006.zigzag-conversion.cpp) |
| [0007.Reverse Integer](.doc/0007.reverse-integer.md) | Medium (28.52%) | math | [cpp](.cpp/0007.reverse-integer.cpp) |
| [0008.String to Integer (atoi)](.doc/0008.string-to-integer-atoi.md) | Medium (17.18%) | math, string | [cpp](.cpp/0008.string-to-integer-atoi.cpp) |
| [0009.Palindrome Number](.doc/0009.palindrome-number.md) | Easy (56.14%) | math, palindrome | [cpp](.cpp/0009.palindrome-number.cpp) |
| [0010.Regular Expression Matching](.doc/0010.regular-expression-matching.md) | Hard (28.14%) | dynamic-programming, backtracking, string | [cpp](.cpp/0010.regular-expression-matching.cpp) |
| [0011.Container With Most Water](.doc/0011.container-with-most-water.md) | Medium (55.13%) | array, two-pointers | [cpp](.cpp/0011.container-with-most-water.cpp) |
| [0012.Integer to Roman](.doc/0012.integer-to-roman.md) | Medium (64.59%) | greedy | [cpp](.cpp/0012.integer-to-roman.cpp) |
| [0013.Roman to Integer](.doc/0013.roman-to-integer.md) | Easy (61.05%) | hash-table, string | [cpp](.cpp/0013.roman-to-integer.cpp) |
| [0014.Longest Common Prefix](.doc/0014.longest-common-prefix.md) | Easy (42.67%) | string, sort | [cpp](.cpp/0014.longest-common-prefix.cpp) |
| [0015.3Sum](.doc/0015.3-sum.md) | Medium (34.41%) | array, two-pointers, sorting, target-sum | [cpp](.cpp/0015.3-sum.cpp) |
| [0016.3Sum Closest](.doc/0016.3-sum-closest.md) | Medium (45.79%) | array, two-pointers, sorting, target-sum | [cpp](.cpp/0016.3-sum-closest.cpp) |
| [0017.Letter Combinations of a Phone Number](.doc/0017.letter-combinations-of-a-phone-number.md) | Medium (60.27%) | string, backtracking, depth-first-search, breadth-first-search, recursion | [cpp](.cpp/0017.letter-combinations-of-a-phone-number.cpp) |
| [0018.4Sum](.doc/0018.4-sum.md) | Medium (36.23%) | array, two-pointers, target-sum | [cpp](.cpp/0018.4-sum.cpp) |
| [0019.Remove Nth Node From End of List](.doc/0019.remove-nth-node-from-end-of-list.md) | Medium (45.15%) | linked-list, fast-slow-pointers | [cpp](.cpp/0019.remove-nth-node-from-end-of-list.cpp) |
| [0020.Valid Parentheses](.doc/0020.valid-parentheses.md) | Easy (40.54%) | string, stack | [cpp](.cpp/0020.valid-parentheses.cpp) |
| [0021.Merge Two Sorted Lists](.doc/0021.merge-two-sorted-lists.md) | Easy (64.18%) | linked-list | [cpp](.cpp/0021.merge-two-sorted-lists.cpp) |
| [0022.Generate Parentheses](.doc/0022.generate-parentheses.md) | Medium (74.44%) | string, backtracking, parentheses | [cpp](.cpp/0022.generate-parentheses.cpp) |
| [0023.Merge k Sorted Lists](.doc/0023.merge-k-sorted-lists.md) | Hard (52.59%) | linked-list, heap | [cpp](.cpp/0023.merge-k-sorted-lists.cpp) |
| [0024.Swap Nodes in Pairs](.doc/0024.swap-nodes-in-pairs.md) | Medium (64.24%) | linked-list, recursion | [cpp](.cpp/0024.swap-nodes-in-pairs.cpp) |
| [0025.Reverse Nodes in k-Group](.doc/0025.reverse-nodes-in-k-group.md) | Hard (58.47%) | linked-list | [cpp](.cpp/0025.reverse-nodes-in-k-group.cpp) |
| [0026.Remove Duplicates from Sorted Array](.doc/0026.remove-duplicates-from-sorted-array.md) | Easy (55.42%) | array, two-pointers, in-place-algorithm | [cpp](.cpp/0026.remove-duplicates-from-sorted-array.cpp) |
| [0027.Remove Element](.doc/0027.remove-element.md) | Easy (56.58%) | array, two-pointers, in-place-algorithm | [cpp](.cpp/0027.remove-element.cpp) |
| [0028.Find the Index of the First Occurrence in a String](.doc/0028.find-the-index-of-the-first-occurrence-in-a-string.md) | Easy (42.16%) | string | |
| [0029.Divide Two Integers](.doc/0029.divide-two-integers.md) | Medium (17.43%) | math, arithmetic, bit-manipulation | [cpp](.cpp/0029.divide-two-integers.cpp) |
| [0030.Substring with Concatenation of All Words](.doc/0030.substring-with-concatenation-of-all-words.md) | Hard (32.51%) | hash-table, sliding-window, string | [cpp](.cpp/0030.substring-with-concatenation-of-all-words.cpp) |
| [0031.Next Permutation](.doc/0031.next-permutation.md) | Medium (39.77%) | array, permutation | [cpp](.cpp/0031.next-permutation.cpp) |
| [0032.Longest Valid Parentheses](.doc/0032.longest-valid-parentheses.md) | Hard (34.08%) | string, dynamic-programming, stack, parentheses, subarray | [cpp](.cpp/0032.longest-valid-parentheses.cpp) |
| [0033.Search in Rotated Sorted Array](.doc/0033.search-in-rotated-sorted-array.md) | Medium (40.66%) | array, binary-search, search-in-rotated-sorted-array | [cpp](.cpp/0033.search-in-rotated-sorted-array.cpp) |
| [0034.Find First and Last Position of Element in Sorted Array](.doc/0034.find-first-and-last-position-of-element-in-sorted-array.md) | Medium (44.19%) | array, binary-search | [cpp](.cpp/0034.find-first-and-last-position-of-element-in-sorted-array.cpp) |
| [0035.Search Insert Position](.doc/0035.search-insert-position.md) | Easy (45.77%) | array, binary-search | [cpp](.cpp/0035.search-insert-position.cpp) |
| [0036.Valid Sudoku](.doc/0036.valid-sudoku.md) | Medium (59.55%) | hash-table, bit-manipulation | [cpp](.cpp/0036.valid-sudoku.cpp) |
| [0037.Sudoku Solver](.doc/0037.sudoku-solver.md) | Hard (60.92%) | hash-table, backtracking, bit-manipulation | [cpp](.cpp/0037.sudoku-solver.cpp) |
| [0038.Count and Say](.doc/0038.count-and-say.md) | Medium (54.89%) | string, recursion | [cpp](.cpp/0038.count-and-say.cpp) |
| [0039.Combination Sum](.doc/0039.combination-sum.md) | Medium (71.28%) | sort, backtracking, combination | [cpp](.cpp/0039.combination-sum.cpp) |
| [0040.Combination Sum II](.doc/0040.combination-sum-ii.md) | Medium (54.43%) | array, backtracking, sort, combination | [cpp](.cpp/0040.combination-sum-ii.cpp) |
| [0041.First Missing Positive](.doc/0041.first-missing-positive.md) | Hard (39.42%) | array | [cpp](.cpp/0041.first-missing-positive.cpp) |
| [0042.Trapping Rain Water](.doc/0042.trapping-rain-water.md) | Hard (61.04%) | array, two-pointers, monotonic-stack, stack | [cpp](.cpp/0042.trapping-rain-water.cpp) |
| [0043.Multiply Strings](.doc/0043.multiply-strings.md) | Medium (40.29%) | string, arithmetic | [cpp](.cpp/0043.multiply-strings.cpp) |
| [0044.Wildcard Matching](.doc/0044.wildcard-matching.md) | Hard (27.85%) | dynamic-programming, backtracking, string | [cpp](.cpp/0044.wildcard-matching.cpp) |
| [0045.Jump Game II](.doc/0045.jump-game-ii.md) | Medium (40.41%) | array, greedy | [cpp](.cpp/0045.jump-game-ii.cpp) |
| [0046.Permutations](.doc/0046.permutations.md) | Medium (78.23%) | depth-first-search, backtracking | [cpp](.cpp/0046.permutations.cpp) |
| [0047.Permutations II](.doc/0047.permutations-ii.md) | Medium (59.09%) | depth-first-search, backtracking, hash-table | [cpp](.cpp/0047.permutations-ii.cpp) |
| [0048.Rotate Image](.doc/0048.rotate-image.md) | Medium (74.15%) | array, matrix | [cpp](.cpp/0048.rotate-image.cpp) |
| [0049.Group Anagrams](.doc/0049.group-anagrams.md) | Medium (68.43%) | hash-table, string, sort | [cpp](.cpp/0049.group-anagrams.cpp) |
| [0050.Pow(x, n)](.doc/0050.pow-x-n.md) | Medium (34.70%) | math, divide-and-conquer, bit-manipulation | [cpp](.cpp/0050.pow-x-n.cpp) |
| [0051.N-Queens](.doc/0051.n-queens.md) | Hard (67.99%) | backtracking | [cpp](.cpp/0051.n-queens.cpp) |
| [0052.N-Queens II](.doc/0052.n-queens-ii.md) | Hard (73.76%) | backtracking | [cpp](.cpp/0052.n-queens-ii.cpp) |
| [0053.Maximum Subarray](.doc/0053.maximum-subarray.md) | Medium (50.72%) | divide-and-conquer, dynamic-programming, array, subarray | [cpp](.cpp/0053.maximum-subarray.cpp) |
| [0054.Spiral Matrix](.doc/0054.spiral-matrix.md) | Medium (49.28%) | matrix, array | [cpp](.cpp/0054.spiral-matrix.cpp) |
| [0055.Jump Game](.doc/0055.jump-game.md) | Medium (38.50%) | array, greedy | [cpp](.cpp/0055.jump-game.cpp) |
| [0056.Merge Intervals](.doc/0056.merge-intervals.md) | Medium (47.24%) | sort, interval | [cpp](.cpp/0056.merge-intervals.cpp) |
| [0057.Insert Interval](.doc/0057.insert-interval.md) | Medium (41.42%) | sort, interval, array | [cpp](.cpp/0057.insert-interval.cpp) |
| [0058.Length of Last Word](.doc/0058.length-of-last-word.md) | Easy (51.26%) | string, two-pointers | [cpp](.cpp/0058.length-of-last-word.cpp) |
| [0059.Spiral Matrix II](.doc/0059.spiral-matrix-ii.md) | Medium (70.98%) | array, matrix | [cpp](.cpp/0059.spiral-matrix-ii.cpp) |
| [0060.Permutation Sequence](.doc/0060.permutation-sequence.md) | Hard (46.75%) | math, permutation | [cpp](.cpp/0060.permutation-sequence.cpp) |
| [0061.Rotate List](.doc/0061.rotate-list.md) | Medium (37.64%) | linked-list, fast-slow-pointers | [cpp](.cpp/0061.rotate-list.cpp) |
| [0062.Unique Paths](.doc/0062.unique-paths.md) | Medium (64.23%) | dynamic-programming, math | [cpp](.cpp/0062.unique-paths.cpp) |
| [0063.Unique Paths II](.doc/0063.unique-paths-ii.md) | Medium (41.49%) | dynamic-programming | [cpp](.cpp/0063.unique-paths-ii.cpp) |
| [0064.Minimum Path Sum](.doc/0064.minimum-path-sum.md) | Medium (63.76%) | dynamic-programming | [cpp](.cpp/0064.minimum-path-sum.cpp) |
| [0065.Valid Number](.doc/0065.valid-number.md) | Hard (19.72%) | string, finite-automata | [cpp](.cpp/0065.valid-number.cpp) |
| [0066.Plus One](.doc/0066.plus-one.md) | Easy (45.16%) | array | [cpp](.cpp/0066.plus-one.cpp) |
| [0067.Add Binary](.doc/0067.add-binary.md) | Easy (53.45%) | string, math | [cpp](.cpp/0067.add-binary.cpp) |
| [0068.Text Justification](.doc/0068.text-justification.md) | Hard (43.18%) | string, greedy | [cpp](.cpp/0068.text-justification.cpp) |
| [0069.Sqrt(x)](.doc/0069.sqrt-x.md) | Easy (38.68%) | math, binary-search | [cpp](.cpp/0069.sqrt-x.cpp) |
| [0070.Climbing Stairs](.doc/0070.climbing-stairs.md) | Easy (52.85%) | dynamic-programming, fibonacci-number | [cpp](.cpp/0070.climbing-stairs.cpp) |
| [0071.Simplify Path](.doc/0071.simplify-path.md) | Medium (42.23%) | string, stack | [cpp](.cpp/0071.simplify-path.cpp) |
| [0072.Edit Distance](.doc/0072.edit-distance.md) | Medium (56.31%) | string, dynamic-programming | [cpp](.cpp/0072.edit-distance.cpp) |
| [0073.Set Matrix Zeroes](.doc/0073.set-matrix-zeroes.md) | Medium (55.42%) | array | [cpp](.cpp/0073.set-matrix-zeroes.cpp) |
| [0074.Search a 2D Matrix](.doc/0074.search-a-2-d-matrix.md) | Medium (50.00%) | matrix, binary-search | [cpp](.cpp/0074.search-a-2-d-matrix.cpp) |
| [0075.Sort Colors](.doc/0075.sort-colors.md) | Medium (62.07%) | array, two-pointers, sort | [cpp](.cpp/0075.sort-colors.cpp) |
| [0076.Minimum Window Substring](.doc/0076.minimum-window-substring.md) | Hard (42.90%) | hash-table, sliding-window, string | [cpp](.cpp/0076.minimum-window-substring.cpp) |
| [0077.Combinations](.doc/0077.combinations.md) | Medium (70.28%) | backtracking, divide-and-conquer, combination | [cpp](.cpp/0077.combinations.cpp) |
| [0078.Subsets](.doc/0078.subsets.md) | Medium (77.35%) | array, backtracking, bit-manipulation, subset | [cpp](.cpp/0078.subsets.cpp) |
| [0079.Word Search](.doc/0079.word-search.md) | Medium (42.66%) | matrix, backtracking, depth-first-search | [cpp](.cpp/0079.word-search.cpp) |
| [0080.Remove Duplicates from Sorted Array II](.doc/0080.remove-duplicates-from-sorted-array-ii.md) | Medium (57.95%) | in-place algorithm, array | [cpp](.cpp/0080.remove-duplicates-from-sorted-array-ii.cpp) |
| [0081.Search in Rotated Sorted Array II](.doc/0081.search-in-rotated-sorted-array-ii.md) | Medium (37.62%) | array, binary-search, search-in-rotated-sorted-array | [cpp](.cpp/0081.search-in-rotated-sorted-array-ii.cpp) |
| [0082.Remove Duplicates from Sorted List II](.doc/0082.remove-duplicates-from-sorted-list-ii.md) | Medium (47.34%) | linked-list | [cpp](.cpp/0082.remove-duplicates-from-sorted-list-ii.cpp) |
| [0083.Remove Duplicates from Sorted List](.doc/0083.remove-duplicates-from-sorted-list.md) | Easy (52.41%) | linked-list, duplicate | [cpp](.cpp/0083.remove-duplicates-from-sorted-list.cpp) |
| [0084.Largest Rectangle in Histogram](.doc/0084.largest-rectangle-in-histogram.md) | Hard (44.23%) | monotonic-stack, array | [cpp](.cpp/0084.largest-rectangle-in-histogram.cpp) |
| [0085.Maximal Rectangle](.doc/0085.maximal-rectangle.md) | Hard (47.03%) | matrix, stack, monotonic-stack | [cpp](.cpp/0085.maximal-rectangle.cpp) |
| [0086.Partition List](.doc/0086.partition-list.md) | Medium (56.17%) | linked-list | [cpp](.cpp/0086.partition-list.cpp) |
| [0087.Scramble String](.doc/0087.scramble-string.md) | Hard (40.03%) | string, dynamic-programming, memoization | [cpp](.cpp/0087.scramble-string.cpp) |
| [0088.Merge Sorted Array](.doc/0088.merge-sorted-array.md) | Easy (49.48%) | array, two-pointers | [cpp](.cpp/0088.merge-sorted-array.cpp) |
| [0089.Gray Code](.doc/0089.gray-code.md) | Medium (59.07%) | hash-table, backtracking, bit-manipulation | [cpp](.cpp/0089.gray-code.cpp) |
| [0090.Subsets II](.doc/0090.subsets-ii.md) | Medium (57.18%) | array, backtracking, bit-manipulation | [cpp](.cpp/0090.subsets-ii.cpp) |
| [0091.Decode Ways](.doc/0091.decode-ways.md) | Medium (34.81%) | string, dynamic-programming | [cpp](.cpp/0091.decode-ways.cpp) |
| [0092.Reverse Linked List II](.doc/0092.reverse-linked-list-ii.md) | Medium (47.62%) | linked-list | [cpp](.cpp/0092.reverse-linked-list-ii.cpp) |
| [0093.Restore IP Addresses](.doc/0093.restore-ip-addresses.md) | Medium (49.73%) | string, backtracking, depth-first-search | [cpp](.cpp/0093.restore-ip-addresses.cpp) |
| [0094.Binary Tree Inorder Traversal](.doc/0094.binary-tree-inorder-traversal.md) | Easy (76.01%) | stack, binary-tree | [cpp](.cpp/0094.binary-tree-inorder-traversal.cpp) |
| [0095.Unique Binary Search Trees II](.doc/0095.unique-binary-search-trees-ii.md) | Medium (57.62%) | recursion, binary-search-tree, binary-tree | [cpp](.cpp/0095.unique-binary-search-trees-ii.cpp) |
| [0096.Unique Binary Search Trees](.doc/0096.unique-binary-search-trees.md) | Medium (60.96%) | dynamic-programming, binary-search-tree, binary-tree, math | [cpp](.cpp/0096.unique-binary-search-trees.cpp) |
| [0097.Interleaving String](.doc/0097.interleaving-string.md) | Medium (39.89%) | string, dynamic-programming, depth-first-search, memoization, hash-table | [cpp](.cpp/0097.interleaving-string.cpp) |
| [0098.Validate Binary Search Tree](.doc/0098.validate-binary-search-tree.md) | Medium (32.87%) | binary-search-tree, binary-tree | [cpp](.cpp/0098.validate-binary-search-tree.cpp) |
| [0099.Recover Binary Search Tree](.doc/0099.recover-binary-search-tree.md) | Medium (53.00%) | binary-search-tree, binary-tree, depth-first-search, sort | [cpp](.cpp/0099.recover-binary-search-tree.cpp) |
| [0100.Same Tree](.doc/0100.same-tree.md) | Easy (61.96%) | binary-tree, depth-first-search, breadth-first-search | [cpp](.cpp/0100.same-tree.cpp) |
| [0101.Symmetric Tree](.doc/0101.symmetric-tree.md) | Easy (56.37%) | binary-tree, depth-first-search, breadth-first-search | [cpp](.cpp/0101.symmetric-tree.cpp) |
| [0102.Binary Tree Level Order Traversal](.doc/0102.binary-tree-level-order-traversal.md) | Medium (67.05%) | binary-tree, breadth-first-search | [cpp](.cpp/0102.binary-tree-level-order-traversal.cpp) |
| [0103.Binary Tree Zigzag Level Order Traversal](.doc/0103.binary-tree-zigzag-level-order-traversal.md) | Medium (58.84%) | binary-tree, breadth-first-search | [cpp](.cpp/0103.binary-tree-zigzag-level-order-traversal.cpp) |
| [0104.Maximum Depth of Binary Tree](.doc/0104.maximum-depth-of-binary-tree.md) | Easy (75.27%) | binary-tree, depth-first-search, breadth-first-search | [cpp](.cpp/0104.maximum-depth-of-binary-tree.cpp) |
| [0105.Construct Binary Tree from Preorder and Inorder Traversal](.doc/0105.construct-binary-tree-from-preorder-and-inorder-traversal.md) | Medium (63.76%) | binary-tree, hash-table | [cpp](.cpp/0105.construct-binary-tree-from-preorder-and-inorder-traversal.cpp) |
| [0106.Construct Binary Tree from Inorder and Postorder Traversal](.doc/0106.construct-binary-tree-from-inorder-and-postorder-traversal.md) | Medium (62.67%) | binary-tree, hash-table | [cpp](.cpp/0106.construct-binary-tree-from-inorder-and-postorder-traversal.cpp) |
| [0107.Binary Tree Level Order Traversal II](.doc/0107.binary-tree-level-order-traversal-ii.md) | Medium (63.28%) | binary-tree, breadth-first-search, depth-first-search | [cpp](.cpp/0107.binary-tree-level-order-traversal-ii.cpp) |
| [0108.Convert Sorted Array to Binary Search Tree](.doc/0108.convert-sorted-array-to-binary-search-tree.md) | Easy (71.58%) | binary-tree, array, depth-first-search | [cpp](.cpp/0108.convert-sorted-array-to-binary-search-tree.cpp) |
| [0109.Convert Sorted List to Binary Search Tree](.doc/0109.convert-sorted-list-to-binary-search-tree.md) | Medium (61.80%) | linked-list, binary-search-tree, fast-slow-pointers | [cpp](.cpp/0109.convert-sorted-list-to-binary-search-tree.cpp) |
| [0110.Balanced Binary Tree](.doc/0110.balanced-binary-tree.md) | Easy (51.90%) | binary-tree, depth-first-search | [cpp](.cpp/0110.balanced-binary-tree.cpp) |
| [0111.Minimum Depth of Binary Tree](.doc/0111.minimum-depth-of-binary-tree.md) | Easy (47.76%) | binary-tree, depth-first-search, breadth-first-search | [cpp](.cpp/0111.minimum-depth-of-binary-tree.cpp) |
| [0112.Path Sum](.doc/0112.path-sum.md) | Easy (50.24%) | binary-tree, path-sum | [cpp](.cpp/0112.path-sum.cpp) |
| [0113.Path Sum II](.doc/0113.path-sum-ii.md) | Medium (58.38%) | binary-tree, path-sum | [cpp](.cpp/0113.path-sum-ii.cpp) |
| [0114.Flatten Binary Tree to Linked List](.doc/0114.flatten-binary-tree-to-linked-list.md) | Medium (64.76%) | binary-tree, depth-first-search, linked-list | [cpp](.cpp/0114.flatten-binary-tree-to-linked-list.cpp) |
| [0115.Distinct Subsequences](.doc/0115.distinct-subsequences.md) | Hard (46.77%) | dynamic-programming, string | [cpp](.cpp/0115.distinct-subsequences.cpp) |
| [0116.Populating Next Right Pointers in Each Node](.doc/0116.populating-next-right-pointers-in-each-node.md) | Medium (62.56%) | binary-tree | [cpp](.cpp/0116.populating-next-right-pointers-in-each-node.cpp) |
| [0117.Populating Next Right Pointers in Each Node II](.doc/0117.populating-next-right-pointers-in-each-node-ii.md) | Medium (52.37%) | binary-tree | [cpp](.cpp/0117.populating-next-right-pointers-in-each-node-ii.cpp) |
| [0118.Pascal's Triangle](.doc/0118.pascals-triangle.md) | Easy (74.11%) | array | [cpp](.cpp/0118.pascals-triangle.cpp) |
| [0119.Pascal's Triangle II](.doc/0119.pascals-triangle-ii.md) | Easy (63.90%) | array, math | [cpp](.cpp/0119.pascals-triangle-ii.cpp) |
| [0120.Triangle](.doc/0120.triangle.md) | Medium (56.45%) | dynamic-programming | [cpp](.cpp/0120.triangle.cpp) |
| [0121.Best Time to Buy and Sell Stock](.doc/0121.best-time-to-buy-and-sell-stock.md) | Easy (53.60%) | array, best-time-to-buy-and-sell-stock | [cpp](.cpp/0121.best-time-to-buy-and-sell-stock.cpp) |
| [0122.Best Time to Buy and Sell Stock II](.doc/0122.best-time-to-buy-and-sell-stock-ii.md) | Medium (66.32%) | array, greedy, best-time-to-buy-and-sell-stock | [cpp](.cpp/0122.best-time-to-buy-and-sell-stock-ii.cpp) |
| [0123.Best Time to Buy and Sell Stock III](.doc/0123.best-time-to-buy-and-sell-stock-iii.md) | Hard (47.84%) | array, greedy, dynamic-programming, best-time-to-buy-and-sell-stock | [cpp](.cpp/0123.best-time-to-buy-and-sell-stock-iii.cpp) |
| [0124.Binary Tree Maximum Path Sum](.doc/0124.binary-tree-maximum-path-sum.md) | Hard (39.99%) | binary-tree, depth-first-search | [cpp](.cpp/0124.binary-tree-maximum-path-sum.cpp) |
| [0125.Valid Palindrome](.doc/0125.valid-palindrome.md) | Easy (47.30%) | string, two-pointers | [cpp](.cpp/0125.valid-palindrome.cpp) |
| [0126.Word Ladder II](.doc/0126.word-ladder-ii.md) | Hard (27.29%) | string, backtracking, breadth-first-search, depth-first-search | [cpp](.cpp/0126.word-ladder-ii.cpp) |
| [0127.Word Ladder](.doc/0127.word-ladder.md) | Hard (39.04%) | breadth-first-search, hash-table | [cpp](.cpp/0127.word-ladder.cpp) |
| [0128.Longest Consecutive Sequence](.doc/0128.longest-consecutive-sequence.md) | Medium (47.29%) | array, hash-table, sort | [cpp](.cpp/0128.longest-consecutive-sequence.cpp) |
| [0129.Sum Root to Leaf Numbers](.doc/0129.sum-root-to-leaf-numbers.md) | Medium (63.68%) | binary-tree, depth-first-search, breadth-first-search | [cpp](.cpp/0129.sum-root-to-leaf-numbers.cpp) |
| [0130.Surrounded Regions](.doc/0130.surrounded-regions.md) | Medium (39.26%) | depth-first-search, breadth-first-search, union-find, matrix | [cpp](.cpp/0130.surrounded-regions.cpp) |
| [0131.Palindrome Partitioning](.doc/0131.palindrome-partitioning.md) | Medium (67.41%) | depth-first-search, backtracking, palindrome | [cpp](.cpp/0131.palindrome-partitioning.cpp) |
| [0132.Palindrome Partitioning II](.doc/0132.palindrome-partitioning-ii.md) | Hard (33.89%) | dynamic-programming, palindrome, string | [cpp](.cpp/0132.palindrome-partitioning-ii.cpp) |
| [0133.Clone Graph](.doc/0133.clone-graph.md) | Medium (57.06%) | hash-table, depth-first-search, breadth-first-search, graph, deep-copy | [cpp](.cpp/0133.clone-graph.cpp) |
| [0134.Gas Station](.doc/0134.gas-station.md) | Medium (45.52%) | greedy, math | [cpp](.cpp/0134.gas-station.cpp) |
| [0135.Candy](.doc/0135.candy.md) | Hard (43.27%) | array, greedy | [cpp](.cpp/0135.candy.cpp) |
| [0136.Single Number](.doc/0136.single-number.md) | Easy (72.74%) | bit-manipulation | [cpp](.cpp/0136.single-number.cpp) |
| [0137.Single Number II](.doc/0137.single-number-ii.md) | Medium (62.51%) | bit-manipulation | [cpp](.cpp/0137.single-number-ii.cpp) |
| [0138.Copy List with Random Pointer](.doc/0138.copy-list-with-random-pointer.md) | Medium (55.92%) | linked-list, hash-table, design, deep-copy | [cpp](.cpp/0138.copy-list-with-random-pointer.cpp) |
| [0139.Word Break](.doc/0139.word-break.md) | Medium (46.72%) | dynamic-programming, hash-table, string | [cpp](.cpp/0139.word-break.cpp) |
| [0140.Word Break II](.doc/0140.word-break-ii.md) | Hard (47.85%) | depth-first-search, memorization | [cpp](.cpp/0140.word-break-ii.cpp) |
| [0141.Linked List Cycle](.doc/0141.linked-list-cycle.md) | Easy (50.31%) | linked-list, two-pointers, hash-table, fast-slow-pointers | [cpp](.cpp/0141.linked-list-cycle.cpp) |
| [0142.Linked List Cycle II](.doc/0142.linked-list-cycle-ii.md) | Medium (51.17%) | linked-list, fast-slow-pointers | [cpp](.cpp/0142.linked-list-cycle-ii.cpp) |
| [0143.Reorder List](.doc/0143.reorder-list.md) | Medium (58.51%) | linked-list, fast-slow-pointers, stack | [cpp](.cpp/0143.reorder-list.cpp) |
| [0144.Binary Tree Preorder Traversal](.doc/0144.binary-tree-preorder-traversal.md) | Easy (69.37%) | binary-tree, stack | [cpp](.cpp/0144.binary-tree-preorder-traversal.cpp) |
| [0145.Binary Tree Postorder Traversal](.doc/0145.binary-tree-postorder-traversal.md) | Easy (70.78%) | binary-tree | [cpp](.cpp/0145.binary-tree-postorder-traversal.cpp) |
| [0146.LRU Cache](.doc/0146.lru-cache.md) | Medium (42.38%) | design | [cpp](.cpp/0146.lru-cache.cpp) |
| [0147.Insertion Sort List](.doc/0147.insertion-sort-list.md) | Medium (53.40%) | sort, linked-list | [cpp](.cpp/0147.insertion-sort-list.cpp) |
| [0148.Sort List](.doc/0148.sort-list.md) | Medium (57.73%) | linked-list, merge-sort | [cpp](.cpp/0148.sort-list.cpp) |
| [0149.Max Points on a Line](.doc/0149.max-points-on-a-line.md) | Hard (26.62%) | hash-table, math, geometry | [cpp](.cpp/0149.max-points-on-a-line.cpp) |
| [0150.Evaluate Reverse Polish Notation](.doc/0150.evaluate-reverse-polish-notation.md) | Medium (51.26%) | stack | [cpp](.cpp/0150.evaluate-reverse-polish-notation.cpp) |
| [0151.Reverse Words in a String](.doc/0151.reverse-words-in-a-string.md) | Medium (41.82%) | string, two-pointers | [cpp](.cpp/0151.reverse-words-in-a-string.cpp) |
| [0152.Maximum Product Subarray](.doc/0152.maximum-product-subarray.md) | Medium (35.03%) | array, dynamic-programming | [cpp](.cpp/0152.maximum-product-subarray.cpp) |
| [0153.Find Minimum in Rotated Sorted Array](.doc/0153.find-minimum-in-rotated-sorted-array.md) | Medium (50.26%) | array, binary-search, search-in-rotated-sorted-array, divide-and-conquer | [cpp](.cpp/0153.find-minimum-in-rotated-sorted-array.cpp) |
| [0154.Find Minimum in Rotated Sorted Array II](.doc/0154.find-minimum-in-rotated-sorted-array-ii.md) | Hard (43.66%) | array, binary-search, search-in-rotated-sorted-array, divide-and-conquer | [cpp](.cpp/0154.find-minimum-in-rotated-sorted-array-ii.cpp) |
| [0155.Min Stack](.doc/0155.min-stack.md) | Medium (54.05%) | stack, design | [cpp](.cpp/0155.min-stack.cpp) |
| 0156.Binary Tree Upside Down 🔒 | Medium (62.71%) | binary-tree | [cpp](.cpp/0156.binary-tree-upside-down.cpp) |
| 0157.Read N Characters Given Read4 🔒 | Easy (41.47%) | string, design | [cpp](.cpp/0157.read-n-characters-given-read4.cpp) |
| 0158.Read N Characters Given read4 II - Call Multiple Times 🔒 | Hard (42.23%) | string, design | [cpp](.cpp/0158.read-n-characters-given-read4-ii---call-multiple-times.cpp) |
| 0159.Longest Substring with At Most Two Distinct Characters 🔒 | Medium (55.30%) | sliding-window, hash-table, string | [cpp](.cpp/0159.longest-substring-with-at-most-two-distinct-characters.cpp) |
| [0160.Intersection of Two Linked Lists](.doc/0160.intersection-of-two-linked-lists.md) | Easy (57.30%) | linked-list, two-pointers | [cpp](.cpp/0160.intersection-of-two-linked-lists.cpp) |
| 0161.One Edit Distance 🔒 | Medium (34.28%) | string | [cpp](.cpp/0161.one-edit-distance.cpp) |
| [0162.Find Peak Element](.doc/0162.find-peak-element.md) | Medium (45.93%) | array, binary-search | [cpp](.cpp/0162.find-peak-element.cpp) |
| 0163.Missing Ranges 🔒 | Easy (33.58%) | array, interval | [cpp](.cpp/0163.missing-ranges.cpp) |
| [0164.Maximum Gap](.doc/0164.maximum-gap.md) | Medium (45.79%) | sort, bucket-sort, array | [cpp](.cpp/0164.maximum-gap.cpp) |
| [0165.Compare Version Numbers](.doc/0165.compare-version-numbers.md) | Medium (36.83%) | string, two-pointers | [cpp](.cpp/0165.compare-version-numbers.cpp) |
| [0166.Fraction to Recurring Decimal](.doc/0166.fraction-to-recurring-decimal.md) | Medium (24.97%) | hash-table, arithmetic | [cpp](.cpp/0166.fraction-to-recurring-decimal.cpp) |
| [0167.Two Sum II - Input Array Is Sorted](.doc/0167.two-sum-ii-input-array-is-sorted.md) | Medium (61.16%) | array, two-pointers, binary-search | [cpp](.cpp/0167.two-sum-ii-input-array-is-sorted.cpp) |
| [0168.Excel Sheet Column Title](.doc/0168.excel-sheet-column-title.md) | Easy (40.54%) | math, string, easy | [cpp](.cpp/0168.excel-sheet-column-title.cpp) |
| [0169.Majority Element](.doc/0169.majority-element.md) | Easy (64.78%) | sort, array, bit-manipulation, boyer-moore-voting-algorithm | [cpp](.cpp/0169.majority-element.cpp) |
| 0170.Two Sum III - Data structure design 🔒 | Easy (38.00%) | design, hash-table, target-sum | [cpp](.cpp/0170.two-sum-iii---data-structure-design.cpp) |
| [0171.Excel Sheet Column Number](.doc/0171.excel-sheet-column-number.md) | Easy (63.66%) | math | [cpp](.cpp/0171.excel-sheet-column-number.cpp) |
| [0172.Factorial Trailing Zeroes](.doc/0172.factorial-trailing-zeroes.md) | Medium (43.28%) | math | [cpp](.cpp/0172.factorial-trailing-zeroes.cpp) |
| [0173.Binary Search Tree Iterator](.doc/0173.binary-search-tree-iterator.md) | Medium (71.88%) | design, stack, binary-tree | [cpp](.cpp/0173.binary-search-tree-iterator.cpp) |
| [0174.Dungeon Game](.doc/0174.dungeon-game.md) | Hard (38.07%) | dynamic-programming, matrix | [cpp](.cpp/0174.dungeon-game.cpp) |
| [0179.Largest Number](.doc/0179.largest-number.md) | Medium (36.04%) | sort, string | [cpp](.cpp/0179.largest-number.cpp) |
| 0186.Reverse Words in a String II 🔒 | Medium (54.52%) | string, two-pointers | [cpp](.cpp/0186.reverse-words-in-a-string-ii.cpp) |
| [0187.Repeated DNA Sequences](.doc/0187.repeated-dna-sequences.md) | Medium (48.78%) | hash-table, bit-manipulation, string | [cpp](.cpp/0187.repeated-dna-sequences.cpp) |
| [0188.Best Time to Buy and Sell Stock IV](.doc/0188.best-time-to-buy-and-sell-stock-iv.md) | Hard (42.57%) | dynamic-programming, best-time-to-buy-and-sell-stock | [cpp](.cpp/0188.best-time-to-buy-and-sell-stock-iv.cpp) |
| [0189.Rotate Array](.doc/0189.rotate-array.md) | Medium (40.50%) | array | [cpp](.cpp/0189.rotate-array.cpp) |
| [0190.Reverse Bits](.doc/0190.reverse-bits.md) | Easy (58.30%) | bit-manipulation | [cpp](.cpp/0190.reverse-bits.cpp) |
| [0191.Number of 1 Bits](.doc/0191.number-of-1-bits.md) | Easy (70.75%) | bit-manipulation | [cpp](.cpp/0191.number-of-1-bits.cpp) |
| [0198.House Robber](.doc/0198.house-robber.md) | Medium (50.95%) | dynamic-programming, array | [cpp](.cpp/0198.house-robber.cpp) |
| [0199.Binary Tree Right Side View](.doc/0199.binary-tree-right-side-view.md) | Medium (62.99%) | binary-tree | [cpp](.cpp/0199.binary-tree-right-side-view.cpp) |
| [0200.Number of Islands](.doc/0200.number-of-islands.md) | Medium (58.75%) | depth-first-search, breadth-first-search | [cpp](.cpp/0200.number-of-islands.cpp) |
| [0201.Bitwise AND of Numbers Range](.doc/0201.bitwise-and-of-numbers-range.md) | Medium (46.86%) | bit-manipulation | [cpp](.cpp/0201.bitwise-and-of-numbers-range.cpp) |
| [0202.Happy Number](.doc/0202.happy-number.md) | Easy (56.02%) | hash-table, math, fast-slow-pointers | [cpp](.cpp/0202.happy-number.cpp) |
| [0203.Remove Linked List Elements](.doc/0203.remove-linked-list-elements.md) | Easy (48.63%) | linked-list | [cpp](.cpp/0203.remove-linked-list-elements.cpp) |
| [0204.Count Primes](.doc/0204.count-primes.md) | Medium (33.56%) | math | [cpp](.cpp/0204.count-primes.cpp) |
| [0205.Isomorphic Strings](.doc/0205.isomorphic-strings.md) | Easy (45.08%) | hash-table | [cpp](.cpp/0205.isomorphic-strings.cpp) |
| [0206.Reverse Linked List](.doc/0206.reverse-linked-list.md) | Easy (76.41%) | linked-list | [cpp](.cpp/0206.reverse-linked-list.cpp) |
| [0207.Course Schedule](.doc/0207.course-schedule.md) | Medium (46.68%) | graph, topological-sort, depth-first-search, breadth-first-search | [cpp](.cpp/0207.course-schedule.cpp) |
| [0208.Implement Trie (Prefix Tree)](.doc/0208.implement-trie-prefix-tree.md) | Medium (64.99%) | design, trie-tree | [cpp](.cpp/0208.implement-trie-prefix-tree.cpp) |
| [0209.Minimum Size Subarray Sum](.doc/0209.minimum-size-subarray-sum.md) | Medium (47.01%) | array, sliding-window, binary-search, prefix-sum | [cpp](.cpp/0209.minimum-size-subarray-sum.cpp) |
| [0210.Course Schedule II](.doc/0210.course-schedule-ii.md) | Medium (50.32%) | graph, topological-sort | [cpp](.cpp/0210.course-schedule-ii.cpp) |
| [0211.Design Add and Search Words Data Structure](.doc/0211.design-add-and-search-words-data-structure.md) | Medium (45.13%) | trie, backtracking, design, depth-first-search | [cpp](.cpp/0211.design-add-and-search-words-data-structure.cpp) |
| [0212.Word Search II](.doc/0212.word-search-ii.md) | Hard (36.26%) | trie, depth-first-search, backtracking, matrix | [cpp](.cpp/0212.word-search-ii.cpp) |
| [0213.House Robber II](.doc/0213.house-robber-ii.md) | Medium (41.92%) | dynamic-programming | [cpp](.cpp/0213.house-robber-ii.cpp) |
| [0214.Shortest Palindrome](.doc/0214.shortest-palindrome.md) | Hard (33.37%) | string, palindrome | [cpp](.cpp/0214.shortest-palindrome.cpp) |
| [0215.Kth Largest Element in an Array](.doc/0215.kth-largest-element-in-an-array.md) | Medium (66.78%) | heap, sort, divide-and-conquer, partition, array | [cpp](.cpp/0215.kth-largest-element-in-an-array.cpp) |
| [0216.Combination Sum III](.doc/0216.combination-sum-iii.md) | Medium (69.54%) | backtracking, combination | [cpp](.cpp/0216.combination-sum-iii.cpp) |
| [0217.Contains Duplicate](.doc/0217.contains-duplicate.md) | Easy (61.59%) | array, sort, hash-table, duplicate | [cpp](.cpp/0217.contains-duplicate.cpp) |
| [0218.The Skyline Problem](.doc/0218.the-skyline-problem.md) | Hard (42.64%) | sort, multiset | [cpp](.cpp/0218.the-skyline-problem.cpp) |
| [0219.Contains Duplicate II](.doc/0219.contains-duplicate-ii.md) | Easy (44.96%) | array, hash-table, duplicate | [cpp](.cpp/0219.contains-duplicate-ii.cpp) |
| [0220.Contains Duplicate III](.doc/0220.contains-duplicate-iii.md) | Hard (22.72%) | sliding-window, ordered-map, binary-search | [cpp](.cpp/0220.contains-duplicate-iii.cpp) |
| [0221.Maximal Square](.doc/0221.maximal-square.md) | Medium (46.44%) | dynamic-programming, matrix, prefix-sum | [cpp](.cpp/0221.maximal-square.cpp) |
| [0222.Count Complete Tree Nodes](.doc/0222.count-complete-tree-nodes.md) | Easy (64.95%) | binary-tree, recursion | [cpp](.cpp/0222.count-complete-tree-nodes.cpp) |
| [0223.Rectangle Area](.doc/0223.rectangle-area.md) | Medium (46.13%) | math, geometry | [cpp](.cpp/0223.rectangle-area.cpp) |
| [0224.Basic Calculator](.doc/0224.basic-calculator.md) | Hard (43.36%) | math, design, arithmetic, basic-calculator | [cpp](.cpp/0224.basic-calculator.cpp) |
| [0225.Implement Stack using Queues](.doc/0225.implement-stack-using-queues.md) | Easy (63.52%) | stack, queue, design | [cpp](.cpp/0225.implement-stack-using-queues.cpp) |
| [0226.Invert Binary Tree](.doc/0226.invert-binary-tree.md) | Easy (76.86%) | binary-tree, recursion | [cpp](.cpp/0226.invert-binary-tree.cpp) |
| [0227.Basic Calculator II](.doc/0227.basic-calculator-ii.md) | Medium (43.53%) | string, basic-calculator, stack, math, arithmetic | [cpp](.cpp/0227.basic-calculator-ii.cpp) |
| [0228.Summary Ranges](.doc/0228.summary-ranges.md) | Easy (50.52%) | array | [cpp](.cpp/0228.summary-ranges.cpp) |
| [0229.Majority Element II](.doc/0229.majority-element-ii.md) | Medium (51.36%) | array, boyer-moore-voting-algorithm | [cpp](.cpp/0229.majority-element-ii.cpp) |
| [0230.Kth Smallest Element in a BST](.doc/0230.kth-smallest-element-in-a-bst.md) | Medium (72.39%) | binary-tree, binary-search-tree, divide-and-conquer | [cpp](.cpp/0230.kth-smallest-element-in-a-bst.cpp) |
| [0231.Power of Two](.doc/0231.power-of-two.md) | Easy (47.74%) | bit-manipulation | [cpp](.cpp/0231.power-of-two.cpp) |
| [0232.Implement Queue using Stacks](.doc/0232.implement-queue-using-stacks.md) | Easy (66.16%) | stack, queue, design | [cpp](.cpp/0232.implement-queue-using-stacks.cpp) |
| [0233.Number of Digit One](.doc/0233.number-of-digit-one.md) | Hard (34.56%) | math, digit | [cpp](.cpp/0233.number-of-digit-one.cpp) |
| [0234.Palindrome Linked List](.doc/0234.palindrome-linked-list.md) | Easy (53.06%) | linked-list, fast-slow-pointers, stack, recursion | [cpp](.cpp/0234.palindrome-linked-list.cpp) |
| [0235.Lowest Common Ancestor of a Binary Search Tree](.doc/0235.lowest-common-ancestor-of-a-binary-search-tree.md) | Medium (64.58%) | binary-search-tree | [cpp](.cpp/0235.lowest-common-ancestor-of-a-binary-search-tree.cpp) |
| [0236.Lowest Common Ancestor of a Binary Tree](.doc/0236.lowest-common-ancestor-of-a-binary-tree.md) | Medium (62.02%) | binary-tree | [cpp](.cpp/0236.lowest-common-ancestor-of-a-binary-tree.cpp) |
| [0237.Delete Node in a Linked List](.doc/0237.delete-node-in-a-linked-list.md) | Medium (78.35%) | linked-list | [cpp](.cpp/0237.delete-node-in-a-linked-list.cpp) |
| [0238.Product of Array Except Self](.doc/0238.product-of-array-except-self.md) | Medium (66.09%) | array | [cpp](.cpp/0238.product-of-array-except-self.cpp) |
| [0239.Sliding Window Maximum](.doc/0239.sliding-window-maximum.md) | Hard (46.55%) | heap, sliding-window, monotonic-stack, deque, multiset | [cpp](.cpp/0239.sliding-window-maximum.cpp) |
| [0240.Search a 2D Matrix II](.doc/0240.search-a-2-d-matrix-ii.md) | Medium (52.54%) | binary-search, matrix | [cpp](.cpp/0240.search-a-2-d-matrix-ii.cpp) |
| [0241.Different Ways to Add Parentheses](.doc/0241.different-ways-to-add-parentheses.md) | Medium (65.35%) | divide-and-conquer, memoization | [cpp](.cpp/0241.different-ways-to-add-parentheses.cpp) |
| [0242.Valid Anagram](.doc/0242.valid-anagram.md) | Easy (64.43%) | hash-table | [cpp](.cpp/0242.valid-anagram.cpp) |
| 0243.Shortest Word Distance 🔒 | Easy (65.30%) | string, two-pointers | [cpp](.cpp/0243.shortest-word-distance.cpp) |
| 0244.Shortest Word Distance II 🔒 | Medium (61.16%) | design, hash-table, two-pointers | [cpp](.cpp/0244.shortest-word-distance-ii.cpp) |
| 0245.Shortest Word Distance III 🔒 | Medium (58.42%) | string, two-pointers | [cpp](.cpp/0245.shortest-word-distance-iii.cpp) |
| 0246.Strobogrammatic Number 🔒 | Easy (47.68%) | two-pointers | [cpp](.cpp/0246.strobogrammatic-number.cpp) |
| 0247.Strobogrammatic Number II 🔒 | Medium (52.23%) | recursion, string | [cpp](.cpp/0247.strobogrammatic-number-ii.cpp) |
| 0248.Strobogrammatic Number III 🔒 | Hard (42.11%) | string, recursion | [cpp](.cpp/0248.strobogrammatic-number-iii.cpp) |
| 0249.Group Shifted Strings 🔒 | Medium (65.51%) | hash-table, string | [cpp](.cpp/0249.group-shifted-strings.cpp) |
| 0250.Count Univalue Subtrees 🔒 | Medium (56.38%) | binary-tree, depth-first-search | [cpp](.cpp/0250.count-univalue-subtrees.cpp) |
| 0251.Flatten 2D Vector 🔒 | Medium (49.45%) | design, two-pointers | [cpp](.cpp/0251.flatten-2d-vector.cpp) |
| 0252.Meeting Rooms 🔒 | Easy (58.02%) | sort, interval | [cpp](.cpp/0252.meeting-rooms.cpp) |
| 0253.Meeting Rooms II 🔒 | Medium (51.22%) | array, difference-array, interval | [cpp](.cpp/0253.meeting-rooms-ii.cpp) |
| 0254.Factor Combinations 🔒 | Medium (49.47%) | backtracking, math | [cpp](.cpp/0254.factor-combinations.cpp) |
| 0255.Verify Preorder Sequence in Binary Search Tree 🔒 | Medium (49.51%) | monotonic-stack, binary-search-tree, binary-tree | [cpp](.cpp/0255.verify-preorder-sequence-in-binary-search-tree.cpp) |
| 0256.Paint House 🔒 | Medium (62.41%) | dynamic-programming | [cpp](.cpp/0256.paint-house.cpp) |
| [0257.Binary Tree Paths](.doc/0257.binary-tree-paths.md) | Easy (63.51%) | binary-tree, depth-first-search | [cpp](.cpp/0257.binary-tree-paths.cpp) |
| [0258.Add Digits](.doc/0258.add-digits.md) | Easy (66.53%) | math | [cpp](.cpp/0258.add-digits.cpp) |
| 0259.3Sum Smaller 🔒 | Medium (50.71%) | array, two-pointers, sort | [cpp](.cpp/0259.3sum-smaller.cpp) |
| [0260.Single Number III](.doc/0260.single-number-iii.md) | Medium (68.35%) | bit-manipulation | [cpp](.cpp/0260.single-number-iii.cpp) |
| 0261.Graph Valid Tree 🔒 | Medium (48.03%) | tree, graph, union-find | [cpp](.cpp/0261.graph-valid-tree.cpp) |
| [0263.Ugly Number](.doc/0263.ugly-number.md) | Easy (41.95%) | easy | [cpp](.cpp/0263.ugly-number.cpp) |
| [0264.Ugly Number II](.doc/0264.ugly-number-ii.md) | Medium (46.18%) | heap, math, dynamic-programming | [cpp](.cpp/0264.ugly-number-ii.cpp) |
| 0265.Paint House II 🔒 | Hard (54.60%) | dynamic-programming | [cpp](.cpp/0265.paint-house-ii.cpp) |
| 0266.Palindrome Permutation 🔒 | Easy (67.15%) | string, hash-table, palindrome, permutation | [cpp](.cpp/0266.palindrome-permutation.cpp) |
| 0267.Palindrome Permutation II 🔒 | Medium (41.32%) | string, permutation, palindrome, backtracking, hash-table | [cpp](.cpp/0267.palindrome-permutation-ii.cpp) |
| [0268.Missing Number](.doc/0268.missing-number.md) | Easy (66.68%) | math, array, bit-manipulation, binary-search | [cpp](.cpp/0268.missing-number.cpp) |
| 0269.Alien Dictionary 🔒 | Hard (35.72%) | graph, topological-sort, string | [cpp](.cpp/0269.alien-dictionary.cpp) |
| 0270.Closest Binary Search Tree Value 🔒 | Easy (51.80%) | binary-search-tree, binary-tree, recursion | [cpp](.cpp/0270.closest-binary-search-tree-value.cpp) |
| 0271.Encode and Decode Strings 🔒 | Medium (46.31%) | string, design | [cpp](.cpp/0271.encode-and-decode-strings.cpp) |
| 0272.Closest Binary Search Tree Value II 🔒 | Hard (59.01%) | stack, queue, binary-search-tree, binary-tree | [cpp](.cpp/0272.closest-binary-search-tree-value-ii.cpp) |
| [0273.Integer to English Words](.doc/0273.integer-to-english-words.md) | Hard (30.56%) | math, string, hash-table | [cpp](.cpp/0273.integer-to-english-words.cpp) |
| [0274.H-Index](.doc/0274.h-index.md) | Medium (38.89%) | sort, array, hash-table | [cpp](.cpp/0274.h-index.cpp) |
| [0275.H-Index II](.doc/0275.h-index-ii.md) | Medium (38.09%) | binary-search | [cpp](.cpp/0275.h-index-ii.cpp) |
| 0276.Paint Fence 🔒 | Medium (46.53%) | dynamic-programming | [cpp](.cpp/0276.paint-fence.cpp) |
| 0277.Find the Celebrity 🔒 | Medium (47.14%) | array, graph | [cpp](.cpp/0277.find-the-celebrity.cpp) |
| [0278.First Bad Version](.doc/0278.first-bad-version.md) | Easy (44.33%) | binary-search | [cpp](.cpp/0278.first-bad-version.cpp) |
| [0279.Perfect Squares](.doc/0279.perfect-squares.md) | Medium (54.75%) | math, dynamic-programming | [cpp](.cpp/0279.perfect-squares.cpp) |
| 0280.Wiggle Sort 🔒 | Medium (67.64%) | sort, array | [cpp](.cpp/0280.wiggle-sort.cpp) |
| 0281.Zigzag Iterator 🔒 | Medium (63.78%) | design | [cpp](.cpp/0281.zigzag-iterator.cpp) |
| [0282.Expression Add Operators](.doc/0282.expression-add-operators.md) | Hard (39.82%) | recursion, string | [cpp](.cpp/0282.expression-add-operators.cpp) |
| [0283.Move Zeroes](.doc/0283.move-zeroes.md) | Easy (61.71%) | array, two-pointers, in-place-algorithm | [cpp](.cpp/0283.move-zeroes.cpp) |
| [0284.Peeking Iterator](.doc/0284.peeking-iterator.md) | Medium (59.44%) | design | [cpp](.cpp/0284.peeking-iterator.cpp) |
| 0285.Inorder Successor in BST 🔒 | Medium (49.63%) | binary-search-tree, binary-tree, stack, recursion | [cpp](.cpp/0285.inorder-successor-in-bst.cpp) |
| 0286.Walls and Gates 🔒 | Medium (61.31%) | breadth-first-search | [cpp](.cpp/0286.walls-and-gates.cpp) |
| [0287.Find the Duplicate Number](.doc/0287.find-the-duplicate-number.md) | Medium (60.69%) | array, duplicate, binary-search, bit-manipulation, fast-slow-pointers | [cpp](.cpp/0287.find-the-duplicate-number.cpp) |
| 0288.Unique Word Abbreviation 🔒 | Medium (26.22%) | hash-table, string | [cpp](.cpp/0288.unique-word-abbreviation.cpp) |
| [0289.Game of Life](.doc/0289.game-of-life.md) | Medium (69.02%) | matrix, bit-manipulation, in-place-algorithm | [cpp](.cpp/0289.game-of-life.cpp) |
| [0290.Word Pattern](.doc/0290.word-pattern.md) | Easy (42.00%) | hash-table, string | [cpp](.cpp/0290.word-pattern.cpp) |
| 0291.Word Pattern II 🔒 | Medium (47.58%) | backtracking, string, hash-table | [cpp](.cpp/0291.word-pattern-ii.cpp) |
| [0292.Nim Game](.doc/0292.nim-game.md) | Easy (56.81%) | math, game-theory | [cpp](.cpp/0292.nim-game.cpp) |
| 0293.Flip Game 🔒 | Easy (64.56%) | string | [cpp](.cpp/0293.flip-game.cpp) |
| 0294.Flip Game II 🔒 | Medium (52.12%) | game, backtracking | [cpp](.cpp/0294.flip-game-ii.cpp) |
| [0295.Find Median from Data Stream](.doc/0295.find-median-from-data-stream.md) | Hard (51.86%) | design, heap | [cpp](.cpp/0295.find-median-from-data-stream.cpp) |
| 0296.Best Meeting Point 🔒 | Hard (60.90%) | math, sort | [cpp](.cpp/0296.best-meeting-point.cpp) |
| [0297.Serialize and Deserialize Binary Tree](.doc/0297.serialize-and-deserialize-binary-tree.md) | Hard (56.66%) | binary-tree, design, serialization | [cpp](.cpp/0297.serialize-and-deserialize-binary-tree.cpp) |
| 0298.Binary Tree Longest Consecutive Sequence 🔒 | Medium (53.46%) | binary-tree, depth-first-search | [cpp](.cpp/0298.binary-tree-longest-consecutive-sequence.cpp) |
| [0299.Bulls and Cows](.doc/0299.bulls-and-cows.md) | Medium (50.24%) | hash-table | [cpp](.cpp/0299.bulls-and-cows.cpp) |
| [0300.Longest Increasing Subsequence](.doc/0300.longest-increasing-subsequence.md) | Medium (55.23%) | array, dynamic-programming, greedy, binary-search | [cpp](.cpp/0300.longest-increasing-subsequence.cpp) |
| [0301.Remove Invalid Parentheses](.doc/0301.remove-invalid-parentheses.md) | Hard (48.14%) | breadth-first-search, hash-table, parentheses, TODO | [cpp](.cpp/0301.remove-invalid-parentheses.cpp) |
| 0302.Smallest Rectangle Enclosing Black Pixels 🔒 | Hard (58.87%) | binary-search, matrix, geometry | [cpp](.cpp/0302.smallest-rectangle-enclosing-black-pixels.cpp) |
| [0303.Range Sum Query - Immutable](.doc/0303.range-sum-query-immutable.md) | Easy (63.17%) | prefix-sum, math, array, interval | [cpp](.cpp/0303.range-sum-query-immutable.cpp) |
| [0304.Range Sum Query 2D - Immutable](.doc/0304.range-sum-query-2-d-immutable.md) | Medium (54.46%) | prefix-sum, math, matrix, interval | [cpp](.cpp/0304.range-sum-query-2-d-immutable.cpp) |
| 0305.Number of Islands II 🔒 | Hard (39.59%) | union-find | [cpp](.cpp/0305.number-of-islands-ii.cpp) |
| [0306.Additive Number](.doc/0306.additive-number.md) | Medium (31.53%) | backtracking, string | [cpp](.cpp/0306.additive-number.cpp) |
| [0307.Range Sum Query - Mutable](.doc/0307.range-sum-query-mutable.md) | Medium (40.93%) | array, interval, binary-indexed-tree | [cpp](.cpp/0307.range-sum-query-mutable.cpp) |
| 0308.Range Sum Query 2D - Mutable 🔒 | Hard (44.01%) | matrix, interval, binary-indexed-tree | |
| [0309.Best Time to Buy and Sell Stock with Cooldown](.doc/0309.best-time-to-buy-and-sell-stock-with-cooldown.md) | Medium (58.03%) | dynamic-programming, best-time-to-buy-and-sell-stock | [cpp](.cpp/0309.best-time-to-buy-and-sell-stock-with-cooldown.cpp) |
| [0310.Minimum Height Trees](.doc/0310.minimum-height-trees.md) | Medium (38.88%) | tree, graph, topological-sort | [cpp](.cpp/0310.minimum-height-trees.cpp) |
| 0311.Sparse Matrix Multiplication 🔒 | Medium (68.06%) | math, matrix | [cpp](.cpp/0311.sparse-matrix-multiplication.cpp) |
| [0312.Burst Balloons](.doc/0312.burst-balloons.md) | Hard (58.68%) | dynamic-programming | [cpp](.cpp/0312.burst-balloons.cpp) |
| [0313.Super Ugly Number](.doc/0313.super-ugly-number.md) | Medium (45.25%) | heap, math, dynamic-programming | [cpp](.cpp/0313.super-ugly-number.cpp) |
| 0314.Binary Tree Vertical Order Traversal 🔒 | Medium (54.18%) | binary-tree, breadth-first-search, depth-first-search | [cpp](.cpp/0314.binary-tree-vertical-order-traversal.cpp) |
| [0315.Count of Smaller Numbers After Self](.doc/0315.count-of-smaller-numbers-after-self.md) | Hard (42.41%) | sort, binary-indexed-tree, interval, merge-sort, hash-table, segment-tree | [cpp](.cpp/0315.count-of-smaller-numbers-after-self.cpp) |
| [0316.Remove Duplicate Letters](.doc/0316.remove-duplicate-letters.md) | Medium (49.58%) | stack, greedy, hash-table, string | [cpp](.cpp/0316.remove-duplicate-letters.cpp) |
| 0317.Shortest Distance from All Buildings 🔒 | Hard (43.13%) | breadth-first-search | [cpp](.cpp/0317.shortest-distance-from-all-buildings.cpp) |
| [0318.Maximum Product of Word Lengths](.doc/0318.maximum-product-of-word-lengths.md) | Medium (59.93%) | bit-manipulation | [cpp](.cpp/0318.maximum-product-of-word-lengths.cpp) |
| [0319.Bulb Switcher](.doc/0319.bulb-switcher.md) | Medium (52.72%) | math, brainteaser | [cpp](.cpp/0319.bulb-switcher.cpp) |
| 0320.Generalized Abbreviation 🔒 | Medium (58.36%) | string, depth-first-search | [cpp](.cpp/0320.generalized-abbreviation.cpp) |
| [0321.Create Maximum Number](.doc/0321.create-maximum-number.md) | Hard (30.01%) | greedy | [cpp](.cpp/0321.create-maximum-number.cpp) |
| [0322.Coin Change](.doc/0322.coin-change.md) | Medium (43.81%) | dynamic-programming, memoization, depth-first-search, coin-change | [cpp](.cpp/0322.coin-change.cpp) |
| 0323.Number of Connected Components in an Undirected Graph 🔒 | Medium (62.76%) | graph, depth-first-search, union-find | [cpp](.cpp/0323.number-of-connected-components-in-an-undirected-graph.cpp) |
| [0324.Wiggle Sort II](.doc/0324.wiggle-sort-ii.md) | Medium (34.28%) | sort, array, two-pointers, partition | [cpp](.cpp/0324.wiggle-sort-ii.cpp) |
| 0325.Maximum Size Subarray Sum Equals k 🔒 | Medium (49.48%) | hash-table, prefix-sum | [cpp](.cpp/0325.maximum-size-subarray-sum-equals-k.cpp) |
| [0326.Power of Three](.doc/0326.power-of-three.md) | Easy (46.50%) | math | [cpp](.cpp/0326.power-of-three.cpp) |
| [0327.Count of Range Sum](.doc/0327.count-of-range-sum.md) | Hard (35.90%) | array, interval, merge-sort, binary-indexed-tree, segment-tree, hash-table | [cpp](.cpp/0327.count-of-range-sum.cpp) |
| [0328.Odd Even Linked List](.doc/0328.odd-even-linked-list.md) | Medium (61.39%) | linked-list | [cpp](.cpp/0328.odd-even-linked-list.cpp) |
| [0329.Longest Increasing Path in a Matrix](.doc/0329.longest-increasing-path-in-a-matrix.md) | Hard (53.53%) | depth-first-search, breadth-first-search, memoization | [cpp](.cpp/0329.longest-increasing-path-in-a-matrix.cpp) |
| [0330.Patching Array](.doc/0330.patching-array.md) | Hard (41.72%) | greedy | [cpp](.cpp/0330.patching-array.cpp) |
| [0331.Verify Preorder Serialization of a Binary Tree](.doc/0331.verify-preorder-serialization-of-a-binary-tree.md) | Medium (45.18%) | stack | [cpp](.cpp/0331.verify-preorder-serialization-of-a-binary-tree.cpp) |
| [0332.Reconstruct Itinerary](.doc/0332.reconstruct-itinerary.md) | Hard (43.24%) | graph, depth-first-search, sort, stack | [cpp](.cpp/0332.reconstruct-itinerary.cpp) |
| 0333.Largest BST Subtree 🔒 | Medium (43.73%) | binary-tree, depth-first-search | [cpp](.cpp/0333.largest-bst-subtree.cpp) |
| [0334.Increasing Triplet Subsequence](.doc/0334.increasing-triplet-subsequence.md) | Medium (40.00%) | array | [cpp](.cpp/0334.increasing-triplet-subsequence.cpp) |
| [0335.Self Crossing](.doc/0335.self-crossing.md) | Hard (30.43%) | math, geometry | [cpp](.cpp/0335.self-crossing.cpp) |
| [0336.Palindrome Pairs](.doc/0336.palindrome-pairs.md) | Hard (35.27%) | hash-table, string, ordered-set | [cpp](.cpp/0336.palindrome-pairs.cpp) |
| [0337.House Robber III](.doc/0337.house-robber-iii.md) | Medium (54.23%) | binary-tree, depth-first-search | [cpp](.cpp/0337.house-robber-iii.cpp) |
| [0338.Counting Bits](.doc/0338.counting-bits.md) | Easy (78.20%) | bit-manipulation, dynamic-programming | [cpp](.cpp/0338.counting-bits.cpp) |
| 0339.Nested List Weight Sum 🔒 | Medium (83.47%) | depth-first-search, breadth-first-search | [cpp](.cpp/0339.nested-list-weight-sum.cpp) |
| 0340.Longest Substring with At Most K Distinct Characters 🔒 | Medium (48.78%) | string, hash-table, sliding-window | [cpp](.cpp/0340.longest-substring-with-at-most-k-distinct-characters.cpp) |
| [0341.Flatten Nested List Iterator](.doc/0341.flatten-nested-list-iterator.md) | Medium (64.43%) | design, stack, queue, depth-first-search | [cpp](.cpp/0341.flatten-nested-list-iterator.cpp) |
| [0342.Power of Four](.doc/0342.power-of-four.md) | Easy (47.94%) | bit-manipulation, math | [cpp](.cpp/0342.power-of-four.cpp) |
| [0343.Integer Break](.doc/0343.integer-break.md) | Medium (60.29%) | math | [cpp](.cpp/0343.integer-break.cpp) |
| [0344.Reverse String](.doc/0344.reverse-string.md) | Easy (77.76%) | two-pointers, string | [cpp](.cpp/0344.reverse-string.cpp) |
| [0345.Reverse Vowels of a String](.doc/0345.reverse-vowels-of-a-string.md) | Easy (52.91%) | two-pointers, string | [cpp](.cpp/0345.reverse-vowels-of-a-string.cpp) |
| 0346.Moving Average from Data Stream 🔒 | Easy (78.24%) | queue, design | [cpp](.cpp/0346.moving-average-from-data-stream.cpp) |
| [0347.Top K Frequent Elements](.doc/0347.top-k-frequent-elements.md) | Medium (62.74%) | hash-table, heap | [cpp](.cpp/0347.top-k-frequent-elements.cpp) |
| 0348.Design Tic-Tac-Toe 🔒 | Medium (57.93%) | design, hash-table | [cpp](.cpp/0348.design-tic-tac-toe.cpp) |
| [0349.Intersection of Two Arrays](.doc/0349.intersection-of-two-arrays.md) | Easy (74.39%) | hash-table, two-pointers, binary-search, sort, set | [cpp](.cpp/0349.intersection-of-two-arrays.cpp) |
| [0350.Intersection of Two Arrays II](.doc/0350.intersection-of-two-arrays-ii.md) | Easy (56.45%) | hash-table, sort, two-pointers | [cpp](.cpp/0350.intersection-of-two-arrays-ii.cpp) |
| 0351.Android Unlock Patterns 🔒 | Medium (51.81%) | depth-first-search | [cpp](.cpp/0351.android-unlock-patterns.cpp) |
| [0352.Data Stream as Disjoint Intervals](.doc/0352.data-stream-as-disjoint-intervals.md) | Hard (59.98%) | interval, ordered-map | [cpp](.cpp/0352.data-stream-as-disjoint-intervals.cpp) |
| 0353.Design Snake Game 🔒 | Medium (38.73%) | design, queue, hash-table | [cpp](.cpp/0353.design-snake-game.cpp) |
| [0354.Russian Doll Envelopes](.doc/0354.russian-doll-envelopes.md) | Hard (37.11%) | binary-search, sort, greedy | [cpp](.cpp/0354.russian-doll-envelopes.cpp) |
| [0355.Design Twitter](.doc/0355.design-twitter.md) | Medium (39.32%) | design, hash-table, heap | [cpp](.cpp/0355.design-twitter.cpp) |
| 0356.Line Reflection 🔒 | Medium (35.44%) | hash-table, geometry | [cpp](.cpp/0356.line-reflection.cpp) |
| [0357.Count Numbers with Unique Digits](.doc/0357.count-numbers-with-unique-digits.md) | Medium (52.86%) | math, backtracking | [cpp](.cpp/0357.count-numbers-with-unique-digits.cpp) |
| 0358.Rearrange String k Distance Apart 🔒 | Hard (38.62%) | heap, greedy, hash-table | [cpp](.cpp/0358.rearrange-string-k-distance-apart.cpp) |
| 0359.Logger Rate Limiter 🔒 | Easy (75.84%) | design, hash-table | [cpp](.cpp/0359.logger-rate-limiter.cpp) |
| 0360.Sort Transformed Array 🔒 | Medium (55.69%) | math, two-pointers | [cpp](.cpp/0360.sort-transformed-array.cpp) |
| 0361.Bomb Enemy 🔒 | Medium (51.72%) | matrix | [cpp](.cpp/0361.bomb-enemy.cpp) |
| 0362.Design Hit Counter 🔒 | Medium (68.64%) | design, binary-search | [cpp](.cpp/0362.design-hit-counter.cpp) |
| [0363.Max Sum of Rectangle No Larger Than K](.doc/0363.max-sum-of-rectangle-no-larger-than-k.md) | Hard (44.11%) | binary-search, matrix, prefix-sum, ordered-set | [cpp](.cpp/0363.max-sum-of-rectangle-no-larger-than-k.cpp) |
| 0364.Nested List Weight Sum II 🔒 | Medium (65.28%) | depth-first-search | [cpp](.cpp/0364.nested-list-weight-sum-ii.cpp) |
| [0365.Water and Jug Problem](.doc/0365.water-and-jug-problem.md) | Medium (40.21%) | math | [cpp](.cpp/0365.water-and-jug-problem.cpp) |
| 0366.Find Leaves of Binary Tree 🔒 | Medium (80.54%) | binary-tree, depth-first-search | [cpp](.cpp/0366.find-leaves-of-binary-tree.cpp) |
| [0367.Valid Perfect Square](.doc/0367.valid-perfect-square.md) | Easy (43.61%) | math, binary-search | [cpp](.cpp/0367.valid-perfect-square.cpp) |
| [0368.Largest Divisible Subset](.doc/0368.largest-divisible-subset.md) | Medium (45.24%) | math, dynamic-programming | [cpp](.cpp/0368.largest-divisible-subset.cpp) |
| 0369.Plus One Linked List 🔒 | Medium (61.02%) | linked-list, recursion | [cpp](.cpp/0369.plus-one-linked-list.cpp) |
| 0370.Range Addition 🔒 | Medium (71.55%) | difference-array | [cpp](.cpp/0370.range-addition.cpp) |
| [0371.Sum of Two Integers](.doc/0371.sum-of-two-integers.md) | Medium (51.78%) | bit-manipulation, arithmetic | [cpp](.cpp/0371.sum-of-two-integers.cpp) |
| [0372.Super Pow](.doc/0372.super-pow.md) | Medium (35.20%) | math | [cpp](.cpp/0372.super-pow.cpp) |
| [0373.Find K Pairs with Smallest Sums](.doc/0373.find-k-pairs-with-smallest-sums.md) | Medium (39.98%) | heap, sort, array | [cpp](.cpp/0373.find-k-pairs-with-smallest-sums.cpp) |
| [0374.Guess Number Higher or Lower](.doc/0374.guess-number-higher-or-lower.md) | Easy (53.39%) | binary-search | [cpp](.cpp/0374.guess-number-higher-or-lower.cpp) |
| [0375.Guess Number Higher or Lower II](.doc/0375.guess-number-higher-or-lower-ii.md) | Medium (48.83%) | dynamic-programming | [cpp](.cpp/0375.guess-number-higher-or-lower-ii.cpp) |
| [0376.Wiggle Subsequence](.doc/0376.wiggle-subsequence.md) | Medium (48.45%) | dynamic-programming, greedy | [cpp](.cpp/0376.wiggle-subsequence.cpp) |
| [0377.Combination Sum IV](.doc/0377.combination-sum-iv.md) | Medium (54.13%) | dynamic-programming, array, combination | [cpp](.cpp/0377.combination-sum-iv.cpp) |
| [0378.Kth Smallest Element in a Sorted Matrix](.doc/0378.kth-smallest-element-in-a-sorted-matrix.md) | Medium (62.38%) | binary-search, matrix | [cpp](.cpp/0378.kth-smallest-element-in-a-sorted-matrix.cpp) |
| 0379.Design Phone Directory 🔒 | Medium (51.65%) | design, hash-table | [cpp](.cpp/0379.design-phone-directory.cpp) |
| [0380.Insert Delete GetRandom O(1)](.doc/0380.insert-delete-get-random-o-1.md) | Medium (54.41%) | array, hash-table, design, random | [cpp](.cpp/0380.insert-delete-get-random-o-1.cpp) |
| [0381.Insert Delete GetRandom O(1) - Duplicates allowed](.doc/0381.insert-delete-get-random-o-1-duplicates-allowed.md) | Hard (35.44%) | array, hash-table, design, random | [cpp](.cpp/0381.insert-delete-get-random-o-1-duplicates-allowed.cpp) |
| [0382.Linked List Random Node](.doc/0382.linked-list-random-node.md) | Medium (63.13%) | random, reservoir-sampling | [cpp](.cpp/0382.linked-list-random-node.cpp) |
| [0383.Ransom Note](.doc/0383.ransom-note.md) | Easy (61.20%) | hash-table, string, easy | [cpp](.cpp/0383.ransom-note.cpp) |
| [0384.Shuffle an Array](.doc/0384.shuffle-an-array.md) | Medium (58.28%) | random | [cpp](.cpp/0384.shuffle-an-array.cpp) |
| [0385.Mini Parser](.doc/0385.mini-parser.md) | Medium (38.03%) | string, stack, recursion | [cpp](.cpp/0385.mini-parser.cpp) |
| [0386.Lexicographical Numbers](.doc/0386.lexicographical-numbers.md) | Medium (63.77%) | math, string, depth-first-search | [cpp](.cpp/0386.lexicographical-numbers.cpp) |
| [0387.First Unique Character in a String](.doc/0387.first-unique-character-in-a-string.md) | Easy (62.09%) | hash-table | [cpp](.cpp/0387.first-unique-character-in-a-string.cpp) |
| [0388.Longest Absolute File Path](.doc/0388.longest-absolute-file-path.md) | Medium (47.24%) | stack, hash-table | [cpp](.cpp/0388.longest-absolute-file-path.cpp) |
| [0389.Find the Difference](.doc/0389.find-the-difference.md) | Easy (59.77%) | hash-table | [cpp](.cpp/0389.find-the-difference.cpp) |
| [0390.Elimination Game](.doc/0390.elimination-game.md) | Medium (45.70%) | math | [cpp](.cpp/0390.elimination-game.cpp) |
| [0391.Perfect Rectangle](.doc/0391.perfect-rectangle.md) | Hard (33.63%) | hash-table, geometry, hard | [cpp](.cpp/0391.perfect-rectangle.cpp) |
| [0392.Is Subsequence](.doc/0392.is-subsequence.md) | Easy (47.93%) | string, two-pointers | [cpp](.cpp/0392.is-subsequence.cpp) |
| [0393.UTF-8 Validation](.doc/0393.utf-8-validation.md) | Medium (45.11%) | bit-manipulation | [cpp](.cpp/0393.utf-8-validation.cpp) |
| [0394.Decode String](.doc/0394.decode-string.md) | Medium (59.08%) | stack, string | [cpp](.cpp/0394.decode-string.cpp) |
| [0395.Longest Substring with At Least K Repeating Characters](.doc/0395.longest-substring-with-at-least-k-repeating-characters.md) | Medium (44.96%) | string, sliding-window, hash-table | [cpp](.cpp/0395.longest-substring-with-at-least-k-repeating-characters.cpp) |
| [0396.Rotate Function](.doc/0396.rotate-function.md) | Medium (42.45%) | math | [cpp](.cpp/0396.rotate-function.cpp) |
| [0397.Integer Replacement](.doc/0397.integer-replacement.md) | Medium (35.70%) | bit-manipulation, math, recursion | [cpp](.cpp/0397.integer-replacement.cpp) |
| [0398.Random Pick Index](.doc/0398.random-pick-index.md) | Medium (63.18%) | random, hash-table, reservoir-sampling | [cpp](.cpp/0398.random-pick-index.cpp) |
| [0399.Evaluate Division](.doc/0399.evaluate-division.md) | Medium (61.62%) | union-find, graph, depth-first-search | [cpp](.cpp/0399.evaluate-division.cpp) |
| [0400.Nth Digit](.doc/0400.nth-digit.md) | Medium (34.75%) | math | [cpp](.cpp/0400.nth-digit.cpp) |
| [0401.Binary Watch](.doc/0401.binary-watch.md) | Easy (54.15%) | bit-manipulation | [cpp](.cpp/0401.binary-watch.cpp) |
| [0402.Remove K Digits](.doc/0402.remove-k-digits.md) | Medium (31.73%) | stack, greedy | [cpp](.cpp/0402.remove-k-digits.cpp) |
| [0403.Frog Jump](.doc/0403.frog-jump.md) | Hard (46.01%) | binary-search, hash-table, depth-first-search, memoization | [cpp](.cpp/0403.frog-jump.cpp) |
| [0404.Sum of Left Leaves](.doc/0404.sum-of-left-leaves.md) | Easy (57.80%) | binary-tree | [cpp](.cpp/0404.sum-of-left-leaves.cpp) |
| [0405.Convert a Number to Hexadecimal](.doc/0405.convert-a-number-to-hexadecimal.md) | Easy (48.31%) | bit-manipulation | [cpp](.cpp/0405.convert-a-number-to-hexadecimal.cpp) |
| [0406.Queue Reconstruction by Height](.doc/0406.queue-reconstruction-by-height.md) | Medium (73.40%) | sort | [cpp](.cpp/0406.queue-reconstruction-by-height.cpp) |
| [0407.Trapping Rain Water II](.doc/0407.trapping-rain-water-ii.md) | Hard (47.89%) | heap, breadth-first-search | [cpp](.cpp/0407.trapping-rain-water-ii.cpp) |
| 0408.Valid Word Abbreviation 🔒 | Easy (35.65%) | string, two-pointers | [cpp](.cpp/0408.valid-word-abbreviation.cpp) |
| [0409.Longest Palindrome](.doc/0409.longest-palindrome.md) | Easy (53.90%) | hash-table, string, palindrome | [cpp](.cpp/0409.longest-palindrome.cpp) |
| [0410.Split Array Largest Sum](.doc/0410.split-array-largest-sum.md) | Hard (55.20%) | binary-search, dynamic-programming, prefix-sum, array, target-sum | [cpp](.cpp/0410.split-array-largest-sum.cpp) |
| 0411.Minimum Unique Word Abbreviation 🔒 | Hard (39.71%) | heap, bit-manipulation, string | [cpp](.cpp/0411.minimum-unique-word-abbreviation.cpp) |
| [0412.Fizz Buzz](.doc/0412.fizz-buzz.md) | Easy (72.00%) | easy | [cpp](.cpp/0412.fizz-buzz.cpp) |
| [0413.Arithmetic Slices](.doc/0413.arithmetic-slices.md) | Medium (65.04%) | math, dynamic-programming | [cpp](.cpp/0413.arithmetic-slices.cpp) |
| [0414.Third Maximum Number](.doc/0414.third-maximum-number.md) | Easy (34.76%) | array | [cpp](.cpp/0414.third-maximum-number.cpp) |
| [0415.Add Strings](.doc/0415.add-strings.md) | Easy (51.71%) | string, arithmetic, two-pointers | [cpp](.cpp/0415.add-strings.cpp) |
| [0416.Partition Equal Subset Sum](.doc/0416.partition-equal-subset-sum.md) | Medium (46.25%) | dynamic-programming, bit-manipulation, array, target-sum | [cpp](.cpp/0416.partition-equal-subset-sum.cpp) |
| [0417.Pacific Atlantic Water Flow](.doc/0417.pacific-atlantic-water-flow.md) | Medium (55.15%) | depth-first-search, breadth-first-search, matrix | [cpp](.cpp/0417.pacific-atlantic-water-flow.cpp) |
| 0418.Sentence Screen Fitting 🔒 | Medium (36.10%) | greedy | [cpp](.cpp/0418.sentence-screen-fitting.cpp) |
| [0419.Battleships in a Board](.doc/0419.battleships-in-a-board.md) | Medium (75.30%) | matrix | [cpp](.cpp/0419.battleships-in-a-board.cpp) |
| [0420.Strong Password Checker](.doc/0420.strong-password-checker.md) | Hard (13.60%) | string, hard, heap | [cpp](.cpp/0420.strong-password-checker.cpp) |
| [0421.Maximum XOR of Two Numbers in an Array](.doc/0421.maximum-xor-of-two-numbers-in-an-array.md) | Medium (53.32%) | bit-manipulation, trie, array | [cpp](.cpp/0421.maximum-xor-of-two-numbers-in-an-array.cpp) |
| 0422.Valid Word Square 🔒 | Easy (40.91%) | matrix, string | [cpp](.cpp/0422.valid-word-square.cpp) |
| [0423.Reconstruct Original Digits from English](.doc/0423.reconstruct-original-digits-from-english.md) | Medium (51.10%) | string, math | [cpp](.cpp/0423.reconstruct-original-digits-from-english.cpp) |
| [0424.Longest Repeating Character Replacement](.doc/0424.longest-repeating-character-replacement.md) | Medium (53.72%) | string, sliding-window | [cpp](.cpp/0424.longest-repeating-character-replacement.cpp) |
| 0425.Word Squares 🔒 | Hard (53.30%) | trie, backtracking, string | [cpp](.cpp/0425.word-squares.cpp) |
| 0426.Convert Binary Search Tree to Sorted Doubly Linked List 🔒 | Medium (64.77%) | binary-tree, binary-search-tree, linked-list, recursion | [cpp](.cpp/0426.convert-binary-search-tree-to-sorted-doubly-linked-list.cpp) |
| [0427.Construct Quad Tree](.doc/0427.construct-quad-tree.md) | Medium (75.29%) | matrix, depth-first-search | [cpp](.cpp/0427.construct-quad-tree.cpp) |
| 0428.Serialize and Deserialize N-ary Tree 🔒 | Hard (66.89%) | tree, depth-first-search, breadth-first-search, design, serialization | [cpp](.cpp/0428.serialize-and-deserialize-n-ary-tree.cpp) |
| [0429.N-ary Tree Level Order Traversal](.doc/0429.n-ary-tree-level-order-traversal.md) | Medium (70.82%) | tree, breadth-first-search, depth-first-search | [cpp](.cpp/0429.n-ary-tree-level-order-traversal.cpp) |
| [0430.Flatten a Multilevel Doubly Linked List](.doc/0430.flatten-a-multilevel-doubly-linked-list.md) | Medium (60.03%) | linked-list, stack, recursion | [cpp](.cpp/0430.flatten-a-multilevel-doubly-linked-list.cpp) |
| 0431.Encode N-ary Tree to Binary Tree 🔒 | Hard (79.41%) | binary-tree, tree, recursion | [cpp](.cpp/0431.encode-n-ary-tree-to-binary-tree.cpp) |
| [0432.All O`one Data Structure](.doc/0432.all-o-one-data-structure.md) | Hard (36.73%) | hash-table, design, linked-list | [cpp](.cpp/0432.all-o-one-data-structure.cpp) |
| [0433.Minimum Genetic Mutation](.doc/0433.minimum-genetic-mutation.md) | Medium (53.59%) | breadth-first-search | [cpp](.cpp/0433.minimum-genetic-mutation.cpp) |
| [0434.Number of Segments in a String](.doc/0434.number-of-segments-in-a-string.md) | Easy (36.40%) | string | [cpp](.cpp/0434.number-of-segments-in-a-string.cpp) |
| [0435.Non-overlapping Intervals](.doc/0435.non-overlapping-intervals.md) | Medium (53.13%) | sort, greedy, interval | [cpp](.cpp/0435.non-overlapping-intervals.cpp) |
| [0436.Find Right Interval](.doc/0436.find-right-interval.md) | Medium (51.99%) | sort, array, binary-search, interval | [cpp](.cpp/0436.find-right-interval.cpp) |
| [0437.Path Sum III](.doc/0437.path-sum-iii.md) | Medium (46.43%) | binary-tree, hash-table, depth-first-search, prefix-sum | [cpp](.cpp/0437.path-sum-iii.cpp) |
| [0438.Find All Anagrams in a String](.doc/0438.find-all-anagrams-in-a-string.md) | Medium (50.86%) | sliding-window, hash-table | [cpp](.cpp/0438.find-all-anagrams-in-a-string.cpp) |
| 0439.Ternary Expression Parser 🔒 | Medium (60.77%) | stack, string | [cpp](.cpp/0439.ternary-expression-parser.cpp) |
| [0440.K-th Smallest in Lexicographical Order](.doc/0440.k-th-smallest-in-lexicographical-order.md) | Hard (32.14%) | tree, depth-first-search | [cpp](.cpp/0440.k-th-smallest-in-lexicographical-order.cpp) |
| [0441.Arranging Coins](.doc/0441.arranging-coins.md) | Easy (46.55%) | math, binary-search | [cpp](.cpp/0441.arranging-coins.cpp) |
| [0442.Find All Duplicates in an Array](.doc/0442.find-all-duplicates-in-an-array.md) | Medium (75.66%) | array, duplicate | [cpp](.cpp/0442.find-all-duplicates-in-an-array.cpp) |
| [0443.String Compression](.doc/0443.string-compression.md) | Medium (54.27%) | two-pointers | [cpp](.cpp/0443.string-compression.cpp) |
| 0444.Sequence Reconstruction 🔒 | Medium (28.08%) | graph, topological-sort | [cpp](.cpp/0444.sequence-reconstruction.cpp) |
| [0445.Add Two Numbers II](.doc/0445.add-two-numbers-ii.md) | Medium (61.12%) | linked-list, arithmetic | [cpp](.cpp/0445.add-two-numbers-ii.cpp) |
| [0446.Arithmetic Slices II - Subsequence](.doc/0446.arithmetic-slices-ii-subsequence.md) | Hard (54.58%) | dynamic-programming, hash-table | [cpp](.cpp/0446.arithmetic-slices-ii-subsequence.cpp) |
| [0447.Number of Boomerangs](.doc/0447.number-of-boomerangs.md) | Medium (55.40%) | hash-table, math | [cpp](.cpp/0447.number-of-boomerangs.cpp) |
| [0448.Find All Numbers Disappeared in an Array](.doc/0448.find-all-numbers-disappeared-in-an-array.md) | Easy (60.91%) | array, hash-table | [cpp](.cpp/0448.find-all-numbers-disappeared-in-an-array.cpp) |
| [0449.Serialize and Deserialize BST](.doc/0449.serialize-and-deserialize-bst.md) | Medium (57.62%) | binary-search-tree, binary-tree, design, monotonous-stack, serialization | [cpp](.cpp/0449.serialize-and-deserialize-bst.cpp) |
| [0450.Delete Node in a BST](.doc/0450.delete-node-in-a-bst.md) | Medium (51.17%) | binary-search-tree, binary-tree, recursion | [cpp](.cpp/0450.delete-node-in-a-bst.cpp) |
| [0451.Sort Characters By Frequency](.doc/0451.sort-characters-by-frequency.md) | Medium (72.51%) | hash-table, heap, sort, string, bucket-sort | [cpp](.cpp/0451.sort-characters-by-frequency.cpp) |
| [0452.Minimum Number of Arrows to Burst Balloons](.doc/0452.minimum-number-of-arrows-to-burst-balloons.md) | Medium (58.87%) | interval, greedy, sort | [cpp](.cpp/0452.minimum-number-of-arrows-to-burst-balloons.cpp) |
| [0453.Minimum Moves to Equal Array Elements](.doc/0453.minimum-moves-to-equal-array-elements.md) | Medium (56.69%) | array, math | [cpp](.cpp/0453.minimum-moves-to-equal-array-elements.cpp) |
| [0454.4Sum II](.doc/0454.4-sum-ii.md) | Medium (57.23%) | hash-table | [cpp](.cpp/0454.4-sum-ii.cpp) |
| [0455.Assign Cookies](.doc/0455.assign-cookies.md) | Easy (52.67%) | greedy | [cpp](.cpp/0455.assign-cookies.cpp) |
| [0456.132 Pattern](.doc/0456.132-pattern.md) | Medium (33.75%) | monotonic-stack, array | [cpp](.cpp/0456.132-pattern.cpp) |
| [0457.Circular Array Loop](.doc/0457.circular-array-loop.md) | Medium (33.92%) | fast-slow-pointers, array | [cpp](.cpp/0457.circular-array-loop.cpp) |
| [0458.Poor Pigs](.doc/0458.poor-pigs.md) | Hard (59.75%) | math | [cpp](.cpp/0458.poor-pigs.cpp) |
| [0459.Repeated Substring Pattern](.doc/0459.repeated-substring-pattern.md) | Easy (46.07%) | string | [cpp](.cpp/0459.repeated-substring-pattern.cpp) |
| [0460.LFU Cache](.doc/0460.lfu-cache.md) | Hard (44.11%) | design | [cpp](.cpp/0460.lfu-cache.cpp) |
| [0461.Hamming Distance](.doc/0461.hamming-distance.md) | Easy (75.37%) | bit-manipulation | [cpp](.cpp/0461.hamming-distance.cpp) |
| [0462.Minimum Moves to Equal Array Elements II](.doc/0462.minimum-moves-to-equal-array-elements-ii.md) | Medium (60.10%) | sort, partition | [cpp](.cpp/0462.minimum-moves-to-equal-array-elements-ii.cpp) |
| [0463.Island Perimeter](.doc/0463.island-perimeter.md) | Easy (70.35%) | geometry | [cpp](.cpp/0463.island-perimeter.cpp) |
| [0464.Can I Win](.doc/0464.can-i-win.md) | Medium (29.66%) | depth-first-search, memoization, minimax | [cpp](.cpp/0464.can-i-win.cpp) |
| 0465.Optimal Account Balancing 🔒 | Hard (49.56%) | bit-manipulation, dynamic-programming | [cpp](.cpp/0465.optimal-account-balancing.cpp) |
| [0466.Count The Repetitions](.doc/0466.count-the-repetitions.md) | Hard (30.12%) | string, hard | [cpp](.cpp/0466.count-the-repetitions.cpp) |
| [0467.Unique Substrings in Wraparound String](.doc/0467.unique-substrings-in-wraparound-string.md) | Medium (39.56%) | dynamic-programming | [cpp](.cpp/0467.unique-substrings-in-wraparound-string.cpp) |
| [0468.Validate IP Address](.doc/0468.validate-ip-address.md) | Medium (26.95%) | string | [cpp](.cpp/0468.validate-ip-address.cpp) |
| 0469.Convex Polygon 🔒 | Medium (39.38%) | math, geometry | [cpp](.cpp/0469.convex-polygon.cpp) |
| [0470.Implement Rand10() Using Rand7()](.doc/0470.implement-rand-10-using-rand-7.md) | Medium (45.97%) | math, random | [cpp](.cpp/0470.implement-rand-10-using-rand-7.cpp) |
| 0471.Encode String with Shortest Length 🔒 | Hard (50.43%) | string, dynamic-programming | [cpp](.cpp/0471.encode-string-with-shortest-length.cpp) |
| [0472.Concatenated Words](.doc/0472.concatenated-words.md) | Hard (49.46%) | string, trie, depth-first-search | [cpp](.cpp/0472.concatenated-words.cpp) |
| [0473.Matchsticks to Square](.doc/0473.matchsticks-to-square.md) | Medium (40.24%) | depth-first-search, dynamic-programming, bit-manipulation, backtracking | [cpp](.cpp/0473.matchsticks-to-square.cpp) |
| [0474.Ones and Zeroes](.doc/0474.ones-and-zeroes.md) | Medium (47.53%) | dynamic-programming, depth-first-search, memoization | [cpp](.cpp/0474.ones-and-zeroes.cpp) |
| [0475.Heaters](.doc/0475.heaters.md) | Medium (37.73%) | binary-search, sort | [cpp](.cpp/0475.heaters.cpp) |
| [0476.Number Complement](.doc/0476.number-complement.md) | Easy (67.60%) | bit-manipulation | [cpp](.cpp/0476.number-complement.cpp) |
| [0477.Total Hamming Distance](.doc/0477.total-hamming-distance.md) | Medium (52.55%) | bit-manipulation | [cpp](.cpp/0477.total-hamming-distance.cpp) |
| [0478.Generate Random Point in a Circle](.doc/0478.generate-random-point-in-a-circle.md) | Medium (39.78%) | geometry, random, math | [cpp](.cpp/0478.generate-random-point-in-a-circle.cpp) |
| [0479.Largest Palindrome Product](.doc/0479.largest-palindrome-product.md) | Hard (33.18%) | math, palindrome | [cpp](.cpp/0479.largest-palindrome-product.cpp) |
| [0480.Sliding Window Median](.doc/0480.sliding-window-median.md) | Hard (39.25%) | sliding-window, multiset, heap, hash-table, hard | [cpp](.cpp/0480.sliding-window-median.cpp) |
| [0481.Magical String](.doc/0481.magical-string.md) | Medium (51.20%) | math, string | [cpp](.cpp/0481.magical-string.cpp) |
| [0482.License Key Formatting](.doc/0482.license-key-formatting.md) | Easy (43.72%) | string | [cpp](.cpp/0482.license-key-formatting.cpp) |
| [0483.Smallest Good Base](.doc/0483.smallest-good-base.md) | Hard (40.44%) | math, binary-search, hard | [cpp](.cpp/0483.smallest-good-base.cpp) |
| 0484.Find Permutation 🔒 | Medium (66.86%) | string, permutation, greedy | [cpp](.cpp/0484.find-permutation.cpp) |
| [0485.Max Consecutive Ones](.doc/0485.max-consecutive-ones.md) | Easy (58.89%) | array | [cpp](.cpp/0485.max-consecutive-ones.cpp) |
| [0486.Predict the Winner](.doc/0486.predict-the-winner.md) | Medium (55.45%) | minimax, dynamic-programming, game-theory, depth-first-search, memoization | [cpp](.cpp/0486.predict-the-winner.cpp) |
| 0487.Max Consecutive Ones II 🔒 | Medium (50.33%) | array, sliding-window | [cpp](.cpp/0487.max-consecutive-ones-ii.cpp) |
| [0488.Zuma Game](.doc/0488.zuma-game.md) | Hard (32.92%) | recursion, depth-first-search, memoization | [cpp](.cpp/0488.zuma-game.cpp) |
| 0489.Robot Room Cleaner 🔒 | Hard (76.67%) | depth-first-search | [cpp](.cpp/0489.robot-room-cleaner.cpp) |
| 0490.The Maze 🔒 | Medium (57.78%) | breadth-first-search | [cpp](.cpp/0490.the-maze.cpp) |
| [0491.Non-decreasing Subsequences](.doc/0491.non-decreasing-subsequences.md) | Medium (60.65%) | depth-first-search, array | [cpp](.cpp/0491.non-decreasing-subsequences.cpp) |
| [0492.Construct the Rectangle](.doc/0492.construct-the-rectangle.md) | Easy (57.37%) | math, geometry | [cpp](.cpp/0492.construct-the-rectangle.cpp) |
| [0493.Reverse Pairs](.doc/0493.reverse-pairs.md) | Hard (30.57%) | array, merge-sort, binary-indexed-tree, segment-tree, hash-table | [cpp](.cpp/0493.reverse-pairs.cpp) |
| [0494.Target Sum](.doc/0494.target-sum.md) | Medium (46.70%) | dynamic-programming, array, arithmetic | [cpp](.cpp/0494.target-sum.cpp) |
| [0495.Teemo Attacking](.doc/0495.teemo-attacking.md) | Easy (56.56%) | array | [cpp](.cpp/0495.teemo-attacking.cpp) |
| [0496.Next Greater Element I](.doc/0496.next-greater-element-i.md) | Easy (72.13%) | array, stack, monotonic-stack, hash-table | [cpp](.cpp/0496.next-greater-element-i.cpp) |
| [0497.Random Point in Non-overlapping Rectangles](.doc/0497.random-point-in-non-overlapping-rectangles.md) | Medium (39.95%) | prefix-sum, random, binary-search | [cpp](.cpp/0497.random-point-in-non-overlapping-rectangles.cpp) |
| [0498.Diagonal Traverse](.doc/0498.diagonal-traverse.md) | Medium (60.06%) | matrix | [cpp](.cpp/0498.diagonal-traverse.cpp) |
| 0499.The Maze III 🔒 | Hard (48.67%) | breadth-first-search | [cpp](.cpp/0499.the-maze-iii.cpp) |
| [0500.Keyboard Row](.doc/0500.keyboard-row.md) | Easy (70.61%) | hash-table | [cpp](.cpp/0500.keyboard-row.cpp) |
| [0501.Find Mode in Binary Search Tree](.doc/0501.find-mode-in-binary-search-tree.md) | Easy (56.03%) | binary-search-tree, binary-tree | [cpp](.cpp/0501.find-mode-in-binary-search-tree.cpp) |
| [0502.IPO](.doc/0502.ipo.md) | Hard (49.55%) | heap, sort, greedy | [cpp](.cpp/0502.ipo.cpp) |
| [0503.Next Greater Element II](.doc/0503.next-greater-element-ii.md) | Medium (63.78%) | monotonic-stack, array | [cpp](.cpp/0503.next-greater-element-ii.cpp) |
| [0504.Base 7](.doc/0504.base-7.md) | Easy (49.89%) | math | [cpp](.cpp/0504.base-7.cpp) |
| 0505.The Maze II 🔒 | Medium (53.35%) | breadth-first-search | [cpp](.cpp/0505.the-maze-ii.cpp) |
| [0506.Relative Ranks](.doc/0506.relative-ranks.md) | Easy (63.70%) | array, sort, heap, ordered-map, hash-table | [cpp](.cpp/0506.relative-ranks.cpp) |
| [0507.Perfect Number](.doc/0507.perfect-number.md) | Easy (40.16%) | math | [cpp](.cpp/0507.perfect-number.cpp) |
| [0508.Most Frequent Subtree Sum](.doc/0508.most-frequent-subtree-sum.md) | Medium (66.27%) | binary-tree, hash-table, depth-first-search | [cpp](.cpp/0508.most-frequent-subtree-sum.cpp) |
| [0509.Fibonacci Number](.doc/0509.fibonacci-number.md) | Easy (70.93%) | fibonacci, dynamic-programming | [cpp](.cpp/0509.fibonacci-number.cpp) |
| 0510.Inorder Successor in BST II 🔒 | Medium (60.92%) | binary-tree, binary-search-tree | [cpp](.cpp/0510.inorder-successor-in-bst-ii.cpp) |
| [0513.Find Bottom Left Tree Value](.doc/0513.find-bottom-left-tree-value.md) | Medium (71.09%) | binary-tree, depth-first-search, breadth-first-search | [cpp](.cpp/0513.find-bottom-left-tree-value.cpp) |
| [0514.Freedom Trail](.doc/0514.freedom-trail.md) | Hard (47.72%) | dynamic-programming, depth-first-search, memoization | [cpp](.cpp/0514.freedom-trail.cpp) |
| [0515.Find Largest Value in Each Tree Row](.doc/0515.find-largest-value-in-each-tree-row.md) | Medium (65.66%) | binary-tree, depth-first-search, breadth-first-search | [cpp](.cpp/0515.find-largest-value-in-each-tree-row.cpp) |
| [0516.Longest Palindromic Subsequence](.doc/0516.longest-palindromic-subsequence.md) | Medium (62.52%) | dynamic-programming, palindrome | [cpp](.cpp/0516.longest-palindromic-subsequence.cpp) |
| [0517.Super Washing Machines](.doc/0517.super-washing-machines.md) | Hard (41.14%) | math, greedy | [cpp](.cpp/0517.super-washing-machines.cpp) |
| [0518.Coin Change II](.doc/0518.coin-change-ii.md) | Medium (63.76%) | dynamic-programming, coin-change | [cpp](.cpp/0518.coin-change-ii.cpp) |
| [0519.Random Flip Matrix](.doc/0519.random-flip-matrix.md) | Medium (41.82%) | random, design, array | [cpp](.cpp/0519.random-flip-matrix.cpp) |
| [0520.Detect Capital](.doc/0520.detect-capital.md) | Easy (56.50%) | string | [cpp](.cpp/0520.detect-capital.cpp) |
| [0521.Longest Uncommon Subsequence I](.doc/0521.longest-uncommon-subsequence-i.md) | Easy (60.69%) | string | [cpp](.cpp/0521.longest-uncommon-subsequence-i.cpp) |
| [0522.Longest Uncommon Subsequence II](.doc/0522.longest-uncommon-subsequence-ii.md) | Medium (41.28%) | string, sort, two-pointers | [cpp](.cpp/0522.longest-uncommon-subsequence-ii.cpp) |
| [0523.Continuous Subarray Sum](.doc/0523.continuous-subarray-sum.md) | Medium (28.87%) | prefix-sum, hash-table | [cpp](.cpp/0523.continuous-subarray-sum.cpp) |
| [0524.Longest Word in Dictionary through Deleting](.doc/0524.longest-word-in-dictionary-through-deleting.md) | Medium (51.16%) | two-pointers, sort, string | [cpp](.cpp/0524.longest-word-in-dictionary-through-deleting.cpp) |
| [0525.Contiguous Array](.doc/0525.contiguous-array.md) | Medium (48.93%) | hash-table, array, prefix-sum | [cpp](.cpp/0525.contiguous-array.cpp) |
| [0526.Beautiful Arrangement](.doc/0526.beautiful-arrangement.md) | Medium (64.24%) | permutation, recursion | [cpp](.cpp/0526.beautiful-arrangement.cpp) |
| 0527.Word Abbreviation 🔒 | Hard (60.95%) | trie, string | [cpp](.cpp/0527.word-abbreviation.cpp) |
| [0528.Random Pick with Weight](.doc/0528.random-pick-with-weight.md) | Medium (46.73%) | prefix-sum, random, binary-search | [cpp](.cpp/0528.random-pick-with-weight.cpp) |
| [0529.Minesweeper](.doc/0529.minesweeper.md) | Medium (66.54%) | matrix, depth-first-search, design | [cpp](.cpp/0529.minesweeper.cpp) |
| [0530.Minimum Absolute Difference in BST](.doc/0530.minimum-absolute-difference-in-bst.md) | Easy (58.39%) | binary-search-tree, binary-tree | [cpp](.cpp/0530.minimum-absolute-difference-in-bst.cpp) |
| 0531.Lonely Pixel I 🔒 | Medium (62.26%) | matrix | [cpp](.cpp/0531.lonely-pixel-i.cpp) |
| [0532.K-diff Pairs in an Array](.doc/0532.k-diff-pairs-in-an-array.md) | Medium (42.70%) | array, hash-table | [cpp](.cpp/0532.k-diff-pairs-in-an-array.cpp) |
| 0533.Lonely Pixel II 🔒 | Medium (48.59%) | matrix, array | [cpp](.cpp/0533.lonely-pixel-ii.cpp) |
| [0535.Encode and Decode TinyURL](.doc/0535.encode-and-decode-tiny-url.md) | Medium (86.33%) | hash-table, design | [cpp](.cpp/0535.encode-and-decode-tiny-url.cpp) |
| 0536.Construct Binary Tree from String 🔒 | Medium (56.81%) | binary-tree, string, recursion | [cpp](.cpp/0536.construct-binary-tree-from-string.cpp) |
| [0537.Complex Number Multiplication](.doc/0537.complex-number-multiplication.md) | Medium (71.75%) | math, string, arithmetic | [cpp](.cpp/0537.complex-number-multiplication.cpp) |
| [0538.Convert BST to Greater Tree](.doc/0538.convert-bst-to-greater-tree.md) | Medium (68.94%) | binary-search-tree, binary-tree, stack | [cpp](.cpp/0538.convert-bst-to-greater-tree.cpp) |
| [0539.Minimum Time Difference](.doc/0539.minimum-time-difference.md) | Medium (56.81%) | string, array, sort, bitmap | [cpp](.cpp/0539.minimum-time-difference.cpp) |
| [0540.Single Element in a Sorted Array](.doc/0540.single-element-in-a-sorted-array.md) | Medium (59.01%) | binary-search, bit-manipulation, duplicate | [cpp](.cpp/0540.single-element-in-a-sorted-array.cpp) |
| [0541.Reverse String II](.doc/0541.reverse-string-ii.md) | Easy (50.63%) | string | [cpp](.cpp/0541.reverse-string-ii.cpp) |
| [0542.01 Matrix](.doc/0542.01-matrix.md) | Medium (48.33%) | breadth-first-search, matrix, dynamic-programming | [cpp](.cpp/0542.01-matrix.cpp) |
| [0543.Diameter of Binary Tree](.doc/0543.diameter-of-binary-tree.md) | Easy (60.21%) | binary-tree, depth-first-search | [cpp](.cpp/0543.diameter-of-binary-tree.cpp) |
| 0544.Output Contest Matches 🔒 | Medium (77.11%) | array | [cpp](.cpp/0544.output-contest-matches.cpp) |
| 0545.Boundary of Binary Tree 🔒 | Medium (45.32%) | binary-tree | [cpp](.cpp/0545.boundary-of-binary-tree.cpp) |
| [0546.Remove Boxes](.doc/0546.remove-boxes.md) | Hard (47.74%) | depth-first-search, memoization, hard | [cpp](.cpp/0546.remove-boxes.cpp) |
| [0547.Number of Provinces](.doc/0547.number-of-provinces.md) | Medium (66.08%) | graph, union-find | [cpp](.cpp/0547.number-of-provinces.cpp) |
| 0548.Split Array with Equal Sum 🔒 | Hard (50.11%) | prefix-sum, hash-table | [cpp](.cpp/0548.split-array-with-equal-sum.cpp) |
| 0549.Binary Tree Longest Consecutive Sequence II 🔒 | Medium (49.47%) | binary-tree, depth-first-search | [cpp](.cpp/0549.binary-tree-longest-consecutive-sequence-ii.cpp) |
| [0551.Student Attendance Record I](.doc/0551.student-attendance-record-i.md) | Easy (48.72%) | string, regex | [cpp](.cpp/0551.student-attendance-record-i.cpp) |
| [0552.Student Attendance Record II](.doc/0552.student-attendance-record-ii.md) | Hard (42.71%) | depth-first-search, memoization | [cpp](.cpp/0552.student-attendance-record-ii.cpp) |
| [0553.Optimal Division](.doc/0553.optimal-division.md) | Medium (60.69%) | math | [cpp](.cpp/0553.optimal-division.cpp) |
| [0554.Brick Wall](.doc/0554.brick-wall.md) | Medium (54.72%) | hash-table | [cpp](.cpp/0554.brick-wall.cpp) |
| 0555.Split Concatenated Strings 🔒 | Medium (43.46%) | greedy, string | [cpp](.cpp/0555.split-concatenated-strings.cpp) |
| [0556.Next Greater Element III](.doc/0556.next-greater-element-iii.md) | Medium (34.02%) | permutation, string | [cpp](.cpp/0556.next-greater-element-iii.cpp) |
| [0557.Reverse Words in a String III](.doc/0557.reverse-words-in-a-string-iii.md) | Easy (83.03%) | string, stack, two-pointers | [cpp](.cpp/0557.reverse-words-in-a-string-iii.cpp) |
| [0558.Logical OR of Two Binary Grids Represented as Quad-Trees](.doc/0558.logical-or-of-two-binary-grids-represented-as-quad-trees.md) | Medium (49.55%) | tree, depth-first-search | [cpp](.cpp/0558.logical-or-of-two-binary-grids-represented-as-quad-trees.cpp) |
| [0559.Maximum Depth of N-ary Tree](.doc/0559.maximum-depth-of-n-ary-tree.md) | Easy (72.11%) | tree, depth-first-search | [cpp](.cpp/0559.maximum-depth-of-n-ary-tree.cpp) |
| [0560.Subarray Sum Equals K](.doc/0560.subarray-sum-equals-k.md) | Medium (43.54%) | array, hash-table, prefix-sum | [cpp](.cpp/0560.subarray-sum-equals-k.cpp) |
| [0561.Array Partition](.doc/0561.array-partition.md) | Easy (78.71%) | array, sort | [cpp](.cpp/0561.array-partition.cpp) |
| 0562.Longest Line of Consecutive One in Matrix 🔒 | Medium (50.36%) | dynamic-programming, matrix | [cpp](.cpp/0562.longest-line-of-consecutive-one-in-matrix.cpp) |
| [0563.Binary Tree Tilt](.doc/0563.binary-tree-tilt.md) | Easy (61.69%) | binary-tree, depth-first-search | [cpp](.cpp/0563.binary-tree-tilt.cpp) |
| [0564.Find the Closest Palindrome](.doc/0564.find-the-closest-palindrome.md) | Hard (22.28%) | palindrome, string | [cpp](.cpp/0564.find-the-closest-palindrome.cpp) |
| [0565.Array Nesting](.doc/0565.array-nesting.md) | Medium (56.34%) | array | [cpp](.cpp/0565.array-nesting.cpp) |
| [0566.Reshape the Matrix](.doc/0566.reshape-the-matrix.md) | Easy (63.08%) | matrix | [cpp](.cpp/0566.reshape-the-matrix.cpp) |
| [0567.Permutation in String](.doc/0567.permutation-in-string.md) | Medium (44.33%) | sliding-window, hash-table, string | [cpp](.cpp/0567.permutation-in-string.cpp) |
| 0568.Maximum Vacation Days 🔒 | Hard (45.57%) | dynamic-programming | [cpp](.cpp/0568.maximum-vacation-days.cpp) |
| [0572.Subtree of Another Tree](.doc/0572.subtree-of-another-tree.md) | Easy (47.78%) | binary-tree, depth-first-search | [cpp](.cpp/0572.subtree-of-another-tree.cpp) |
| 0573.Squirrel Simulation 🔒 | Medium (57.10%) | planning, greedy | [cpp](.cpp/0573.squirrel-simulation.cpp) |
| [0575.Distribute Candies](.doc/0575.distribute-candies.md) | Easy (67.58%) | hash-table | [cpp](.cpp/0575.distribute-candies.cpp) |
| [0576.Out of Boundary Paths](.doc/0576.out-of-boundary-paths.md) | Medium (48.07%) | dynamic-programming, depth-first-search, memoization, matrix | [cpp](.cpp/0576.out-of-boundary-paths.cpp) |
| [0581.Shortest Unsorted Continuous Subarray](.doc/0581.shortest-unsorted-continuous-subarray.md) | Medium (36.81%) | array, sort, two-pointers, sliding-window | [cpp](.cpp/0581.shortest-unsorted-continuous-subarray.cpp) |
| 0582.Kill Process 🔒 | Medium (69.27%) | tree, graph, depth-first-search | [cpp](.cpp/0582.kill-process.cpp) |
| [0583.Delete Operation for Two Strings](.doc/0583.delete-operation-for-two-strings.md) | Medium (61.47%) | string, dynamic-programming | [cpp](.cpp/0583.delete-operation-for-two-strings.cpp) |
| [0587.Erect the Fence](.doc/0587.erect-the-fence.md) | Hard (51.92%) | geometry | [cpp](.cpp/0587.erect-the-fence.cpp) |
| 0588.Design In-Memory File System 🔒 | Hard (48.14%) | design, hash-table, trie | [cpp](.cpp/0588.design-in-memory-file-system.cpp) |
| [0589.N-ary Tree Preorder Traversal](.doc/0589.n-ary-tree-preorder-traversal.md) | Easy (75.46%) | stack, tree | [cpp](.cpp/0589.n-ary-tree-preorder-traversal.cpp) |
| [0590.N-ary Tree Postorder Traversal](.doc/0590.n-ary-tree-postorder-traversal.md) | Easy (77.84%) | stack, tree | [cpp](.cpp/0590.n-ary-tree-postorder-traversal.cpp) |
| [0591.Tag Validator](.doc/0591.tag-validator.md) | Hard (38.14%) | string, stack | [cpp](.cpp/0591.tag-validator.cpp) |
| [0592.Fraction Addition and Subtraction](.doc/0592.fraction-addition-and-subtraction.md) | Medium (53.15%) | math, string, arithmetic, greatest-common-divisor | [cpp](.cpp/0592.fraction-addition-and-subtraction.cpp) |
| [0593.Valid Square](.doc/0593.valid-square.md) | Medium (43.99%) | math, hash-table, geometry | [cpp](.cpp/0593.valid-square.cpp) |
| [0594.Longest Harmonious Subsequence](.doc/0594.longest-harmonious-subsequence.md) | Easy (54.60%) | hash-table, array, ordered-map, sliding-window, sort | [cpp](.cpp/0594.longest-harmonious-subsequence.cpp) |
| [0598.Range Addition II](.doc/0598.range-addition-ii.md) | Easy (56.04%) | math, matrix | [cpp](.cpp/0598.range-addition-ii.cpp) |
| [0599.Minimum Index Sum of Two Lists](.doc/0599.minimum-index-sum-of-two-lists.md) | Easy (55.26%) | hash-table, string | [cpp](.cpp/0599.minimum-index-sum-of-two-lists.cpp) |
| [0600.Non-negative Integers without Consecutive Ones](.doc/0600.non-negative-integers-without-consecutive-ones.md) | Hard (39.71%) | math, dynamic-programming, bit-manipulation | [cpp](.cpp/0600.non-negative-integers-without-consecutive-ones.cpp) |
| 0604.Design Compressed String Iterator 🔒 | Easy (39.74%) | design, string | [cpp](.cpp/0604.design-compressed-string-iterator.cpp) |
| [0605.Can Place Flowers](.doc/0605.can-place-flowers.md) | Easy (29.25%) | array, greedy | [cpp](.cpp/0605.can-place-flowers.cpp) |
| [0606.Construct String from Binary Tree](.doc/0606.construct-string-from-binary-tree.md) | Medium (69.13%) | binary-tree, string | [cpp](.cpp/0606.construct-string-from-binary-tree.cpp) |
| [0609.Find Duplicate File in System](.doc/0609.find-duplicate-file-in-system.md) | Medium (67.62%) | hash-table, string | [cpp](.cpp/0609.find-duplicate-file-in-system.cpp) |
| [0611.Valid Triangle Number](.doc/0611.valid-triangle-number.md) | Medium (51.09%) | binary-search, array, sort, two-pointers | [cpp](.cpp/0611.valid-triangle-number.cpp) |
| 0616.Add Bold Tag in String 🔒 | Medium (49.67%) | string, trie | [cpp](.cpp/0616.add-bold-tag-in-string.cpp) |
| [0617.Merge Two Binary Trees](.doc/0617.merge-two-binary-trees.md) | Easy (78.91%) | binary-tree, depth-first-search | [cpp](.cpp/0617.merge-two-binary-trees.cpp) |
| [0621.Task Scheduler](.doc/0621.task-scheduler.md) | Medium (59.85%) | array, hash-table, greedy | [cpp](.cpp/0621.task-scheduler.cpp) |
| [0622.Design Circular Queue](.doc/0622.design-circular-queue.md) | Medium (51.41%) | design, queue, linked-list, array | [cpp](.cpp/0622.design-circular-queue.cpp) |
| [0623.Add One Row to Tree](.doc/0623.add-one-row-to-tree.md) | Medium (59.63%) | binary-tree, depth-first-search, breadth-first-search | [cpp](.cpp/0623.add-one-row-to-tree.cpp) |
| [0624.Maximum Distance in Arrays](.doc/0624.maximum-distance-in-arrays.md) | Medium (42.41%) | array | [cpp](.cpp/0624.maximum-distance-in-arrays.cpp) |
| 0625.Minimum Factorization 🔒 | Medium (33.59%) | greedy, math | [cpp](.cpp/0625.minimum-factorization.cpp) |
| [0628.Maximum Product of Three Numbers](.doc/0628.maximum-product-of-three-numbers.md) | Easy (45.30%) | sort, math, array, greedy | [cpp](.cpp/0628.maximum-product-of-three-numbers.cpp) |
| [0629.K Inverse Pairs Array](.doc/0629.k-inverse-pairs-array.md) | Hard (50.04%) | dynamic-programming, array, math | [cpp](.cpp/0629.k-inverse-pairs-array.cpp) |
| [0630.Course Schedule III](.doc/0630.course-schedule-iii.md) | Hard (40.18%) | greedy, heap | [cpp](.cpp/0630.course-schedule-iii.cpp) |
| 0631.Design Excel Sum Formula 🔒 | Hard (43.69%) | design, matrix | [cpp](.cpp/0631.design-excel-sum-formula.cpp) |
| [0632.Smallest Range Covering Elements from K Lists](.doc/0632.smallest-range-covering-elements-from-k-lists.md) | Hard (62.41%) | heap, hash-table, sort, sliding-window | [cpp](.cpp/0632.smallest-range-covering-elements-from-k-lists.cpp) |
| [0633.Sum of Square Numbers](.doc/0633.sum-of-square-numbers.md) | Medium (33.97%) | math, two-pointers | [cpp](.cpp/0633.sum-of-square-numbers.cpp) |
| 0634.Find the Derangement of An Array 🔒 | Medium (41.95%) | dynamic-programming | [cpp](.cpp/0634.find-the-derangement-of-an-array.cpp) |
| 0635.Design Log Storage System 🔒 | Medium (61.39%) | string, design, ordered-map, binary-search | [cpp](.cpp/0635.design-log-storage-system.cpp) |
| [0636.Exclusive Time of Functions](.doc/0636.exclusive-time-of-functions.md) | Medium (62.44%) | stack | [cpp](.cpp/0636.exclusive-time-of-functions.cpp) |
| [0637.Average of Levels in Binary Tree](.doc/0637.average-of-levels-in-binary-tree.md) | Easy (72.43%) | binary-tree | [cpp](.cpp/0637.average-of-levels-in-binary-tree.cpp) |
| [0638.Shopping Offers](.doc/0638.shopping-offers.md) | Medium (52.17%) | memorization, recursion | [cpp](.cpp/0638.shopping-offers.cpp) |
| [0639.Decode Ways II](.doc/0639.decode-ways-ii.md) | Hard (30.69%) | dynamic-programming | [cpp](.cpp/0639.decode-ways-ii.cpp) |
| [0640.Solve the Equation](.doc/0640.solve-the-equation.md) | Medium (43.73%) | math, string | [cpp](.cpp/0640.solve-the-equation.cpp) |
| [0641.Design Circular Deque](.doc/0641.design-circular-deque.md) | Medium (56.86%) | design, queue, linked-list, array | [cpp](.cpp/0641.design-circular-deque.cpp) |
| 0642.Design Search Autocomplete System 🔒 | Hard (48.89%) | trie, string, design, sort | [cpp](.cpp/0642.design-search-autocomplete-system.cpp) |
| [0643.Maximum Average Subarray I](.doc/0643.maximum-average-subarray-i.md) | Easy (43.26%) | array, sliding-window, prefix-sum | [cpp](.cpp/0643.maximum-average-subarray-i.cpp) |
| 0644.Maximum Average Subarray II 🔒 | Hard (36.64%) | binary-search, array, prefix-sum | [cpp](.cpp/0644.maximum-average-subarray-ii.cpp) |
| [0645.Set Mismatch](.doc/0645.set-mismatch.md) | Easy (44.54%) | hash-table, math, in-place | [cpp](.cpp/0645.set-mismatch.cpp) |
| [0646.Maximum Length of Pair Chain](.doc/0646.maximum-length-of-pair-chain.md) | Medium (59.76%) | dynamic-programming, greedy, sort | [cpp](.cpp/0646.maximum-length-of-pair-chain.cpp) |
| [0647.Palindromic Substrings](.doc/0647.palindromic-substrings.md) | Medium (70.05%) | string, dynamic-programming, palindrome, manacher | [cpp](.cpp/0647.palindromic-substrings.cpp) |
| [0648.Replace Words](.doc/0648.replace-words.md) | Medium (62.82%) | hash-table, trie, sort | [cpp](.cpp/0648.replace-words.cpp) |
| [0649.Dota2 Senate](.doc/0649.dota-2-senate.md) | Medium (47.53%) | greedy, queue | [cpp](.cpp/0649.dota-2-senate.cpp) |
| [0650.2 Keys Keyboard](.doc/0650.2-keys-keyboard.md) | Medium (54.06%) | dynamic-programming, math | [cpp](.cpp/0650.2-keys-keyboard.cpp) |
| 0651.4 Keys Keyboard 🔒 | Medium (56.09%) | dynamic-programming | [cpp](.cpp/0651.4-keys-keyboard.cpp) |
| [0652.Find Duplicate Subtrees](.doc/0652.find-duplicate-subtrees.md) | Medium (59.38%) | binary-tree, serialization | [cpp](.cpp/0652.find-duplicate-subtrees.cpp) |
| [0653.Two Sum IV - Input is a BST](.doc/0653.two-sum-iv-input-is-a-bst.md) | Easy (61.20%) | binary-search-tree, binary-tree, hash-table | [cpp](.cpp/0653.two-sum-iv-input-is-a-bst.cpp) |
| [0654.Maximum Binary Tree](.doc/0654.maximum-binary-tree.md) | Medium (85.32%) | binary-tree, array, monotonic-stack, divide-and-conquer | [cpp](.cpp/0654.maximum-binary-tree.cpp) |
| [0655.Print Binary Tree](.doc/0655.print-binary-tree.md) | Medium (63.42%) | binary-tree | [cpp](.cpp/0655.print-binary-tree.cpp) |
| 0656.Coin Path 🔒 | Hard (32.05%) | dynamic-programming | [cpp](.cpp/0656.coin-path.cpp) |
| [0657.Robot Return to Origin](.doc/0657.robot-return-to-origin.md) | Easy (75.68%) | easy | [cpp](.cpp/0657.robot-return-to-origin.cpp) |
| [0658.Find K Closest Elements](.doc/0658.find-k-closest-elements.md) | Medium (47.31%) | binary-search, two-pointers | [cpp](.cpp/0658.find-k-closest-elements.cpp) |
| [0659.Split Array into Consecutive Subsequences](.doc/0659.split-array-into-consecutive-subsequences.md) | Medium (51.03%) | hash-table, greedy | [cpp](.cpp/0659.split-array-into-consecutive-subsequences.cpp) |
| 0660.Remove 9 🔒 | Hard (57.42%) | math | [cpp](.cpp/0660.remove-9.cpp) |
| [0661.Image Smoother](.doc/0661.image-smoother.md) | Easy (67.23%) | matrix | [cpp](.cpp/0661.image-smoother.cpp) |
| [0662.Maximum Width of Binary Tree](.doc/0662.maximum-width-of-binary-tree.md) | Medium (42.95%) | binary-tree | [cpp](.cpp/0662.maximum-width-of-binary-tree.cpp) |
| 0663.Equal Tree Partition 🔒 | Medium (41.47%) | binary-tree, depth-first-search, hash-table | [cpp](.cpp/0663.equal-tree-partition.cpp) |
| [0664.Strange Printer](.doc/0664.strange-printer.md) | Hard (54.96%) | dynamic-programming, depth-first-search, memoization | [cpp](.cpp/0664.strange-printer.cpp) |
| [0665.Non-decreasing Array](.doc/0665.non-decreasing-array.md) | Medium (24.66%) | array | [cpp](.cpp/0665.non-decreasing-array.cpp) |
| 0666.Path Sum IV 🔒 | Medium (60.94%) | binary-tree, hash-table | [cpp](.cpp/0666.path-sum-iv.cpp) |
| [0667.Beautiful Arrangement II](.doc/0667.beautiful-arrangement-ii.md) | Medium (60.13%) | array, greedy, math, brainteaser | [cpp](.cpp/0667.beautiful-arrangement-ii.cpp) |
| [0668.Kth Smallest Number in Multiplication Table](.doc/0668.kth-smallest-number-in-multiplication-table.md) | Hard (51.62%) | matrix, binary-search | [cpp](.cpp/0668.kth-smallest-number-in-multiplication-table.cpp) |
| [0669.Trim a Binary Search Tree](.doc/0669.trim-a-binary-search-tree.md) | Medium (66.26%) | binary-search-tree, binary-tree, depth-first-search | [cpp](.cpp/0669.trim-a-binary-search-tree.cpp) |
| [0670.Maximum Swap](.doc/0670.maximum-swap.md) | Medium (48.58%) | math, greedy | [cpp](.cpp/0670.maximum-swap.cpp) |
| [0671.Second Minimum Node In a Binary Tree](.doc/0671.second-minimum-node-in-a-binary-tree.md) | Easy (44.50%) | binary-tree, depth-first-search | [cpp](.cpp/0671.second-minimum-node-in-a-binary-tree.cpp) |
| [0672.Bulb Switcher II](.doc/0672.bulb-switcher-ii.md) | Medium (50.07%) | math, bit-manipulation | [cpp](.cpp/0672.bulb-switcher-ii.cpp) |
| [0673.Number of Longest Increasing Subsequence](.doc/0673.number-of-longest-increasing-subsequence.md) | Medium (47.90%) | array, dynamic-programming | [cpp](.cpp/0673.number-of-longest-increasing-subsequence.cpp) |
| [0674.Longest Continuous Increasing Subsequence](.doc/0674.longest-continuous-increasing-subsequence.md) | Easy (50.17%) | array | [cpp](.cpp/0674.longest-continuous-increasing-subsequence.cpp) |
| [0675.Cut Off Trees for Golf Event](.doc/0675.cut-off-trees-for-golf-event.md) | Hard (34.30%) | sort, breadth-first-search, heap | [cpp](.cpp/0675.cut-off-trees-for-golf-event.cpp) |
| [0676.Implement Magic Dictionary](.doc/0676.implement-magic-dictionary.md) | Medium (57.33%) | hash-table, string, trie, design, depth-first-search | [cpp](.cpp/0676.implement-magic-dictionary.cpp) |
| [0677.Map Sum Pairs](.doc/0677.map-sum-pairs.md) | Medium (56.70%) | trie, hash-table, design, string, ordered-map | [cpp](.cpp/0677.map-sum-pairs.cpp) |
| [0678.Valid Parenthesis String](.doc/0678.valid-parenthesis-string.md) | Medium (37.87%) | string, dynamic-programming, greedy | [cpp](.cpp/0678.valid-parenthesis-string.cpp) |
| [0679.24 Game](.doc/0679.24-game.md) | Hard (49.32%) | depth-first-search, arithmetic | [cpp](.cpp/0679.24-game.cpp) |
| [0680.Valid Palindrome II](.doc/0680.valid-palindrome-ii.md) | Easy (40.56%) | string, palindrome, two-pointers | [cpp](.cpp/0680.valid-palindrome-ii.cpp) |
| 0681.Next Closest Time 🔒 | Medium (46.58%) | string | [cpp](.cpp/0681.next-closest-time.cpp) |
| [0682.Baseball Game](.doc/0682.baseball-game.md) | Easy (76.06%) | stack | [cpp](.cpp/0682.baseball-game.cpp) |
| 0683.K Empty Slots 🔒 | Hard (37.04%) | ordered-set | [cpp](.cpp/0683.k-empty-slots.cpp) |
| [0684.Redundant Connection](.doc/0684.redundant-connection.md) | Medium (62.78%) | graph, tree, union-find, breadth-first-search, depth-first-search | [cpp](.cpp/0684.redundant-connection.cpp) |
| [0685.Redundant Connection II](.doc/0685.redundant-connection-ii.md) | Hard (34.38%) | graph, union-find, tree, hard | [cpp](.cpp/0685.redundant-connection-ii.cpp) |
| [0686.Repeated String Match](.doc/0686.repeated-string-match.md) | Medium (34.95%) | string | [cpp](.cpp/0686.repeated-string-match.cpp) |
| [0687.Longest Univalue Path](.doc/0687.longest-univalue-path.md) | Medium (41.41%) | binary-tree, recursion | [cpp](.cpp/0687.longest-univalue-path.cpp) |
| [0688.Knight Probability in Chessboard](.doc/0688.knight-probability-in-chessboard.md) | Medium (56.15%) | dynamic-programming, depth-first-search, memoization | [cpp](.cpp/0688.knight-probability-in-chessboard.cpp) |
| [0689.Maximum Sum of 3 Non-Overlapping Subarrays](.doc/0689.maximum-sum-of-3-non-overlapping-subarrays.md) | Hard (49.84%) | prefix-sum, dyanmic-programming | [cpp](.cpp/0689.maximum-sum-of-3-non-overlapping-subarrays.cpp) |
| [0690.Employee Importance](.doc/0690.employee-importance.md) | Medium (66.72%) | hash-table, depth-first-search, breadth-first-search, graph | [cpp](.cpp/0690.employee-importance.cpp) |
| [0691.Stickers to Spell Word](.doc/0691.stickers-to-spell-word.md) | Hard (48.29%) | dynamic-programming, string, bit-manipulation | [cpp](.cpp/0691.stickers-to-spell-word.cpp) |
| [0692.Top K Frequent Words](.doc/0692.top-k-frequent-words.md) | Medium (57.93%) | hash-table, heap, ordered-set, sort, bucket-sort | [cpp](.cpp/0692.top-k-frequent-words.cpp) |
| [0693.Binary Number with Alternating Bits](.doc/0693.binary-number-with-alternating-bits.md) | Easy (62.34%) | bit-manipulation | [cpp](.cpp/0693.binary-number-with-alternating-bits.cpp) |
| 0694.Number of Distinct Islands 🔒 | Medium (61.19%) | depth-first-search, hash-table | [cpp](.cpp/0694.number-of-distinct-islands.cpp) |
| [0695.Max Area of Island](.doc/0695.max-area-of-island.md) | Medium (71.93%) | matrix, depth-first-search | [cpp](.cpp/0695.max-area-of-island.cpp) |
| [0696.Count Binary Substrings](.doc/0696.count-binary-substrings.md) | Easy (65.54%) | string, dynamic-programming | [cpp](.cpp/0696.count-binary-substrings.cpp) |
| [0697.Degree of an Array](.doc/0697.degree-of-an-array.md) | Easy (56.53%) | array, hash-table | [cpp](.cpp/0697.degree-of-an-array.cpp) |
| [0698.Partition to K Equal Sum Subsets](.doc/0698.partition-to-k-equal-sum-subsets.md) | Medium (38.45%) | depth-first-search, backtracking, sort | [cpp](.cpp/0698.partition-to-k-equal-sum-subsets.cpp) |
| [0699.Falling Squares](.doc/0699.falling-squares.md) | Hard (44.88%) | segment-tree, interval, ordered-map, hard | [cpp](.cpp/0699.falling-squares.cpp) |
| [0700.Search in a Binary Search Tree](.doc/0700.search-in-a-binary-search-tree.md) | Easy (79.55%) | binary-search-tree, binary-tree, recursion | [cpp](.cpp/0700.search-in-a-binary-search-tree.cpp) |
| [0701.Insert into a Binary Search Tree](.doc/0701.insert-into-a-binary-search-tree.md) | Medium (73.77%) | binary-search-tree, binary-tree, recursion | [cpp](.cpp/0701.insert-into-a-binary-search-tree.cpp) |
| 0702.Search in a Sorted Array of Unknown Size 🔒 | Medium (72.07%) | binary-search, array | [cpp](.cpp/0702.search-in-a-sorted-array-of-unknown-size.cpp) |
| [0703.Kth Largest Element in a Stream](.doc/0703.kth-largest-element-in-a-stream.md) | Easy (56.75%) | heap, design | [cpp](.cpp/0703.kth-largest-element-in-a-stream.cpp) |
| [0704.Binary Search](.doc/0704.binary-search.md) | Easy (57.39%) | binary-search | [cpp](.cpp/0704.binary-search.cpp) |
| [0705.Design HashSet](.doc/0705.design-hash-set.md) | Easy (66.91%) | design, hash-table, array, linked-list, bit-manipulation | [cpp](.cpp/0705.design-hash-set.cpp) |
| [0706.Design HashMap](.doc/0706.design-hash-map.md) | Easy (65.66%) | design, hash-table, array, linked-list | [cpp](.cpp/0706.design-hash-map.cpp) |
| [0707.Design Linked List](.doc/0707.design-linked-list.md) | Medium (28.15%) | design, linked-list | [cpp](.cpp/0707.design-linked-list.cpp) |
| 0708.Insert into a Sorted Circular Linked List 🔒 | Medium (35.96%) | linked-list | [cpp](.cpp/0708.insert-into-a-sorted-circular-linked-list.cpp) |
| [0709.To Lower Case](.doc/0709.to-lower-case.md) | Easy (83.27%) | string, easy | [cpp](.cpp/0709.to-lower-case.cpp) |
| [0710.Random Pick with Blacklist](.doc/0710.random-pick-with-blacklist.md) | Hard (33.42%) | array, hash-table, random | [cpp](.cpp/0710.random-pick-with-blacklist.cpp) |
| 0711.Number of Distinct Islands II 🔒 | Hard (52.92%) | sort, hash-table, depth-first-search, geometry | [cpp](.cpp/0711.number-of-distinct-islands-ii.cpp) |
| [0712.Minimum ASCII Delete Sum for Two Strings](.doc/0712.minimum-ascii-delete-sum-for-two-strings.md) | Medium (65.05%) | dynamic-programming, string | [cpp](.cpp/0712.minimum-ascii-delete-sum-for-two-strings.cpp) |
| [0713.Subarray Product Less Than K](.doc/0713.subarray-product-less-than-k.md) | Medium (51.27%) | array, sliding-window | [cpp](.cpp/0713.subarray-product-less-than-k.cpp) |
| [0714.Best Time to Buy and Sell Stock with Transaction Fee](.doc/0714.best-time-to-buy-and-sell-stock-with-transaction-fee.md) | Medium (68.44%) | array, dynamic-programming, depth-first-search, memoization | [cpp](.cpp/0714.best-time-to-buy-and-sell-stock-with-transaction-fee.cpp) |
| [0715.Range Module](.doc/0715.range-module.md) | Hard (44.17%) | segment-tree, ordered-map, interval, hard, design | [cpp](.cpp/0715.range-module.cpp) |
| 0716.Max Stack 🔒 | Hard (45.03%) | design, stack, linked-list, ordered-map | [cpp](.cpp/0716.max-stack.cpp) |
| [0717.1-bit and 2-bit Characters](.doc/0717.1-bit-and-2-bit-characters.md) | Easy (45.26%) | array, dynamic-programming | [cpp](.cpp/0717.1-bit-and-2-bit-characters.cpp) |
| [0718.Maximum Length of Repeated Subarray](.doc/0718.maximum-length-of-repeated-subarray.md) | Medium (50.96%) | array, dynamic-programming | [cpp](.cpp/0718.maximum-length-of-repeated-subarray.cpp) |
| [0719.Find K-th Smallest Pair Distance](.doc/0719.find-k-th-smallest-pair-distance.md) | Hard (37.83%) | sort, binary-search, two-pointers, sliding-window | [cpp](.cpp/0719.find-k-th-smallest-pair-distance.cpp) |
| [0720.Longest Word in Dictionary](.doc/0720.longest-word-in-dictionary.md) | Medium (52.34%) | string, trie, hash-table, sort, greedy, depth-first-search, breadth-first-search | [cpp](.cpp/0720.longest-word-in-dictionary.cpp) |
| [0721.Accounts Merge](.doc/0721.accounts-merge.md) | Medium (57.05%) | breadth-first-search, union-find | [cpp](.cpp/0721.accounts-merge.cpp) |
| [0722.Remove Comments](.doc/0722.remove-comments.md) | Medium (38.54%) | string | [cpp](.cpp/0722.remove-comments.cpp) |
| 0723.Candy Crush 🔒 | Medium (76.89%) | matrix, design, two-pointers | [cpp](.cpp/0723.candy-crush.cpp) |
| [0724.Find Pivot Index](.doc/0724.find-pivot-index.md) | Easy (57.37%) | prefix-sum, math, array | [cpp](.cpp/0724.find-pivot-index.cpp) |
| [0725.Split Linked List in Parts](.doc/0725.split-linked-list-in-parts.md) | Medium (64.00%) | linked-list | [cpp](.cpp/0725.split-linked-list-in-parts.cpp) |
| [0726.Number of Atoms](.doc/0726.number-of-atoms.md) | Hard (52.76%) | hash-table, stack | [cpp](.cpp/0726.number-of-atoms.cpp) |
| 0727.Minimum Window Subsequence 🔒 | Hard (43.38%) | string, dynamic-programming | [cpp](.cpp/0727.minimum-window-subsequence.cpp) |
| [0728.Self Dividing Numbers](.doc/0728.self-dividing-numbers.md) | Easy (78.48%) | math, easy | [cpp](.cpp/0728.self-dividing-numbers.cpp) |
| [0729.My Calendar I](.doc/0729.my-calendar-i.md) | Medium (56.55%) | array, interval, ordered-map, binary-search | [cpp](.cpp/0729.my-calendar-i.cpp) |
| [0730.Count Different Palindromic Subsequences](.doc/0730.count-different-palindromic-subsequences.md) | Hard (45.30%) | string, dynamic-programming, palindrome, hard | [cpp](.cpp/0730.count-different-palindromic-subsequences.cpp) |
| [0731.My Calendar II](.doc/0731.my-calendar-ii.md) | Medium (55.35%) | interval, ordered-map, difference-array, segment-tree | [cpp](.cpp/0731.my-calendar-ii.cpp) |
| [0732.My Calendar III](.doc/0732.my-calendar-iii.md) | Hard (71.57%) | interval, ordered-map, difference-array, segment-tree | [cpp](.cpp/0732.my-calendar-iii.cpp) |
| [0733.Flood Fill](.doc/0733.flood-fill.md) | Easy (63.78%) | matrix, depth-first-search | [cpp](.cpp/0733.flood-fill.cpp) |
| 0734.Sentence Similarity 🔒 | Easy (44.26%) | array, hash-table, string | [cpp](.cpp/0734.sentence-similarity.cpp) |
| [0735.Asteroid Collision](.doc/0735.asteroid-collision.md) | Medium (44.53%) | stack | [cpp](.cpp/0735.asteroid-collision.cpp) |
| [0736.Parse Lisp Expression](.doc/0736.parse-lisp-expression.md) | Hard (51.70%) | string, hash-table, recursion, stack | [cpp](.cpp/0736.parse-lisp-expression.cpp) |
| 0737.Sentence Similarity II 🔒 | Medium (49.87%) | union-find, string, graph | [cpp](.cpp/0737.sentence-similarity-ii.cpp) |
| [0738.Monotone Increasing Digits](.doc/0738.monotone-increasing-digits.md) | Medium (47.94%) | greedy, string | [cpp](.cpp/0738.monotone-increasing-digits.cpp) |
| [0739.Daily Temperatures](.doc/0739.daily-temperatures.md) | Medium (65.98%) | array, stack, monotonic-stack | [cpp](.cpp/0739.daily-temperatures.cpp) |
| [0740.Delete and Earn](.doc/0740.delete-and-earn.md) | Medium (56.49%) | dynamic-programming | [cpp](.cpp/0740.delete-and-earn.cpp) |
| [0741.Cherry Pickup](.doc/0741.cherry-pickup.md) | Hard (36.72%) | dynamic-programming, matrix, hard | [cpp](.cpp/0741.cherry-pickup.cpp) |
| 0742.Closest Leaf in a Binary Tree 🔒 | Medium (46.17%) | graph, binary-tree, breadth-first-search, depth-first-search | [cpp](.cpp/0742.closest-leaf-in-a-binary-tree.cpp) |
| [0743.Network Delay Time](.doc/0743.network-delay-time.md) | Medium (53.61%) | graph, dijkstra, heap, shortest-path | [cpp](.cpp/0743.network-delay-time.cpp) |
| [0744.Find Smallest Letter Greater Than Target](.doc/0744.find-smallest-letter-greater-than-target.md) | Easy (51.95%) | binary-search | [cpp](.cpp/0744.find-smallest-letter-greater-than-target.cpp) |
| [0745.Prefix and Suffix Search](.doc/0745.prefix-and-suffix-search.md) | Hard (41.03%) | hash-table, string | [cpp](.cpp/0745.prefix-and-suffix-search.cpp) |
| [0746.Min Cost Climbing Stairs](.doc/0746.min-cost-climbing-stairs.md) | Easy (65.57%) | dynamic-programming, memoization, depth-first-search | [cpp](.cpp/0746.min-cost-climbing-stairs.cpp) |
| [0747.Largest Number At Least Twice of Others](.doc/0747.largest-number-at-least-twice-of-others.md) | Easy (48.74%) | array | [cpp](.cpp/0747.largest-number-at-least-twice-of-others.cpp) |
| [0748.Shortest Completing Word](.doc/0748.shortest-completing-word.md) | Easy (59.85%) | hash-table, string | [cpp](.cpp/0748.shortest-completing-word.cpp) |
| [0749.Contain Virus](.doc/0749.contain-virus.md) | Hard (50.84%) | breadth-first-search, hash-table, greedy, hard | [cpp](.cpp/0749.contain-virus.cpp) |
| 0750.Number Of Corner Rectangles 🔒 | Medium (67.69%) | hash-table, matrix | [cpp](.cpp/0750.number-of-corner-rectangles.cpp) |
| 0751.IP to CIDR 🔒 | Medium (55.06%) | bit-manipulation, greedy | [cpp](.cpp/0751.ip-to-cidr.cpp) |
| [0752.Open the Lock](.doc/0752.open-the-lock.md) | Medium (56.02%) | breadth-first-search, hash-table | [cpp](.cpp/0752.open-the-lock.cpp) |
| [0753.Cracking the Safe](.doc/0753.cracking-the-safe.md) | Hard (56.75%) | hash-table, graph, greedy | [cpp](.cpp/0753.cracking-the-safe.cpp) |
| [0754.Reach a Number](.doc/0754.reach-a-number.md) | Medium (42.99%) | math | [cpp](.cpp/0754.reach-a-number.cpp) |
| 0755.Pour Water 🔒 | Medium (46.79%) | array | [cpp](.cpp/0755.pour-water.cpp) |
| [0756.Pyramid Transition Matrix](.doc/0756.pyramid-transition-matrix.md) | Medium (52.65%) | depth-first-search, memoization | [cpp](.cpp/0756.pyramid-transition-matrix.cpp) |
| [0757.Set Intersection Size At Least Two](.doc/0757.set-intersection-size-at-least-two.md) | Hard (44.35%) | sort, greedy, array, interval | [cpp](.cpp/0757.set-intersection-size-at-least-two.cpp) |
| 0758.Bold Words in String 🔒 | Medium (51.40%) | string, trie | [cpp](.cpp/0758.bold-words-in-string.cpp) |
| 0759.Employee Free Time 🔒 | Hard (72.07%) | sort, array, interval | [cpp](.cpp/0759.employee-free-time.cpp) |
| 0760.Find Anagram Mappings 🔒 | Easy (83.61%) | array | [cpp](.cpp/0760.find-anagram-mappings.cpp) |
| [0761.Special Binary String](.doc/0761.special-binary-string.md) | Hard (61.02%) | sort, recursion | [cpp](.cpp/0761.special-binary-string.cpp) |
| [0762.Prime Number of Set Bits in Binary Representation](.doc/0762.prime-number-of-set-bits-in-binary-representation.md) | Easy (69.32%) | bit-manipulation | [cpp](.cpp/0762.prime-number-of-set-bits-in-binary-representation.cpp) |
| [0763.Partition Labels](.doc/0763.partition-labels.md) | Medium (79.82%) | string, greedy, string | [cpp](.cpp/0763.partition-labels.cpp) |
| [0764.Largest Plus Sign](.doc/0764.largest-plus-sign.md) | Medium (48.17%) | matrix | [cpp](.cpp/0764.largest-plus-sign.cpp) |
| [0765.Couples Holding Hands](.doc/0765.couples-holding-hands.md) | Hard (57.17%) | union-find, greedy, graph | [cpp](.cpp/0765.couples-holding-hands.cpp) |
| [0766.Toeplitz Matrix](.doc/0766.toeplitz-matrix.md) | Easy (68.92%) | matrix | [cpp](.cpp/0766.toeplitz-matrix.cpp) |
| [0767.Reorganize String](.doc/0767.reorganize-string.md) | Medium (54.53%) | greedy, hash-table | [cpp](.cpp/0767.reorganize-string.cpp) |
| [0768.Max Chunks To Make Sorted II](.doc/0768.max-chunks-to-make-sorted-ii.md) | Hard (53.18%) | sort, monotonic-stack, stack, array | [cpp](.cpp/0768.max-chunks-to-make-sorted-ii.cpp) |
| [0769.Max Chunks To Make Sorted](.doc/0769.max-chunks-to-make-sorted.md) | Medium (58.36%) | greedy, array | [cpp](.cpp/0769.max-chunks-to-make-sorted.cpp) |
| [0770.Basic Calculator IV](.doc/0770.basic-calculator-iv.md) | Hard (55.31%) | string, basic-calculator, stack, math, arithmetic | [cpp](.cpp/0770.basic-calculator-iv.cpp) |
| [0771.Jewels and Stones](.doc/0771.jewels-and-stones.md) | Easy (88.53%) | hash-table | [cpp](.cpp/0771.jewels-and-stones.cpp) |
| 0772.Basic Calculator III 🔒 | Hard (50.49%) | string, basic-calculator, stack, math, arithmetic | [cpp](.cpp/0772.basic-calculator-iii.cpp) |
| [0773.Sliding Puzzle](.doc/0773.sliding-puzzle.md) | Hard (64.68%) | breadth-first-search, hash-table | [cpp](.cpp/0773.sliding-puzzle.cpp) |
| 0774.Minimize Max Distance to Gas Station 🔒 | Hard (52.22%) | binary-search | [cpp](.cpp/0774.minimize-max-distance-to-gas-station.cpp) |
| [0775.Global and Local Inversions](.doc/0775.global-and-local-inversions.md) | Medium (42.46%) | array, sort, math | [cpp](.cpp/0775.global-and-local-inversions.cpp) |
| 0776.Split BST 🔒 | Medium (82.80%) | binary-search-tree, binary-tree | [cpp](.cpp/0776.split-bst.cpp) |
| [0777.Swap Adjacent in LR String](.doc/0777.swap-adjacent-in-lr-string.md) | Medium (36.80%) | string, two-pointers | [cpp](.cpp/0777.swap-adjacent-in-lr-string.cpp) |
| [0778.Swim in Rising Water](.doc/0778.swim-in-rising-water.md) | Hard (60.64%) | matrix, heap, breadth-first search | [cpp](.cpp/0778.swim-in-rising-water.cpp) |
| [0779.K-th Symbol in Grammar](.doc/0779.k-th-symbol-in-grammar.md) | Medium (46.44%) | array, binary-tree, recursion | [cpp](.cpp/0779.k-th-symbol-in-grammar.cpp) |
| [0780.Reaching Points](.doc/0780.reaching-points.md) | Hard (33.14%) | array, math | [cpp](.cpp/0780.reaching-points.cpp) |
| [0781.Rabbits in Forest](.doc/0781.rabbits-in-forest.md) | Medium (53.39%) | hash-table, array | [cpp](.cpp/0781.rabbits-in-forest.cpp) |
| [0782.Transform to Chessboard](.doc/0782.transform-to-chessboard.md) | Hard (50.90%) | hard, matrix | [cpp](.cpp/0782.transform-to-chessboard.cpp) |
| [0783.Minimum Distance Between BST Nodes](.doc/0783.minimum-distance-between-bst-nodes.md) | Easy (59.53%) | binary-search-tree, binary-tree | [cpp](.cpp/0783.minimum-distance-between-bst-nodes.cpp) |
| [0784.Letter Case Permutation](.doc/0784.letter-case-permutation.md) | Medium (74.14%) | permutation, bit-manipulation, backtracking | [cpp](.cpp/0784.letter-case-permutation.cpp) |
| [0785.Is Graph Bipartite?](.doc/0785.is-graph-bipartite.md) | Medium (55.55%) | graph, breadth-first-search, depth-first-search, union-find | [cpp](.cpp/0785.is-graph-bipartite.cpp) |
| [0786.K-th Smallest Prime Fraction](.doc/0786.k-th-smallest-prime-fraction.md) | Medium (53.76%) | binary-search, heap, two-pointers, array | [cpp](.cpp/0786.k-th-smallest-prime-fraction.cpp) |
| [0787.Cheapest Flights Within K Stops](.doc/0787.cheapest-flights-within-k-stops.md) | Medium (39.27%) | graph, bellman-ford, memoization, depth-first-search, shortest-path | [cpp](.cpp/0787.cheapest-flights-within-k-stops.cpp) |
| [0788.Rotated Digits](.doc/0788.rotated-digits.md) | Medium (56.41%) | math, dynamic-programming | [cpp](.cpp/0788.rotated-digits.cpp) |
| [0789.Escape The Ghosts](.doc/0789.escape-the-ghosts.md) | Medium (61.68%) | geometry, math | [cpp](.cpp/0789.escape-the-ghosts.cpp) |
| [0790.Domino and Tromino Tiling](.doc/0790.domino-and-tromino-tiling.md) | Medium (50.71%) | array, dynamic-programming | [cpp](.cpp/0790.domino-and-tromino-tiling.cpp) |
| [0791.Custom Sort String](.doc/0791.custom-sort-string.md) | Medium (70.59%) | string, hash-table, sort | [cpp](.cpp/0791.custom-sort-string.cpp) |
| [0792.Number of Matching Subsequences](.doc/0792.number-of-matching-subsequences.md) | Medium (51.08%) | binary-search, hash-table, string | [cpp](.cpp/0792.number-of-matching-subsequences.cpp) |
| [0793.Preimage Size of Factorial Zeroes Function](.doc/0793.preimage-size-of-factorial-zeroes-function.md) | Hard (44.17%) | math, binary-search | [cpp](.cpp/0793.preimage-size-of-factorial-zeroes-function.cpp) |
| [0794.Valid Tic-Tac-Toe State](.doc/0794.valid-tic-tac-toe-state.md) | Medium (34.76%) | array | [cpp](.cpp/0794.valid-tic-tac-toe-state.cpp) |
| [0795.Number of Subarrays with Bounded Maximum](.doc/0795.number-of-subarrays-with-bounded-maximum.md) | Medium (53.12%) | array, sliding-window, math | [cpp](.cpp/0795.number-of-subarrays-with-bounded-maximum.cpp) |
| [0796.Rotate String](.doc/0796.rotate-string.md) | Easy (57.94%) | string, kmp | [cpp](.cpp/0796.rotate-string.cpp) |
| [0797.All Paths From Source to Target](.doc/0797.all-paths-from-source-to-target.md) | Medium (82.41%) | graph, breadth-first-search, depth-first-search | [cpp](.cpp/0797.all-paths-from-source-to-target.cpp) |
| [0798.Smallest Rotation with Highest Score](.doc/0798.smallest-rotation-with-highest-score.md) | Hard (51.08%) | difference-array, array, math, hard | [cpp](.cpp/0798.smallest-rotation-with-highest-score.cpp) |
| [0799.Champagne Tower](.doc/0799.champagne-tower.md) | Medium (58.10%) | array | [cpp](.cpp/0799.champagne-tower.cpp) |
| 0800.Similar RGB Color 🔒 | Easy (67.36%) | string | [cpp](.cpp/0800.similar-rgb-color.cpp) |
| [0801.Minimum Swaps To Make Sequences Increasing](.doc/0801.minimum-swaps-to-make-sequences-increasing.md) | Hard (39.86%) | dynamic-programming, array | [cpp](.cpp/0801.minimum-swaps-to-make-sequences-increasing.cpp) |
| [0802.Find Eventual Safe States](.doc/0802.find-eventual-safe-states.md) | Medium (62.35%) | depth-first-search, graph, topological-sort | [cpp](.cpp/0802.find-eventual-safe-states.cpp) |
| [0803.Bricks Falling When Hit](.doc/0803.bricks-falling-when-hit.md) | Hard (34.69%) | depth-first-search, union-find, matrix, hash-table, hard | [cpp](.cpp/0803.bricks-falling-when-hit.cpp) |
| [0804.Unique Morse Code Words](.doc/0804.unique-morse-code-words.md) | Easy (82.81%) | string, hash-table, easy | [cpp](.cpp/0804.unique-morse-code-words.cpp) |
| [0805.Split Array With Same Average](.doc/0805.split-array-with-same-average.md) | Hard (25.38%) | math, bit-manipulation, hard | [cpp](.cpp/0805.split-array-with-same-average.cpp) |
| [0806.Number of Lines To Write String](.doc/0806.number-of-lines-to-write-string.md) | Easy (68.15%) | string, easy | [cpp](.cpp/0806.number-of-lines-to-write-string.cpp) |
| [0807.Max Increase to Keep City Skyline](.doc/0807.max-increase-to-keep-city-skyline.md) | Medium (86.08%) | geometry | [cpp](.cpp/0807.max-increase-to-keep-city-skyline.cpp) |
| [0808.Soup Servings](.doc/0808.soup-servings.md) | Medium (54.05%) | dynamic-programming, depth-first-search, memoization | [cpp](.cpp/0808.soup-servings.cpp) |
| [0809.Expressive Words](.doc/0809.expressive-words.md) | Medium (46.10%) | two-pointers, string | [cpp](.cpp/0809.expressive-words.cpp) |
| [0810.Chalkboard XOR Game](.doc/0810.chalkboard-xor-game.md) | Hard (59.13%) | math, game-theory | [cpp](.cpp/0810.chalkboard-xor-game.cpp) |
| [0811.Subdomain Visit Count](.doc/0811.subdomain-visit-count.md) | Medium (76.13%) | hash-table, string | [cpp](.cpp/0811.subdomain-visit-count.cpp) |
| [0812.Largest Triangle Area](.doc/0812.largest-triangle-area.md) | Easy (60.43%) | math, geometry | [cpp](.cpp/0812.largest-triangle-area.cpp) |
| [0813.Largest Sum of Averages](.doc/0813.largest-sum-of-averages.md) | Medium (53.43%) | dynamic-programming, recursion, memoization, array | [cpp](.cpp/0813.largest-sum-of-averages.cpp) |
| [0814.Binary Tree Pruning](.doc/0814.binary-tree-pruning.md) | Medium (72.17%) | binary-tree, depth-first-search | [cpp](.cpp/0814.binary-tree-pruning.cpp) |
| [0815.Bus Routes](.doc/0815.bus-routes.md) | Hard (47.97%) | breadth-first-search | [cpp](.cpp/0815.bus-routes.cpp) |
| [0816.Ambiguous Coordinates](.doc/0816.ambiguous-coordinates.md) | Medium (56.68%) | string | [cpp](.cpp/0816.ambiguous-coordinates.cpp) |
| [0817.Linked List Components](.doc/0817.linked-list-components.md) | Medium (56.84%) | hash-table, linked-list | [cpp](.cpp/0817.linked-list-components.cpp) |
| [0818.Race Car](.doc/0818.race-car.md) | Hard (43.60%) | math, bit-manipulation, breadth-first-search, dynamic-programming, hash-table | [cpp](.cpp/0818.race-car.cpp) |
| [0819.Most Common Word](.doc/0819.most-common-word.md) | Easy (44.35%) | hash-table, string | [cpp](.cpp/0819.most-common-word.cpp) |
| [0820.Short Encoding of Words](.doc/0820.short-encoding-of-words.md) | Medium (60.44%) | hash-table, string, sort | [cpp](.cpp/0820.short-encoding-of-words.cpp) |
| [0821.Shortest Distance to a Character](.doc/0821.shortest-distance-to-a-character.md) | Easy (71.51%) | array | [cpp](.cpp/0821.shortest-distance-to-a-character.cpp) |
| [0822.Card Flipping Game](.doc/0822.card-flipping-game.md) | Medium (47.19%) | hash-table, array | [cpp](.cpp/0822.card-flipping-game.cpp) |
| [0823.Binary Trees With Factors](.doc/0823.binary-trees-with-factors.md) | Medium (52.92%) | math, dynamic-programming, binary-tree | [cpp](.cpp/0823.binary-trees-with-factors.cpp) |
| [0824.Goat Latin](.doc/0824.goat-latin.md) | Easy (68.12%) | string | [cpp](.cpp/0824.goat-latin.cpp) |
| [0825.Friends Of Appropriate Ages](.doc/0825.friends-of-appropriate-ages.md) | Medium (47.35%) | array, prefix-sum | [cpp](.cpp/0825.friends-of-appropriate-ages.cpp) |
| [0826.Most Profit Assigning Work](.doc/0826.most-profit-assigning-work.md) | Medium (46.23%) | dynamic-programming, greedy | [cpp](.cpp/0826.most-profit-assigning-work.cpp) |
| [0827.Making A Large Island](.doc/0827.making-a-large-island.md) | Hard (47.01%) | matrix, union-find | [cpp](.cpp/0827.making-a-large-island.cpp) |
| [0828.Count Unique Characters of All Substrings of a Given String](.doc/0828.count-unique-characters-of-all-substrings-of-a-given-string.md) | Hard (52.28%) | hash-table, math, string | [cpp](.cpp/0828.count-unique-characters-of-all-substrings-of-a-given-string.cpp) |
| [0829.Consecutive Numbers Sum](.doc/0829.consecutive-numbers-sum.md) | Hard (41.81%) | array, math | [cpp](.cpp/0829.consecutive-numbers-sum.cpp) |
| [0830.Positions of Large Groups](.doc/0830.positions-of-large-groups.md) | Easy (52.19%) | string, two-pointers | [cpp](.cpp/0830.positions-of-large-groups.cpp) |
| [0831.Masking Personal Information](.doc/0831.masking-personal-information.md) | Medium (48.53%) | string | [cpp](.cpp/0831.masking-personal-information.cpp) |
| [0832.Flipping an Image](.doc/0832.flipping-an-image.md) | Easy (81.79%) | matrix, bit-manipulation | [cpp](.cpp/0832.flipping-an-image.cpp) |
| [0833.Find And Replace in String](.doc/0833.find-and-replace-in-string.md) | Medium (52.77%) | string, hash-table | [cpp](.cpp/0833.find-and-replace-in-string.cpp) |
| [0834.Sum of Distances in Tree](.doc/0834.sum-of-distances-in-tree.md) | Hard (59.30%) | graph, tree, depth-first-search | [cpp](.cpp/0834.sum-of-distances-in-tree.cpp) |
| [0835.Image Overlap](.doc/0835.image-overlap.md) | Medium (63.65%) | matrix, hash-table | [cpp](.cpp/0835.image-overlap.cpp) |
| [0836.Rectangle Overlap](.doc/0836.rectangle-overlap.md) | Easy (44.70%) | geometry, math | [cpp](.cpp/0836.rectangle-overlap.cpp) |
| [0837.New 21 Game](.doc/0837.new-21-game.md) | Medium (45.01%) | math, depth-first-search, memoization, hard | [cpp](.cpp/0837.new-21-game.cpp) |
| [0838.Push Dominoes](.doc/0838.push-dominoes.md) | Medium (57.10%) | array | [cpp](.cpp/0838.push-dominoes.cpp) |
| [0839.Similar String Groups](.doc/0839.similar-string-groups.md) | Hard (54.81%) | string, union-find | [cpp](.cpp/0839.similar-string-groups.cpp) |
| [0840.Magic Squares In Grid](.doc/0840.magic-squares-in-grid.md) | Medium (38.93%) | matrix | [cpp](.cpp/0840.magic-squares-in-grid.cpp) |
| [0841.Keys and Rooms](.doc/0841.keys-and-rooms.md) | Medium (72.86%) | graph, depth-first-search, breadth-first-search | [cpp](.cpp/0841.keys-and-rooms.cpp) |
| [0842.Split Array into Fibonacci Sequence](.doc/0842.split-array-into-fibonacci-sequence.md) | Medium (39.02%) | backtracking, string | [cpp](.cpp/0842.split-array-into-fibonacci-sequence.cpp) |
| [0843.Guess the Word](.doc/0843.guess-the-word.md) | Hard (39.45%) | game | [cpp](.cpp/0843.guess-the-word.cpp) |
| [0844.Backspace String Compare](.doc/0844.backspace-string-compare.md) | Easy (49.13%) | stack, string, two-pointers | [cpp](.cpp/0844.backspace-string-compare.cpp) |
| [0845.Longest Mountain in Array](.doc/0845.longest-mountain-in-array.md) | Medium (40.28%) | array | [cpp](.cpp/0845.longest-mountain-in-array.cpp) |
| [0846.Hand of Straights](.doc/0846.hand-of-straights.md) | Medium (55.82%) | ordered-map, array | [cpp](.cpp/0846.hand-of-straights.cpp) |
| [0847.Shortest Path Visiting All Nodes](.doc/0847.shortest-path-visiting-all-nodes.md) | Hard (65.54%) | bit-manipulation, breadth-first-search, heap, hash-table | [cpp](.cpp/0847.shortest-path-visiting-all-nodes.cpp) |
| [0848.Shifting Letters](.doc/0848.shifting-letters.md) | Medium (44.77%) | prefix-sum | [cpp](.cpp/0848.shifting-letters.cpp) |
| [0849.Maximize Distance to Closest Person](.doc/0849.maximize-distance-to-closest-person.md) | Medium (48.05%) | array | [cpp](.cpp/0849.maximize-distance-to-closest-person.cpp) |
| [0850.Rectangle Area II](.doc/0850.rectangle-area-ii.md) | Hard (54.12%) | line-sweep, segment-tree, hard | [cpp](.cpp/0850.rectangle-area-ii.cpp) |
| [0851.Loud and Rich](.doc/0851.loud-and-rich.md) | Medium (59.19%) | graph, depth-first-search | [cpp](.cpp/0851.loud-and-rich.cpp) |
| [0852.Peak Index in a Mountain Array](.doc/0852.peak-index-in-a-mountain-array.md) | Medium (68.45%) | array, binary-search | [cpp](.cpp/0852.peak-index-in-a-mountain-array.cpp) |
| [0853.Car Fleet](.doc/0853.car-fleet.md) | Medium (50.88%) | sort, greedy, ordered-map, heap | [cpp](.cpp/0853.car-fleet.cpp) |
| [0854.K-Similar Strings](.doc/0854.k-similar-strings.md) | Hard (39.78%) | breadth-first-search, string | [cpp](.cpp/0854.k-similar-strings.cpp) |
| [0855.Exam Room](.doc/0855.exam-room.md) | Medium (43.28%) | ordered-set, unordered-map, sort, interval, design | [cpp](.cpp/0855.exam-room.cpp) |
| [0856.Score of Parentheses](.doc/0856.score-of-parentheses.md) | Medium (64.21%) | stack, string, parentheses | [cpp](.cpp/0856.score-of-parentheses.cpp) |
| [0857.Minimum Cost to Hire K Workers](.doc/0857.minimum-cost-to-hire-k-workers.md) | Hard (52.89%) | array, heap, greedy | [cpp](.cpp/0857.minimum-cost-to-hire-k-workers.cpp) |
| [0858.Mirror Reflection](.doc/0858.mirror-reflection.md) | Medium (62.68%) | math, greatest-common-divisor | [cpp](.cpp/0858.mirror-reflection.cpp) |
| [0859.Buddy Strings](.doc/0859.buddy-strings.md) | Easy (33.07%) | string | [cpp](.cpp/0859.buddy-strings.cpp) |
| [0860.Lemonade Change](.doc/0860.lemonade-change.md) | Easy (53.21%) | greedy | [cpp](.cpp/0860.lemonade-change.cpp) |
| [0861.Score After Flipping Matrix](.doc/0861.score-after-flipping-matrix.md) | Medium (74.92%) | greedy | [cpp](.cpp/0861.score-after-flipping-matrix.cpp) |
| [0862.Shortest Subarray with Sum at Least K](.doc/0862.shortest-subarray-with-sum-at-least-k.md) | Hard (26.00%) | array, prefix-sum, monotonic-queue, hard | [cpp](.cpp/0862.shortest-subarray-with-sum-at-least-k.cpp) |
| [0863.All Nodes Distance K in Binary Tree](.doc/0863.all-nodes-distance-k-in-binary-tree.md) | Medium (64.36%) | binary-tree, depth-first-search, breadth-first-search, hash-table | [cpp](.cpp/0863.all-nodes-distance-k-in-binary-tree.cpp) |
| [0864.Shortest Path to Get All Keys](.doc/0864.shortest-path-to-get-all-keys.md) | Hard (53.77%) | bit-manipulation, breadth-first-search | [cpp](.cpp/0864.shortest-path-to-get-all-keys.cpp) |
| [0865.Smallest Subtree with all the Deepest Nodes](.doc/0865.smallest-subtree-with-all-the-deepest-nodes.md) | Medium (70.47%) | binary-tree | [cpp](.cpp/0865.smallest-subtree-with-all-the-deepest-nodes.cpp) |
| [0866.Prime Palindrome](.doc/0866.prime-palindrome.md) | Medium (25.92%) | palindrome, prime, math | [cpp](.cpp/0866.prime-palindrome.cpp) |
| [0867.Transpose Matrix](.doc/0867.transpose-matrix.md) | Easy (71.29%) | easy | [cpp](.cpp/0867.transpose-matrix.cpp) |
| [0868.Binary Gap](.doc/0868.binary-gap.md) | Easy (63.26%) | bit-manipulation | [cpp](.cpp/0868.binary-gap.cpp) |
| [0869.Reordered Power of 2](.doc/0869.reordered-power-of-2.md) | Medium (62.77%) | math | [cpp](.cpp/0869.reordered-power-of-2.cpp) |
| [0870.Advantage Shuffle](.doc/0870.advantage-shuffle.md) | Medium (52.45%) | array, sort, greedy, heap | [cpp](.cpp/0870.advantage-shuffle.cpp) |
| [0871.Minimum Number of Refueling Stops](.doc/0871.minimum-number-of-refueling-stops.md) | Hard (40.03%) | dynamic-programming, heap | [cpp](.cpp/0871.minimum-number-of-refueling-stops.cpp) |
| [0872.Leaf-Similar Trees](.doc/0872.leaf-similar-trees.md) | Easy (70.21%) | binary-tree, depth-first-search | [cpp](.cpp/0872.leaf-similar-trees.cpp) |
| [0873.Length of Longest Fibonacci Subsequence](.doc/0873.length-of-longest-fibonacci-subsequence.md) | Medium (48.41%) | array, dynamic-programming, hash-table | [cpp](.cpp/0873.length-of-longest-fibonacci-subsequence.cpp) |
| [0874.Walking Robot Simulation](.doc/0874.walking-robot-simulation.md) | Medium (39.92%) | hash-table | [cpp](.cpp/0874.walking-robot-simulation.cpp) |
| [0875.Koko Eating Bananas](.doc/0875.koko-eating-bananas.md) | Medium (48.91%) | binary-search | [cpp](.cpp/0875.koko-eating-bananas.cpp) |
| [0876.Middle of the Linked List](.doc/0876.middle-of-the-linked-list.md) | Easy (78.33%) | linked-list, fast-slow-pointers | [cpp](.cpp/0876.middle-of-the-linked-list.cpp) |
| [0877.Stone Game](.doc/0877.stone-game.md) | Medium (70.54%) | dynamic-programming, minmax, math | [cpp](.cpp/0877.stone-game.cpp) |
| [0878.Nth Magical Number](.doc/0878.nth-magical-number.md) | Hard (35.37%) | math, binary-search | [cpp](.cpp/0878.nth-magical-number.cpp) |
| [0879.Profitable Schemes](.doc/0879.profitable-schemes.md) | Hard (48.39%) | array, dynamic-programming | [cpp](.cpp/0879.profitable-schemes.cpp) |
| [0880.Decoded String at Index](.doc/0880.decoded-string-at-index.md) | Medium (36.42%) | string | [cpp](.cpp/0880.decoded-string-at-index.cpp) |
| [0881.Boats to Save People](.doc/0881.boats-to-save-people.md) | Medium (56.62%) | greedy, two-pointers | [cpp](.cpp/0881.boats-to-save-people.cpp) |
| [0882.Reachable Nodes In Subdivided Graph](.doc/0882.reachable-nodes-in-subdivided-graph.md) | Hard (50.19%) | graph, dijkstra, shortest-path | [cpp](.cpp/0882.reachable-nodes-in-subdivided-graph.cpp) |
| [0883.Projection Area of 3D Shapes](.doc/0883.projection-area-of-3-d-shapes.md) | Easy (72.40%) | geometry, math | [cpp](.cpp/0883.projection-area-of-3-d-shapes.cpp) |
| [0884.Uncommon Words from Two Sentences](.doc/0884.uncommon-words-from-two-sentences.md) | Easy (67.19%) | hash-table, string | [cpp](.cpp/0884.uncommon-words-from-two-sentences.cpp) |
| [0885.Spiral Matrix III](.doc/0885.spiral-matrix-iii.md) | Medium (74.36%) | matrix | [cpp](.cpp/0885.spiral-matrix-iii.cpp) |
| [0886.Possible Bipartition](.doc/0886.possible-bipartition.md) | Medium (50.52%) | graph, union-find | [cpp](.cpp/0886.possible-bipartition.cpp) |
| [0887.Super Egg Drop](.doc/0887.super-egg-drop.md) | Hard (27.62%) | memoization, depth-first-search, binary-search | [cpp](.cpp/0887.super-egg-drop.cpp) |
| [0888.Fair Candy Swap](.doc/0888.fair-candy-swap.md) | Easy (61.58%) | hash-table | [cpp](.cpp/0888.fair-candy-swap.cpp) |
| [0889.Construct Binary Tree from Preorder and Postorder Traversal](.doc/0889.construct-binary-tree-from-preorder-and-postorder-traversal.md) | Medium (71.34%) | binary-tree, hash-table, recursion | [cpp](.cpp/0889.construct-binary-tree-from-preorder-and-postorder-traversal.cpp) |
| [0890.Find and Replace Pattern](.doc/0890.find-and-replace-pattern.md) | Medium (76.88%) | hash-table, string | [cpp](.cpp/0890.find-and-replace-pattern.cpp) |
| [0891.Sum of Subsequence Widths](.doc/0891.sum-of-subsequence-widths.md) | Hard (37.73%) | math, sort | [cpp](.cpp/0891.sum-of-subsequence-widths.cpp) |
| [0892.Surface Area of 3D Shapes](.doc/0892.surface-area-of-3-d-shapes.md) | Easy (65.69%) | geometry | [cpp](.cpp/0892.surface-area-of-3-d-shapes.cpp) |
| [0893.Groups of Special-Equivalent Strings](.doc/0893.groups-of-special-equivalent-strings.md) | Medium (71.59%) | hash-table, string | [cpp](.cpp/0893.groups-of-special-equivalent-strings.cpp) |
| [0894.All Possible Full Binary Trees](.doc/0894.all-possible-full-binary-trees.md) | Medium (82.70%) | binary-tree, hash-table, recursion | [cpp](.cpp/0894.all-possible-full-binary-trees.cpp) |
| [0895.Maximum Frequency Stack](.doc/0895.maximum-frequency-stack.md) | Hard (66.48%) | heap, hash-table, design | [cpp](.cpp/0895.maximum-frequency-stack.cpp) |
| [0896.Monotonic Array](.doc/0896.monotonic-array.md) | Easy (61.11%) | array, easy | [cpp](.cpp/0896.monotonic-array.cpp) |
| [0897.Increasing Order Search Tree](.doc/0897.increasing-order-search-tree.md) | Easy (78.27%) | binary-tree, binary-search-tree | [cpp](.cpp/0897.increasing-order-search-tree.cpp) |
| [0898.Bitwise ORs of Subarrays](.doc/0898.bitwise-o-rs-of-subarrays.md) | Medium (38.52%) | array, hash-table | [cpp](.cpp/0898.bitwise-o-rs-of-subarrays.cpp) |
| [0899.Orderly Queue](.doc/0899.orderly-queue.md) | Hard (65.95%) | math, string | [cpp](.cpp/0899.orderly-queue.cpp) |
| [0900.RLE Iterator](.doc/0900.rle-iterator.md) | Medium (59.46%) | design, string | [cpp](.cpp/0900.rle-iterator.cpp) |
| [0901.Online Stock Span](.doc/0901.online-stock-span.md) | Medium (65.75%) | array, monotonic-stack | [cpp](.cpp/0901.online-stock-span.cpp) |
| [0902.Numbers At Most N Given Digit Set](.doc/0902.numbers-at-most-n-given-digit-set.md) | Hard (42.37%) | depth-first-search, memoization, digit, string, hard | [cpp](.cpp/0902.numbers-at-most-n-given-digit-set.cpp) |
| [0903.Valid Permutations for DI Sequence](.doc/0903.valid-permutations-for-di-sequence.md) | Hard (57.41%) | dynamic-programming, array | [cpp](.cpp/0903.valid-permutations-for-di-sequence.cpp) |
| [0904.Fruit Into Baskets](.doc/0904.fruit-into-baskets.md) | Medium (44.14%) | hash-table, sliding-window | [cpp](.cpp/0904.fruit-into-baskets.cpp) |
| [0905.Sort Array By Parity](.doc/0905.sort-array-by-parity.md) | Easy (76.22%) | array, two-pointers, partition | [cpp](.cpp/0905.sort-array-by-parity.cpp) |
| [0906.Super Palindromes](.doc/0906.super-palindromes.md) | Hard (38.85%) | palindrome, math, string | [cpp](.cpp/0906.super-palindromes.cpp) |
| [0907.Sum of Subarray Minimums](.doc/0907.sum-of-subarray-minimums.md) | Medium (37.41%) | array, monotonic-stack, dynamic-programming, stack, math | [cpp](.cpp/0907.sum-of-subarray-minimums.cpp) |
| [0908.Smallest Range I](.doc/0908.smallest-range-i.md) | Easy (69.86%) | math | [cpp](.cpp/0908.smallest-range-i.cpp) |
| [0909.Snakes and Ladders](.doc/0909.snakes-and-ladders.md) | Medium (43.81%) | breadth-first-search | [cpp](.cpp/0909.snakes-and-ladders.cpp) |
| [0910.Smallest Range II](.doc/0910.smallest-range-ii.md) | Medium (36.18%) | math, sort | [cpp](.cpp/0910.smallest-range-ii.cpp) |
| [0911.Online Election](.doc/0911.online-election.md) | Medium (51.96%) | binary-search, hash-table | [cpp](.cpp/0911.online-election.cpp) |
| [0912.Sort an Array](.doc/0912.sort-an-array.md) | Medium (56.68%) | sort, TODO | [cpp](.cpp/0912.sort-an-array.cpp) |
| [0913.Cat and Mouse](.doc/0913.cat-and-mouse.md) | Hard (34.07%) | breadth-first search, graph, queue, minimax, game-theory, hard | [cpp](.cpp/0913.cat-and-mouse.cpp) |
| [0914.X of a Kind in a Deck of Cards](.doc/0914.x-of-a-kind-in-a-deck-of-cards.md) | Easy (30.02%) | math | [cpp](.cpp/0914.x-of-a-kind-in-a-deck-of-cards.cpp) |
| [0915.Partition Array into Disjoint Intervals](.doc/0915.partition-array-into-disjoint-intervals.md) | Medium (48.77%) | array | [cpp](.cpp/0915.partition-array-into-disjoint-intervals.cpp) |
| [0916.Word Subsets](.doc/0916.word-subsets.md) | Medium (52.30%) | hash-table, string | [cpp](.cpp/0916.word-subsets.cpp) |
| [0917.Reverse Only Letters](.doc/0917.reverse-only-letters.md) | Easy (64.33%) | string, two-pointers | [cpp](.cpp/0917.reverse-only-letters.cpp) |
| [0918.Maximum Sum Circular Subarray](.doc/0918.maximum-sum-circular-subarray.md) | Medium (44.67%) | dynamic-programming, array, prefix-sum | [cpp](.cpp/0918.maximum-sum-circular-subarray.cpp) |
| [0919.Complete Binary Tree Inserter](.doc/0919.complete-binary-tree-inserter.md) | Medium (65.43%) | queue, array, binary-tree, design | [cpp](.cpp/0919.complete-binary-tree-inserter.cpp) |
| [0920.Number of Music Playlists](.doc/0920.number-of-music-playlists.md) | Hard (60.54%) | dynamic-programming | [cpp](.cpp/0920.number-of-music-playlists.cpp) |
| [0921.Minimum Add to Make Parentheses Valid](.doc/0921.minimum-add-to-make-parentheses-valid.md) | Medium (75.12%) | string, parentheses, stack, greedy | [cpp](.cpp/0921.minimum-add-to-make-parentheses-valid.cpp) |
| [0922.Sort Array By Parity II](.doc/0922.sort-array-by-parity-ii.md) | Easy (70.71%) | array, two-pointers | [cpp](.cpp/0922.sort-array-by-parity-ii.cpp) |
| [0923.3Sum With Multiplicity](.doc/0923.3-sum-with-multiplicity.md) | Medium (45.40%) | math, sort, two-pointers, hash-table, dynamic-programming | [cpp](.cpp/0923.3-sum-with-multiplicity.cpp) |
| [0924.Minimize Malware Spread](.doc/0924.minimize-malware-spread.md) | Hard (42.00%) | breadth-first-search, union-find, graph | [cpp](.cpp/0924.minimize-malware-spread.cpp) |
| [0925.Long Pressed Name](.doc/0925.long-pressed-name.md) | Easy (32.35%) | string, two-pointers | [cpp](.cpp/0925.long-pressed-name.cpp) |
| [0926.Flip String to Monotone Increasing](.doc/0926.flip-string-to-monotone-increasing.md) | Medium (61.40%) | string | [cpp](.cpp/0926.flip-string-to-monotone-increasing.cpp) |
| [0927.Three Equal Parts](.doc/0927.three-equal-parts.md) | Hard (39.75%) | array, bit-manipulation, math | [cpp](.cpp/0927.three-equal-parts.cpp) |
| [0928.Minimize Malware Spread II](.doc/0928.minimize-malware-spread-ii.md) | Hard (43.41%) | union-find, graph, breadth-first-search | [cpp](.cpp/0928.minimize-malware-spread-ii.cpp) |
| [0929.Unique Email Addresses](.doc/0929.unique-email-addresses.md) | Easy (67.12%) | string, hash-table | [cpp](.cpp/0929.unique-email-addresses.cpp) |
| [0930.Binary Subarrays With Sum](.doc/0930.binary-subarrays-with-sum.md) | Medium (62.06%) | array, prefix-sum, hash-table, sliding-window | [cpp](.cpp/0930.binary-subarrays-with-sum.cpp) |
| [0931.Minimum Falling Path Sum](.doc/0931.minimum-falling-path-sum.md) | Medium (64.44%) | dynamic-programming | [cpp](.cpp/0931.minimum-falling-path-sum.cpp) |
| [0932.Beautiful Array](.doc/0932.beautiful-array.md) | Medium (65.65%) | array, divide-and-conquer, math | [cpp](.cpp/0932.beautiful-array.cpp) |
| [0933.Number of Recent Calls](.doc/0933.number-of-recent-calls.md) | Easy (74.93%) | queue, binary-search | [cpp](.cpp/0933.number-of-recent-calls.cpp) |
| [0934.Shortest Bridge](.doc/0934.shortest-bridge.md) | Medium (57.68%) | depth-first-search, breadth-first-search | [cpp](.cpp/0934.shortest-bridge.cpp) |
| [0935.Knight Dialer](.doc/0935.knight-dialer.md) | Medium (59.99%) | math, dynamic-programming, matrix | [cpp](.cpp/0935.knight-dialer.cpp) |
| [0936.Stamping The Sequence](.doc/0936.stamping-the-sequence.md) | Hard (62.49%) | greedy, string | [cpp](.cpp/0936.stamping-the-sequence.cpp) |
| [0937.Reorder Data in Log Files](.doc/0937.reorder-data-in-log-files.md) | Medium (56.40%) | string, sort | [cpp](.cpp/0937.reorder-data-in-log-files.cpp) |
| [0938.Range Sum of BST](.doc/0938.range-sum-of-bst.md) | Easy (86.79%) | binary-search-tree, binary-tree, depth-first-search | [cpp](.cpp/0938.range-sum-of-bst.cpp) |
| [0939.Minimum Area Rectangle](.doc/0939.minimum-area-rectangle.md) | Medium (53.53%) | ordered-map, hash-table, sort | [cpp](.cpp/0939.minimum-area-rectangle.cpp) |
| [0940.Distinct Subsequences II](.doc/0940.distinct-subsequences-ii.md) | Hard (43.15%) | dynamic-programming, string | [cpp](.cpp/0940.distinct-subsequences-ii.cpp) |
| [0941.Valid Mountain Array](.doc/0941.valid-mountain-array.md) | Easy (33.40%) | array | [cpp](.cpp/0941.valid-mountain-array.cpp) |
| [0942.DI String Match](.doc/0942.di-string-match.md) | Easy (78.45%) | two-pointers | [cpp](.cpp/0942.di-string-match.cpp) |
| [0943.Find the Shortest Superstring](.doc/0943.find-the-shortest-superstring.md) | Hard (43.79%) | string, dynamic-programming, bit-manipulation | [cpp](.cpp/0943.find-the-shortest-superstring.cpp) |
| [0944.Delete Columns to Make Sorted](.doc/0944.delete-columns-to-make-sorted.md) | Easy (74.56%) | string, easy | [cpp](.cpp/0944.delete-columns-to-make-sorted.cpp) |
| [0945.Minimum Increment to Make Array Unique](.doc/0945.minimum-increment-to-make-array-unique.md) | Medium (52.38%) | sort, greedy | [cpp](.cpp/0945.minimum-increment-to-make-array-unique.cpp) |
| [0946.Validate Stack Sequences](.doc/0946.validate-stack-sequences.md) | Medium (69.44%) | stack | [cpp](.cpp/0946.validate-stack-sequences.cpp) |
| [0947.Most Stones Removed with Same Row or Column](.doc/0947.most-stones-removed-with-same-row-or-column.md) | Medium (58.83%) | union-find | [cpp](.cpp/0947.most-stones-removed-with-same-row-or-column.cpp) |
| [0948.Bag of Tokens](.doc/0948.bag-of-tokens.md) | Medium (58.92%) | greedy | [cpp](.cpp/0948.bag-of-tokens.cpp) |
| [0949.Largest Time for Given Digits](.doc/0949.largest-time-for-given-digits.md) | Medium (35.13%) | easy | [cpp](.cpp/0949.largest-time-for-given-digits.cpp) |
| [0950.Reveal Cards In Increasing Order](.doc/0950.reveal-cards-in-increasing-order.md) | Medium (82.86%) | sort, array, queue | [cpp](.cpp/0950.reveal-cards-in-increasing-order.cpp) |
| [0951.Flip Equivalent Binary Trees](.doc/0951.flip-equivalent-binary-trees.md) | Medium (66.92%) | binary-tree, depth-first-search | [cpp](.cpp/0951.flip-equivalent-binary-trees.cpp) |
| [0952.Largest Component Size by Common Factor](.doc/0952.largest-component-size-by-common-factor.md) | Hard (40.53%) | union-find, graph, math | [cpp](.cpp/0952.largest-component-size-by-common-factor.cpp) |
| [0953.Verifying an Alien Dictionary](.doc/0953.verifying-an-alien-dictionary.md) | Easy (54.92%) | string, hash-table | [cpp](.cpp/0953.verifying-an-alien-dictionary.cpp) |
| [0954.Array of Doubled Pairs](.doc/0954.array-of-doubled-pairs.md) | Medium (39.13%) | sort, hash-table, ordered-map | [cpp](.cpp/0954.array-of-doubled-pairs.cpp) |
| [0955.Delete Columns to Make Sorted II](.doc/0955.delete-columns-to-make-sorted-ii.md) | Medium (35.13%) | greedy, string | [cpp](.cpp/0955.delete-columns-to-make-sorted-ii.cpp) |
| [0956.Tallest Billboard](.doc/0956.tallest-billboard.md) | Hard (52.35%) | dynamic-programming | [cpp](.cpp/0956.tallest-billboard.cpp) |
| [0957.Prison Cells After N Days](.doc/0957.prison-cells-after-n-days.md) | Medium (38.94%) | hash-table | [cpp](.cpp/0957.prison-cells-after-n-days.cpp) |
| [0958.Check Completeness of a Binary Tree](.doc/0958.check-completeness-of-a-binary-tree.md) | Medium (56.78%) | binary-tree, breadth-first-search | [cpp](.cpp/0958.check-completeness-of-a-binary-tree.cpp) |
| [0959.Regions Cut By Slashes](.doc/0959.regions-cut-by-slashes.md) | Medium (69.33%) | depth-first-search | [cpp](.cpp/0959.regions-cut-by-slashes.cpp) |
| [0960.Delete Columns to Make Sorted III](.doc/0960.delete-columns-to-make-sorted-iii.md) | Hard (57.82%) | dynamic-programming, string | [cpp](.cpp/0960.delete-columns-to-make-sorted-iii.cpp) |
| [0961.N-Repeated Element in Size 2N Array](.doc/0961.n-repeated-element-in-size-2-n-array.md) | Easy (76.60%) | hash-table, math | [cpp](.cpp/0961.n-repeated-element-in-size-2-n-array.cpp) |
| [0962.Maximum Width Ramp](.doc/0962.maximum-width-ramp.md) | Medium (49.83%) | array, stack, monotonic-stack | [cpp](.cpp/0962.maximum-width-ramp.cpp) |
| [0963.Minimum Area Rectangle II](.doc/0963.minimum-area-rectangle-ii.md) | Medium (54.71%) | math, geometry, hash-table | [cpp](.cpp/0963.minimum-area-rectangle-ii.cpp) |
| [0964.Least Operators to Express Number](.doc/0964.least-operators-to-express-number.md) | Hard (48.36%) | hard, digit, arithmetic | [cpp](.cpp/0964.least-operators-to-express-number.cpp) |
| [0965.Univalued Binary Tree](.doc/0965.univalued-binary-tree.md) | Easy (70.73%) | binary-tree, depth-first-search | [cpp](.cpp/0965.univalued-binary-tree.cpp) |
| [0966.Vowel Spellchecker](.doc/0966.vowel-spellchecker.md) | Medium (51.37%) | hash-table, string | [cpp](.cpp/0966.vowel-spellchecker.cpp) |
| [0967.Numbers With Same Consecutive Differences](.doc/0967.numbers-with-same-consecutive-differences.md) | Medium (57.97%) | recursion, math | [cpp](.cpp/0967.numbers-with-same-consecutive-differences.cpp) |
| [0968.Binary Tree Cameras](.doc/0968.binary-tree-cameras.md) | Hard (46.59%) | binary-tree, depth-first-search | [cpp](.cpp/0968.binary-tree-cameras.cpp) |
| [0969.Pancake Sorting](.doc/0969.pancake-sorting.md) | Medium (70.60%) | array, sort, greedy | [cpp](.cpp/0969.pancake-sorting.cpp) |
| [0970.Powerful Integers](.doc/0970.powerful-integers.md) | Medium (43.75%) | math, hash-table | [cpp](.cpp/0970.powerful-integers.cpp) |
| [0971.Flip Binary Tree To Match Preorder Traversal](.doc/0971.flip-binary-tree-to-match-preorder-traversal.md) | Medium (50.46%) | binary-tree, depth-first-search | [cpp](.cpp/0971.flip-binary-tree-to-match-preorder-traversal.cpp) |
| [0972.Equal Rational Numbers](.doc/0972.equal-rational-numbers.md) | Hard (43.77%) | math, string | [cpp](.cpp/0972.equal-rational-numbers.cpp) |
| [0973.K Closest Points to Origin](.doc/0973.k-closest-points-to-origin.md) | Medium (66.27%) | sort, heap | [cpp](.cpp/0973.k-closest-points-to-origin.cpp) |
| [0974.Subarray Sums Divisible by K](.doc/0974.subarray-sums-divisible-by-k.md) | Medium (53.99%) | hash-table, prefix-sum, math | [cpp](.cpp/0974.subarray-sums-divisible-by-k.cpp) |
| [0975.Odd Even Jump](.doc/0975.odd-even-jump.md) | Hard (39.75%) | ordered-map, depth-first-search, memoization, array | [cpp](.cpp/0975.odd-even-jump.cpp) |
| [0976.Largest Perimeter Triangle](.doc/0976.largest-perimeter-triangle.md) | Easy (55.89%) | array, sort, greedy | [cpp](.cpp/0976.largest-perimeter-triangle.cpp) |
| [0977.Squares of a Sorted Array](.doc/0977.squares-of-a-sorted-array.md) | Easy (72.82%) | array, two-pointers | [cpp](.cpp/0977.squares-of-a-sorted-array.cpp) |
| [0978.Longest Turbulent Subarray](.doc/0978.longest-turbulent-subarray.md) | Medium (47.32%) | array, dynamic-programming | [cpp](.cpp/0978.longest-turbulent-subarray.cpp) |
| [0979.Distribute Coins in Binary Tree](.doc/0979.distribute-coins-in-binary-tree.md) | Medium (72.57%) | binary-tree, depth-first-search | [cpp](.cpp/0979.distribute-coins-in-binary-tree.cpp) |
| [0980.Unique Paths III](.doc/0980.unique-paths-iii.md) | Hard (81.71%) | depth-first-search | [cpp](.cpp/0980.unique-paths-iii.cpp) |
| [0981.Time Based Key-Value Store](.doc/0981.time-based-key-value-store.md) | Medium (49.47%) | hash-table, binary-search, design, ordered-map | [cpp](.cpp/0981.time-based-key-value-store.cpp) |
| [0982.Triples with Bitwise AND Equal To Zero](.doc/0982.triples-with-bitwise-and-equal-to-zero.md) | Hard (58.03%) | array, hash-table | [cpp](.cpp/0982.triples-with-bitwise-and-equal-to-zero.cpp) |
| [0983.Minimum Cost For Tickets](.doc/0983.minimum-cost-for-tickets.md) | Medium (65.28%) | dynamic-programming | [cpp](.cpp/0983.minimum-cost-for-tickets.cpp) |
| [0984.String Without AAA or BBB](.doc/0984.string-without-aaa-or-bbb.md) | Medium (43.82%) | greedy, string, recursion | [cpp](.cpp/0984.string-without-aaa-or-bbb.cpp) |
| [0985.Sum of Even Numbers After Queries](.doc/0985.sum-of-even-numbers-after-queries.md) | Medium (68.06%) | array | [cpp](.cpp/0985.sum-of-even-numbers-after-queries.cpp) |
| [0986.Interval List Intersections](.doc/0986.interval-list-intersections.md) | Medium (71.56%) | two-pointers, interval | [cpp](.cpp/0986.interval-list-intersections.cpp) |
| [0987.Vertical Order Traversal of a Binary Tree](.doc/0987.vertical-order-traversal-of-a-binary-tree.md) | Hard (47.36%) | depth-first-search, sort, binary-tree | [cpp](.cpp/0987.vertical-order-traversal-of-a-binary-tree.cpp) |
| [0988.Smallest String Starting From Leaf](.doc/0988.smallest-string-starting-from-leaf.md) | Medium (51.17%) | binary-tree, depth-first-search | [cpp](.cpp/0988.smallest-string-starting-from-leaf.cpp) |
| [0989.Add to Array-Form of Integer](.doc/0989.add-to-array-form-of-integer.md) | Easy (45.44%) | array, arithmetic | [cpp](.cpp/0989.add-to-array-form-of-integer.cpp) |
| [0990.Satisfiability of Equality Equations](.doc/0990.satisfiability-of-equality-equations.md) | Medium (50.45%) | depth-first-search, union-find, graph, math | [cpp](.cpp/0990.satisfiability-of-equality-equations.cpp) |
| [0991.Broken Calculator](.doc/0991.broken-calculator.md) | Medium (54.36%) | math, greedy, recursion | [cpp](.cpp/0991.broken-calculator.cpp) |
| [0992.Subarrays with K Different Integers](.doc/0992.subarrays-with-k-different-integers.md) | Hard (62.96%) | sliding-window, array, hash-table | [cpp](.cpp/0992.subarrays-with-k-different-integers.cpp) |
| [0993.Cousins in Binary Tree](.doc/0993.cousins-in-binary-tree.md) | Easy (55.89%) | binary-tree, breadth-first-search, depth-first-search | [cpp](.cpp/0993.cousins-in-binary-tree.cpp) |
| [0994.Rotting Oranges](.doc/0994.rotting-oranges.md) | Medium (53.97%) | matrix, breadth-first-search | [cpp](.cpp/0994.rotting-oranges.cpp) |
| [0995.Minimum Number of K Consecutive Bit Flips](.doc/0995.minimum-number-of-k-consecutive-bit-flips.md) | Hard (51.53%) | greedy, array, difference-array, bit-manipulation | [cpp](.cpp/0995.minimum-number-of-k-consecutive-bit-flips.cpp) |
| [0996.Number of Squareful Arrays](.doc/0996.number-of-squareful-arrays.md) | Hard (50.07%) | array, permutation, recursion, sort, hash-table | [cpp](.cpp/0996.number-of-squareful-arrays.cpp) |
| [0997.Find the Town Judge](.doc/0997.find-the-town-judge.md) | Easy (49.79%) | graph | [cpp](.cpp/0997.find-the-town-judge.cpp) |
| [0998.Maximum Binary Tree II](.doc/0998.maximum-binary-tree-ii.md) | Medium (68.94%) | binary-tree, recursion | [cpp](.cpp/0998.maximum-binary-tree-ii.cpp) |
| [0999.Available Captures for Rook](.doc/0999.available-captures-for-rook.md) | Easy (68.85%) | depth-first-search, matrix | [cpp](.cpp/0999.available-captures-for-rook.cpp) |
| [1000.Minimum Cost to Merge Stones](.doc/1000.minimum-cost-to-merge-stones.md) | Hard (42.99%) | prefix-sum, dynamic-programming, hard | [cpp](.cpp/1000.minimum-cost-to-merge-stones.cpp) |
| [1001.Grid Illumination](.doc/1001.grid-illumination.md) | Hard (36.64%) | hash-table, matrix | [cpp](.cpp/1001.grid-illumination.cpp) |
| [1002.Find Common Characters](.doc/1002.find-common-characters.md) | Easy (68.86%) | array, string, hash-table | [cpp](.cpp/1002.find-common-characters.cpp) |
| [1003.Check If Word Is Valid After Substitutions](.doc/1003.check-if-word-is-valid-after-substitutions.md) | Medium (59.41%) | stack, string | [cpp](.cpp/1003.check-if-word-is-valid-after-substitutions.cpp) |
| [1004.Max Consecutive Ones III](.doc/1004.max-consecutive-ones-iii.md) | Medium (62.85%) | sliding-window | [cpp](.cpp/1004.max-consecutive-ones-iii.cpp) |
| [1005.Maximize Sum Of Array After K Negations](.doc/1005.maximize-sum-of-array-after-k-negations.md) | Easy (51.03%) | array, greedy, sort | [cpp](.cpp/1005.maximize-sum-of-array-after-k-negations.cpp) |
| [1006.Clumsy Factorial](.doc/1006.clumsy-factorial.md) | Medium (56.89%) | stack, math | [cpp](.cpp/1006.clumsy-factorial.cpp) |
| [1007.Minimum Domino Rotations For Equal Row](.doc/1007.minimum-domino-rotations-for-equal-row.md) | Medium (52.20%) | array, greedy | [cpp](.cpp/1007.minimum-domino-rotations-for-equal-row.cpp) |
| [1008.Construct Binary Search Tree from Preorder Traversal](.doc/1008.construct-binary-search-tree-from-preorder-traversal.md) | Medium (81.88%) | binary-tree, binary-search-tree, depth-first-search | [cpp](.cpp/1008.construct-binary-search-tree-from-preorder-traversal.cpp) |
| [1009.Complement of Base 10 Integer](.doc/1009.complement-of-base-10-integer.md) | Easy (60.78%) | bit-manipulation | [cpp](.cpp/1009.complement-of-base-10-integer.cpp) |
| [1010.Pairs of Songs With Total Durations Divisible by 60](.doc/1010.pairs-of-songs-with-total-durations-divisible-by-60.md) | Medium (52.86%) | array, hash-table | [cpp](.cpp/1010.pairs-of-songs-with-total-durations-divisible-by-60.cpp) |
| [1011.Capacity To Ship Packages Within D Days](.doc/1011.capacity-to-ship-packages-within-d-days.md) | Medium (69.29%) | array, binary-search | [cpp](.cpp/1011.capacity-to-ship-packages-within-d-days.cpp) |
| [1012.Numbers With Repeated Digits](.doc/1012.numbers-with-repeated-digits.md) | Hard (42.01%) | math, hash-table, digit | [cpp](.cpp/1012.numbers-with-repeated-digits.cpp) |
| [1013.Partition Array Into Three Parts With Equal Sum](.doc/1013.partition-array-into-three-parts-with-equal-sum.md) | Easy (41.98%) | array, prefix-sum | [cpp](.cpp/1013.partition-array-into-three-parts-with-equal-sum.cpp) |
| [1014.Best Sightseeing Pair](.doc/1014.best-sightseeing-pair.md) | Medium (59.23%) | array | [cpp](.cpp/1014.best-sightseeing-pair.cpp) |
| [1015.Smallest Integer Divisible by K](.doc/1015.smallest-integer-divisible-by-k.md) | Medium (46.65%) | math | [cpp](.cpp/1015.smallest-integer-divisible-by-k.cpp) |
| [1016.Binary String With Substrings Representing 1 To N](.doc/1016.binary-string-with-substrings-representing-1-to-n.md) | Medium (57.37%) | bit-manipulation, math, string | [cpp](.cpp/1016.binary-string-with-substrings-representing-1-to-n.cpp) |
| [1017.Convert to Base -2](.doc/1017.convert-to-base-2.md) | Medium (60.58%) | math | [cpp](.cpp/1017.convert-to-base-2.cpp) |
| [1018.Binary Prefix Divisible By 5](.doc/1018.binary-prefix-divisible-by-5.md) | Easy (46.72%) | math | [cpp](.cpp/1018.binary-prefix-divisible-by-5.cpp) |
| [1019.Next Greater Node In Linked List](.doc/1019.next-greater-node-in-linked-list.md) | Medium (60.67%) | linked-list, stack, monotonic-stack | [cpp](.cpp/1019.next-greater-node-in-linked-list.cpp) |
| [1020.Number of Enclaves](.doc/1020.number-of-enclaves.md) | Medium (68.72%) | depth-first-search, breadth-first-search, union-find, matrix, graph | [cpp](.cpp/1020.number-of-enclaves.cpp) |
| [1021.Remove Outermost Parentheses](.doc/1021.remove-outermost-parentheses.md) | Easy (82.41%) | parentheses, stack, string | [cpp](.cpp/1021.remove-outermost-parentheses.cpp) |
| [1022.Sum of Root To Leaf Binary Numbers](.doc/1022.sum-of-root-to-leaf-binary-numbers.md) | Easy (73.07%) | binary-tree, depth-first-search | [cpp](.cpp/1022.sum-of-root-to-leaf-binary-numbers.cpp) |
| [1023.Camelcase Matching](.doc/1023.camelcase-matching.md) | Medium (62.12%) | string | [cpp](.cpp/1023.camelcase-matching.cpp) |
| [1024.Video Stitching](.doc/1024.video-stitching.md) | Medium (51.33%) | dynamic-programming, greedy, interval | [cpp](.cpp/1024.video-stitching.cpp) |
| [1025.Divisor Game](.doc/1025.divisor-game.md) | Easy (68.61%) | math, game-theory | [cpp](.cpp/1025.divisor-game.cpp) |
| [1026.Maximum Difference Between Node and Ancestor](.doc/1026.maximum-difference-between-node-and-ancestor.md) | Medium (78.14%) | binary-tree, depth-first-search | [cpp](.cpp/1026.maximum-difference-between-node-and-ancestor.cpp) |
| [1027.Longest Arithmetic Subsequence](.doc/1027.longest-arithmetic-subsequence.md) | Medium (49.03%) | dynamic-programming | [cpp](.cpp/1027.longest-arithmetic-subsequence.cpp) |
| [1028.Recover a Tree From Preorder Traversal](.doc/1028.recover-a-tree-from-preorder-traversal.md) | Hard (74.19%) | binary-tree, depth-first-search, string | [cpp](.cpp/1028.recover-a-tree-from-preorder-traversal.cpp) |
| [1029.Two City Scheduling](.doc/1029.two-city-scheduling.md) | Medium (66.63%) | greedy | [cpp](.cpp/1029.two-city-scheduling.cpp) |
| [1030.Matrix Cells in Distance Order](.doc/1030.matrix-cells-in-distance-order.md) | Easy (70.94%) | breadth-first-search, sort | [cpp](.cpp/1030.matrix-cells-in-distance-order.cpp) |
| [1031.Maximum Sum of Two Non-Overlapping Subarrays](.doc/1031.maximum-sum-of-two-non-overlapping-subarrays.md) | Medium (59.74%) | array, prefix-sum | [cpp](.cpp/1031.maximum-sum-of-two-non-overlapping-subarrays.cpp) |
| [1032.Stream of Characters](.doc/1032.stream-of-characters.md) | Hard (51.91%) | trie, design | [cpp](.cpp/1032.stream-of-characters.cpp) |
| [1033.Moving Stones Until Consecutive](.doc/1033.moving-stones-until-consecutive.md) | Medium (47.80%) | greedy, math | [cpp](.cpp/1033.moving-stones-until-consecutive.cpp) |
| [1034.Coloring A Border](.doc/1034.coloring-a-border.md) | Medium (48.89%) | depth-first-search, matrix | [cpp](.cpp/1034.coloring-a-border.cpp) |
| [1035.Uncrossed Lines](.doc/1035.uncrossed-lines.md) | Medium (62.92%) | dynamic-programming | [cpp](.cpp/1035.uncrossed-lines.cpp) |
| [1036.Escape a Large Maze](.doc/1036.escape-a-large-maze.md) | Hard (34.86%) | hash-table, math, matrix, breadth-first-search | [cpp](.cpp/1036.escape-a-large-maze.cpp) |
| [1037.Valid Boomerang](.doc/1037.valid-boomerang.md) | Easy (36.95%) | math, geometry | [cpp](.cpp/1037.valid-boomerang.cpp) |
| [1038.Binary Search Tree to Greater Sum Tree](.doc/1038.binary-search-tree-to-greater-sum-tree.md) | Medium (85.79%) | binary-search-tree, binary-tree | [cpp](.cpp/1038.binary-search-tree-to-greater-sum-tree.cpp) |
| [1039.Minimum Score Triangulation of Polygon](.doc/1039.minimum-score-triangulation-of-polygon.md) | Medium (58.71%) | dynamic-programming, memoization, depth-first-search, geometry, math | [cpp](.cpp/1039.minimum-score-triangulation-of-polygon.cpp) |
| [1040.Moving Stones Until Consecutive II](.doc/1040.moving-stones-until-consecutive-ii.md) | Medium (56.76%) | greedy, two-pointers | [cpp](.cpp/1040.moving-stones-until-consecutive-ii.cpp) |
| [1041.Robot Bounded In Circle](.doc/1041.robot-bounded-in-circle.md) | Medium (55.63%) | array | [cpp](.cpp/1041.robot-bounded-in-circle.cpp) |
| [1042.Flower Planting With No Adjacent](.doc/1042.flower-planting-with-no-adjacent.md) | Medium (51.18%) | graph, greedy | [cpp](.cpp/1042.flower-planting-with-no-adjacent.cpp) |
| [1043.Partition Array for Maximum Sum](.doc/1043.partition-array-for-maximum-sum.md) | Medium (76.44%) | dynamic-programming | [cpp](.cpp/1043.partition-array-for-maximum-sum.cpp) |
| [1044.Longest Duplicate Substring](.doc/1044.longest-duplicate-substring.md) | Hard (30.53%) | string, hash-table, binary-search | [cpp](.cpp/1044.longest-duplicate-substring.cpp) |
| [1046.Last Stone Weight](.doc/1046.last-stone-weight.md) | Easy (65.31%) | heap | [cpp](.cpp/1046.last-stone-weight.cpp) |
| [1047.Remove All Adjacent Duplicates In String](.doc/1047.remove-all-adjacent-duplicates-in-string.md) | Easy (69.42%) | stack, string | [cpp](.cpp/1047.remove-all-adjacent-duplicates-in-string.cpp) |
| [1048.Longest String Chain](.doc/1048.longest-string-chain.md) | Medium (61.00%) | hash-table, sort | [cpp](.cpp/1048.longest-string-chain.cpp) |
| [1049.Last Stone Weight II](.doc/1049.last-stone-weight-ii.md) | Medium (55.20%) | dynamic-programming | [cpp](.cpp/1049.last-stone-weight-ii.cpp) |
| [1051.Height Checker](.doc/1051.height-checker.md) | Easy (76.46%) | sort, counting-sort, array | [cpp](.cpp/1051.height-checker.cpp) |
| [1052.Grumpy Bookstore Owner](.doc/1052.grumpy-bookstore-owner.md) | Medium (57.08%) | prefix-sum | [cpp](.cpp/1052.grumpy-bookstore-owner.cpp) |
| [1053.Previous Permutation With One Swap](.doc/1053.previous-permutation-with-one-swap.md) | Medium (49.71%) | math, permutation, greedy | [cpp](.cpp/1053.previous-permutation-with-one-swap.cpp) |
| [1054.Distant Barcodes](.doc/1054.distant-barcodes.md) | Medium (46.46%) | hash-table, sort | [cpp](.cpp/1054.distant-barcodes.cpp) |
| 1055.Shortest Way to Form String 🔒 | Medium (60.09%) | string, two-pointers | [cpp](.cpp/1055.shortest-way-to-form-string.cpp) |
| 1056.Confusing Number 🔒 | Easy (48.66%) | math | [cpp](.cpp/1056.confusing-number.cpp) |
| 1057.Campus Bikes 🔒 | Medium (58.58%) | sort, geometry | [cpp](.cpp/1057.campus-bikes.cpp) |
| 1058.Minimize Rounding Error to Meet Target 🔒 | Medium (45.01%) | math | [cpp](.cpp/1058.minimize-rounding-error-to-meet-target.cpp) |
| 1059.All Paths from Source Lead to Destination 🔒 | Medium (37.67%) | graph, depth-first-search, memoization | [cpp](.cpp/1059.all-paths-from-source-lead-to-destination.cpp) |
| 1060.Missing Element in Sorted Array 🔒 | Medium (56.60%) | array, binary-search | [cpp](.cpp/1060.missing-element-in-sorted-array.cpp) |
| [1061.Lexicographically Smallest Equivalent String](.doc/1061.lexicographically-smallest-equivalent-string.md) | Medium (76.49%) | union-find, string | [cpp](.cpp/1061.lexicographically-smallest-equivalent-string.cpp) |
| 1062.Longest Repeating Substring 🔒 | Medium (60.52%) | dynamic-programming, string | [cpp](.cpp/1062.longest-repeating-substring.cpp) |
| 1063.Number of Valid Subarrays 🔒 | Hard (78.41%) | array, monotonic-stack | [cpp](.cpp/1063.number-of-valid-subarrays.cpp) |
| 1064.Fixed Point 🔒 | Easy (64.14%) | array, binary-search | [cpp](.cpp/1064.fixed-point.cpp) |
| 1065.Index Pairs of a String 🔒 | Easy (67.25%) | string, trie | [cpp](.cpp/1065.index-pairs-of-a-string.cpp) |
| 1066.Campus Bikes II 🔒 | Medium (55.17%) | dynamic-programming, geometry, math | [cpp](.cpp/1066.campus-bikes-ii.cpp) |
| 1067.Digit Count in Range 🔒 | Hard (46.44%) | math | [cpp](.cpp/1067.digit-count-in-range.cpp) |
| [1071.Greatest Common Divisor of Strings](.doc/1071.greatest-common-divisor-of-strings.md) | Easy (51.43%) | string | [cpp](.cpp/1071.greatest-common-divisor-of-strings.cpp) |
| [1072.Flip Columns For Maximum Number of Equal Rows](.doc/1072.flip-columns-for-maximum-number-of-equal-rows.md) | Medium (63.82%) | matrix, hash-table | [cpp](.cpp/1072.flip-columns-for-maximum-number-of-equal-rows.cpp) |
| [1073.Adding Two Negabinary Numbers](.doc/1073.adding-two-negabinary-numbers.md) | Medium (36.75%) | arithmetic | [cpp](.cpp/1073.adding-two-negabinary-numbers.cpp) |
| [1074.Number of Submatrices That Sum to Target](.doc/1074.number-of-submatrices-that-sum-to-target.md) | Hard (74.42%) | hash-table, prefix-sum, matrix | [cpp](.cpp/1074.number-of-submatrices-that-sum-to-target.cpp) |
| [1078.Occurrences After Bigram](.doc/1078.occurrences-after-bigram.md) | Easy (63.42%) | string | [cpp](.cpp/1078.occurrences-after-bigram.cpp) |
| [1079.Letter Tile Possibilities](.doc/1079.letter-tile-possibilities.md) | Medium (76.15%) | hash-table, recursion, permutation, string | [cpp](.cpp/1079.letter-tile-possibilities.cpp) |
| [1080.Insufficient Nodes in Root to Leaf Paths](.doc/1080.insufficient-nodes-in-root-to-leaf-paths.md) | Medium (55.30%) | binary-tree, depth-first-search | [cpp](.cpp/1080.insufficient-nodes-in-root-to-leaf-paths.cpp) |
| 1086.High Five 🔒 | Easy (74.55%) | array, sort | [cpp](.cpp/1086.high-five.cpp) |
| [1091.Shortest Path in Binary Matrix](.doc/1091.shortest-path-in-binary-matrix.md) | Medium (47.21%) | breadth-first-search, matrix | [cpp](.cpp/1091.shortest-path-in-binary-matrix.cpp) |
| [1140.Stone Game II](.doc/1140.stone-game-ii.md) | Medium (67.91%) | depth-first-search, memoization, minimax, game-theory, prefix-sum | [cpp](.cpp/1140.stone-game-ii.cpp) |
| [1143.Longest Common Subsequence](.doc/1143.longest-common-subsequence.md) | Medium (57.78%) | dynamic-programming, string | [cpp](.cpp/1143.longest-common-subsequence.cpp) |
| [1201.Ugly Number III](.doc/1201.ugly-number-iii.md) | Medium (29.35%) | binary-search, math | [cpp](.cpp/1201.ugly-number-iii.cpp) |
| [1209.Remove All Adjacent Duplicates in String II](.doc/1209.remove-all-adjacent-duplicates-in-string-ii.md) | Medium (57.62%) | stack, string | [cpp](.cpp/1209.remove-all-adjacent-duplicates-in-string-ii.cpp) |
| [1217.Minimum Cost to Move Chips to The Same Position](.doc/1217.minimum-cost-to-move-chips-to-the-same-position.md) | Easy (71.70%) | math | [cpp](.cpp/1217.minimum-cost-to-move-chips-to-the-same-position.cpp) |
| [1268.Search Suggestions System](.doc/1268.search-suggestions-system.md) | Medium (65.21%) | sort, trie, design | [cpp](.cpp/1268.search-suggestions-system.cpp) |
| [1276.Number of Burgers with No Waste of Ingredients](.doc/1276.number-of-burgers-with-no-waste-of-ingredients.md) | Medium (51.06%) | math | [cpp](.cpp/1276.number-of-burgers-with-no-waste-of-ingredients.cpp) |
| [1277.Count Square Submatrices with All Ones](.doc/1277.count-square-submatrices-with-all-ones.md) | Medium (75.03%) | dynamic-programming, matrix | [cpp](.cpp/1277.count-square-submatrices-with-all-ones.cpp) |
| [1283.Find the Smallest Divisor Given a Threshold](.doc/1283.find-the-smallest-divisor-given-a-threshold.md) | Medium (59.38%) | binary-search, array | [cpp](.cpp/1283.find-the-smallest-divisor-given-a-threshold.cpp) |
| [1290.Convert Binary Number in a Linked List to Integer](.doc/1290.convert-binary-number-in-a-linked-list-to-integer.md) | Easy (81.14%) | linked-list, easy | [cpp](.cpp/1290.convert-binary-number-in-a-linked-list-to-integer.cpp) |
| [1312.Minimum Insertion Steps to Make a String Palindrome](.doc/1312.minimum-insertion-steps-to-make-a-string-palindrome.md) | Hard (70.36%) | string, dynamic-programming, depth-first-search, memoization, palindrome | [cpp](.cpp/1312.minimum-insertion-steps-to-make-a-string-palindrome.cpp) |
| [1332.Remove Palindromic Subsequences](.doc/1332.remove-palindromic-subsequences.md) | Easy (76.34%) | string, palindrome, greedy | [cpp](.cpp/1332.remove-palindromic-subsequences.cpp) |
| [1334.Find the City With the Smallest Number of Neighbors at a Threshold Distance](.doc/1334.find-the-city-with-the-smallest-number-of-neighbors-at-a-threshold-distance.md) | Medium (59.78%) | graph, dijkstra, shortest-path | [cpp](.cpp/1334.find-the-city-with-the-smallest-number-of-neighbors-at-a-threshold-distance.cpp) |
| [1340.Jump Game V](.doc/1340.jump-game-v.md) | Hard (63.14%) | depth-first-search, memoization, array | [cpp](.cpp/1340.jump-game-v.cpp) |
| [1345.Jump Game IV](.doc/1345.jump-game-iv.md) | Hard (46.26%) | hash-table, breadth-first-search, array | [cpp](.cpp/1345.jump-game-iv.cpp) |
| [1376.Time Needed to Inform All Employees](.doc/1376.time-needed-to-inform-all-employees.md) | Medium (60.01%) | graph, tree, depth-first-search | [cpp](.cpp/1376.time-needed-to-inform-all-employees.cpp) |
| [1411.Number of Ways to Paint N × 3 Grid](.doc/1411.number-of-ways-to-paint-n-3-grid.md) | Hard (63.43%) | math | [cpp](.cpp/1411.number-of-ways-to-paint-n-3-grid.cpp) |
| [1423.Maximum Points You Can Obtain from Cards](.doc/1423.maximum-points-you-can-obtain-from-cards.md) | Medium (52.47%) | sliding-window, array | [cpp](.cpp/1423.maximum-points-you-can-obtain-from-cards.cpp) |
| 1429.First Unique Number 🔒 | Medium (53.60%) | queue, hash-table, design | [cpp](.cpp/1429.first-unique-number.cpp) |
| [1438.Longest Continuous Subarray With Absolute Diff Less Than or Equal to Limit](.doc/1438.longest-continuous-subarray-with-absolute-diff-less-than-or-equal-to-limit.md) | Medium (49.24%) | sliding-window, ordered-map | [cpp](.cpp/1438.longest-continuous-subarray-with-absolute-diff-less-than-or-equal-to-limit.cpp) |
| [1446.Consecutive Characters](.doc/1446.consecutive-characters.md) | Easy (60.40%) | string, easy | [cpp](.cpp/1446.consecutive-characters.cpp) |
| [1472.Design Browser History](.doc/1472.design-browser-history.md) | Medium (77.50%) | stack, design | [cpp](.cpp/1472.design-browser-history.cpp) |
| [1510. Stone Game IV](.doc/1510.stone-game-iv.md) | Hard (59.74%) | dynamic-programming, game-theory | [cpp](.cpp/1510.stone-game-iv.cpp) |
| [1600.Throne Inheritance](.doc/1600.throne-inheritance.md) | Medium (64.91%) | tree | [cpp](.cpp/1600.throne-inheritance.cpp) |
| [1658.Minimum Operations to Reduce X to Zero](.doc/1658.minimum-operations-to-reduce-x-to-zero.md) | Medium (39.67%) | array, hash-table, prefix-sum | [cpp](.cpp/1658.minimum-operations-to-reduce-x-to-zero.cpp) |
| [1706.Where Will the Ball Fall](.doc/1706.where-will-the-ball-fall.md) | Medium (71.76%) | dynamic-programming, depth-first-search, memoization | [cpp](.cpp/1706.where-will-the-ball-fall.cpp) |
| [1971.Find if Path Exists in Graph](.doc/1971.find-if-path-exists-in-graph.md) | Easy (51.57%) | graph, depth-first-search, breadth-first-search, union-find | [cpp](.cpp/1971.find-if-path-exists-in-graph.cpp) |
| [2296.Design a Text Editor](.doc/2296.design-a-text-editor.md) | Hard (44.05%) | stack, string, design, linked-list | [cpp](.cpp/2296.design-a-text-editor.cpp) |
| [2401.Longest Nice Subarray](.doc/2401.longest-nice-subarray.md) | Medium (50.75%) | bit-manipulation, sliding-window | [cpp](.cpp/2401.longest-nice-subarray.cpp) |
| [2423.Remove Letter To Equalize Frequency](.doc/2423.remove-letter-to-equalize-frequency.md) | Easy (17.25%) | hash-table, string | [cpp](.cpp/2423.remove-letter-to-equalize-frequency.cpp) |
| [2462.Total Cost to Hire K Workers](.doc/2462.total-cost-to-hire-k-workers.md) | Medium (43.19%) | heap, sort, greedy, two-pointers | [cpp](.cpp/2462.total-cost-to-hire-k-workers.cpp) |
| [2511.Maximum Enemy Forts That Can Be Captured](.doc/2511.maximum-enemy-forts-that-can-be-captured.md) | Easy (38.02%) | array, two-pointers | [cpp](.cpp/2511.maximum-enemy-forts-that-can-be-captured.cpp) |
## Reference