From 3bcd888ce98e6f1038b78c646039810f24f4e6c3 Mon Sep 17 00:00:00 2001 From: aQua Date: Mon, 21 Aug 2017 17:17:42 +0800 Subject: [PATCH] =?UTF-8?q?helper=20=E5=B7=B2=E7=BB=8F=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E4=BA=86=E6=89=80=E6=9C=89=E6=B2=A1=E6=9C=89accepted=E9=A2=98?= =?UTF-8?q?=E7=9B=AE=E7=9A=84=E6=96=87=E4=BB=B6=E5=A4=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Algorithms/0044.wildcard-matching/README.md | 31 ------- .../wildcard-matching.go | 2 - .../wildcard-matching_test.go | 46 ---------- Algorithms/0054.spiral-matrix/README.md | 28 ------ .../0054.spiral-matrix/spiral-matrix.go | 2 - .../0054.spiral-matrix/spiral-matrix_test.go | 46 ---------- Algorithms/0055.jump-game/README.md | 29 ------- Algorithms/0055.jump-game/jump-game.go | 2 - Algorithms/0055.jump-game/jump-game_test.go | 46 ---------- Algorithms/0056.merge-intervals/README.md | 19 ---- .../0056.merge-intervals/merge-intervals.go | 2 - .../merge-intervals_test.go | 46 ---------- Algorithms/0057.insert-interval/README.md | 29 ------- .../0057.insert-interval/insert-interval.go | 2 - .../insert-interval_test.go | 46 ---------- Algorithms/0058.length-of-last-word/README.md | 23 ----- .../length-of-last-word.go | 2 - .../length-of-last-word_test.go | 46 ---------- Algorithms/0059.spiral-matrix-ii/README.md | 25 ------ .../0059.spiral-matrix-ii/spiral-matrix-ii.go | 2 - .../spiral-matrix-ii_test.go | 46 ---------- .../0060.permutation-sequence/README.md | 29 ------- .../permutation-sequence.go | 2 - .../permutation-sequence_test.go | 46 ---------- Algorithms/0061.rotate-list/README.md | 17 ---- Algorithms/0061.rotate-list/rotate-list.go | 2 - .../0061.rotate-list/rotate-list_test.go | 46 ---------- Algorithms/0062.unique-paths/README.md | 24 ------ Algorithms/0062.unique-paths/unique-paths.go | 2 - .../0062.unique-paths/unique-paths_test.go | 46 ---------- Algorithms/0063.unique-paths-ii/README.md | 29 ------- .../0063.unique-paths-ii/unique-paths-ii.go | 2 - .../unique-paths-ii_test.go | 46 ---------- Algorithms/0064.minimum-path-sum/README.md | 15 ---- .../0064.minimum-path-sum/minimum-path-sum.go | 2 - .../minimum-path-sum_test.go | 46 ---------- Algorithms/0065.valid-number/README.md | 30 ------- Algorithms/0065.valid-number/valid-number.go | 2 - .../0065.valid-number/valid-number_test.go | 46 ---------- Algorithms/0067.add-binary/README.md | 22 ----- Algorithms/0067.add-binary/add-binary.go | 2 - Algorithms/0067.add-binary/add-binary_test.go | 46 ---------- Algorithms/0068.text-justification/README.md | 58 ------------- .../text-justification.go | 2 - .../text-justification_test.go | 46 ---------- Algorithms/0069.sqrtx/README.md | 15 ---- Algorithms/0069.sqrtx/sqrtx.go | 2 - Algorithms/0069.sqrtx/sqrtx_test.go | 46 ---------- Algorithms/0070.climbing-stairs/README.md | 19 ---- .../0070.climbing-stairs/climbing-stairs.go | 2 - .../climbing-stairs_test.go | 46 ---------- Algorithms/0071.simplify-path/README.md | 31 ------- .../0071.simplify-path/simplify-path.go | 2 - .../0071.simplify-path/simplify-path_test.go | 46 ---------- Algorithms/0072.edit-distance/README.md | 25 ------ .../0072.edit-distance/edit-distance.go | 2 - .../0072.edit-distance/edit-distance_test.go | 46 ---------- Algorithms/0073.set-matrix-zeroes/README.md | 27 ------ .../set-matrix-zeroes.go | 2 - .../set-matrix-zeroes_test.go | 46 ---------- Algorithms/0074.search-a-2d-matrix/README.md | 34 -------- .../search-a-2d-matrix.go | 2 - .../search-a-2d-matrix_test.go | 46 ---------- Algorithms/0075.sort-colors/README.md | 34 -------- Algorithms/0075.sort-colors/sort-colors.go | 2 - .../0075.sort-colors/sort-colors_test.go | 46 ---------- .../0076.minimum-window-substring/README.md | 32 ------- .../minimum-window-substring.go | 2 - .../minimum-window-substring_test.go | 46 ---------- Algorithms/0077.combinations/README.md | 29 ------- Algorithms/0077.combinations/combinations.go | 2 - .../0077.combinations/combinations_test.go | 46 ---------- Algorithms/0078.subsets/README.md | 33 ------- Algorithms/0078.subsets/subsets.go | 2 - Algorithms/0078.subsets/subsets_test.go | 46 ---------- Algorithms/0079.word-search/README.md | 33 ------- Algorithms/0079.word-search/word-search.go | 2 - .../0079.word-search/word-search_test.go | 46 ---------- .../README.md | 23 ----- .../remove-duplicates-from-sorted-array-ii.go | 2 - ...ve-duplicates-from-sorted-array-ii_test.go | 46 ---------- .../README.md | 26 ------ .../search-in-rotated-sorted-array-ii.go | 2 - .../search-in-rotated-sorted-array-ii_test.go | 46 ---------- .../README.md | 20 ----- .../remove-duplicates-from-sorted-list-ii.go | 2 - ...ove-duplicates-from-sorted-list-ii_test.go | 46 ---------- .../README.md | 20 ----- .../remove-duplicates-from-sorted-list.go | 2 - ...remove-duplicates-from-sorted-list_test.go | 46 ---------- .../README.md | 31 ------- .../largest-rectangle-in-histogram.go | 2 - .../largest-rectangle-in-histogram_test.go | 46 ---------- Algorithms/0085.maximal-rectangle/README.md | 24 ------ .../maximal-rectangle.go | 2 - .../maximal-rectangle_test.go | 46 ---------- Algorithms/0086.partition-list/README.md | 22 ----- .../0086.partition-list/partition-list.go | 2 - .../partition-list_test.go | 46 ---------- Algorithms/0087.scramble-string/README.md | 60 ------------- .../0087.scramble-string/scramble-string.go | 2 - .../scramble-string_test.go | 46 ---------- Algorithms/0089.gray-code/README.md | 29 ------- Algorithms/0089.gray-code/gray-code.go | 2 - Algorithms/0089.gray-code/gray-code_test.go | 46 ---------- Algorithms/0090.subsets-ii/README.md | 31 ------- Algorithms/0090.subsets-ii/subsets-ii.go | 2 - Algorithms/0090.subsets-ii/subsets-ii_test.go | 46 ---------- Algorithms/0091.decode-ways/README.md | 35 -------- Algorithms/0091.decode-ways/decode-ways.go | 2 - .../0091.decode-ways/decode-ways_test.go | 46 ---------- .../0092.reverse-linked-list-ii/README.md | 28 ------ .../reverse-linked-list-ii.go | 2 - .../reverse-linked-list-ii_test.go | 46 ---------- .../0093.restore-ip-addresses/README.md | 21 ----- .../restore-ip-addresses.go | 2 - .../restore-ip-addresses_test.go | 46 ---------- .../README.md | 29 ------- .../binary-tree-inorder-traversal.go | 2 - .../binary-tree-inorder-traversal_test.go | 46 ---------- .../README.md | 25 ------ .../unique-binary-search-trees-ii.go | 2 - .../unique-binary-search-trees-ii_test.go | 46 ---------- .../0096.unique-binary-search-trees/README.md | 25 ------ .../unique-binary-search-trees.go | 2 - .../unique-binary-search-trees_test.go | 46 ---------- Algorithms/0097.interleaving-string/README.md | 26 ------ .../interleaving-string.go | 2 - .../interleaving-string_test.go | 46 ---------- .../README.md | 40 --------- .../validate-binary-search-tree.go | 2 - .../validate-binary-search-tree_test.go | 46 ---------- .../0099.recover-binary-search-tree/README.md | 21 ----- .../recover-binary-search-tree.go | 2 - .../recover-binary-search-tree_test.go | 46 ---------- Algorithms/0100.same-tree/README.md | 18 ---- Algorithms/0100.same-tree/same-tree.go | 2 - Algorithms/0100.same-tree/same-tree_test.go | 46 ---------- Algorithms/0101.symmetric-tree/README.md | 37 -------- .../0101.symmetric-tree/symmetric-tree.go | 2 - .../symmetric-tree_test.go | 46 ---------- .../README.md | 33 ------- .../binary-tree-level-order-traversal.go | 2 - .../binary-tree-level-order-traversal_test.go | 46 ---------- .../README.md | 33 ------- ...inary-tree-zigzag-level-order-traversal.go | 2 - ...-tree-zigzag-level-order-traversal_test.go | 46 ---------- .../README.md | 15 ---- .../maximum-depth-of-binary-tree.go | 2 - .../maximum-depth-of-binary-tree_test.go | 46 ---------- .../README.md | 17 ---- ...ree-from-preorder-and-inorder-traversal.go | 2 - ...rom-preorder-and-inorder-traversal_test.go | 46 ---------- .../README.md | 17 ---- ...ee-from-inorder-and-postorder-traversal.go | 2 - ...om-inorder-and-postorder-traversal_test.go | 46 ---------- .../README.md | 33 ------- .../binary-tree-level-order-traversal-ii.go | 2 - ...nary-tree-level-order-traversal-ii_test.go | 46 ---------- .../README.md | 13 --- ...vert-sorted-array-to-binary-search-tree.go | 2 - ...sorted-array-to-binary-search-tree_test.go | 46 ---------- .../README.md | 13 --- ...nvert-sorted-list-to-binary-search-tree.go | 2 - ...-sorted-list-to-binary-search-tree_test.go | 46 ---------- .../0110.balanced-binary-tree/README.md | 18 ---- .../balanced-binary-tree.go | 2 - .../balanced-binary-tree_test.go | 46 ---------- .../README.md | 15 ---- .../minimum-depth-of-binary-tree.go | 2 - .../minimum-depth-of-binary-tree_test.go | 46 ---------- Algorithms/0112.path-sum/README.md | 29 ------- Algorithms/0112.path-sum/path-sum.go | 2 - Algorithms/0112.path-sum/path-sum_test.go | 46 ---------- Algorithms/0113.path-sum-ii/README.md | 35 -------- Algorithms/0113.path-sum-ii/path-sum-ii.go | 2 - .../0113.path-sum-ii/path-sum-ii_test.go | 46 ---------- .../README.md | 46 ---------- .../flatten-binary-tree-to-linked-list.go | 2 - ...flatten-binary-tree-to-linked-list_test.go | 46 ---------- .../0115.distinct-subsequences/README.md | 27 ------ .../distinct-subsequences.go | 2 - .../distinct-subsequences_test.go | 46 ---------- .../README.md | 53 ------------ ...lating-next-right-pointers-in-each-node.go | 2 - ...g-next-right-pointers-in-each-node_test.go | 46 ---------- .../README.md | 37 -------- ...ing-next-right-pointers-in-each-node-ii.go | 2 - ...ext-right-pointers-in-each-node-ii_test.go | 46 ---------- Algorithms/0119.pascals-triangle-ii/README.md | 23 ----- .../pascals-triangle-ii.go | 2 - .../pascals-triangle-ii_test.go | 46 ---------- Algorithms/0120.triangle/README.md | 32 ------- Algorithms/0120.triangle/triangle.go | 2 - Algorithms/0120.triangle/triangle_test.go | 46 ---------- .../README.md | 31 ------- .../best-time-to-buy-and-sell-stock.go | 2 - .../best-time-to-buy-and-sell-stock_test.go | 46 ---------- .../README.md | 15 ---- .../best-time-to-buy-and-sell-stock-ii.go | 2 - ...best-time-to-buy-and-sell-stock-ii_test.go | 46 ---------- .../README.md | 18 ---- .../best-time-to-buy-and-sell-stock-iii.go | 2 - ...est-time-to-buy-and-sell-stock-iii_test.go | 46 ---------- .../README.md | 29 ------- .../binary-tree-maximum-path-sum.go | 2 - .../binary-tree-maximum-path-sum_test.go | 46 ---------- Algorithms/0125.valid-palindrome/README.md | 28 ------ .../0125.valid-palindrome/valid-palindrome.go | 2 - .../valid-palindrome_test.go | 46 ---------- Algorithms/0126.word-ladder-ii/README.md | 53 ------------ .../0126.word-ladder-ii/word-ladder-ii.go | 2 - .../word-ladder-ii_test.go | 46 ---------- Algorithms/0127.word-ladder/README.md | 49 ----------- Algorithms/0127.word-ladder/word-ladder.go | 2 - .../0127.word-ladder/word-ladder_test.go | 46 ---------- .../README.md | 23 ----- .../longest-consecutive-sequence.go | 2 - .../longest-consecutive-sequence_test.go | 46 ---------- .../0129.sum-root-to-leaf-numbers/README.md | 30 ------- .../sum-root-to-leaf-numbers.go | 2 - .../sum-root-to-leaf-numbers_test.go | 46 ---------- Algorithms/0130.surrounded-regions/README.md | 35 -------- .../surrounded-regions.go | 2 - .../surrounded-regions_test.go | 46 ---------- .../0131.palindrome-partitioning/README.md | 28 ------ .../palindrome-partitioning.go | 2 - .../palindrome-partitioning_test.go | 46 ---------- .../0132.palindrome-partitioning-ii/README.md | 22 ----- .../palindrome-partitioning-ii.go | 2 - .../palindrome-partitioning-ii_test.go | 46 ---------- Algorithms/0133.clone-graph/README.md | 53 ------------ Algorithms/0133.clone-graph/clone-graph.go | 2 - .../0133.clone-graph/clone-graph_test.go | 46 ---------- Algorithms/0134.gas-station/README.md | 28 ------ Algorithms/0134.gas-station/gas-station.go | 2 - .../0134.gas-station/gas-station_test.go | 46 ---------- Algorithms/0135.candy/README.md | 25 ------ Algorithms/0135.candy/candy.go | 2 - Algorithms/0135.candy/candy_test.go | 46 ---------- Algorithms/0136.single-number/README.md | 18 ---- .../0136.single-number/single-number.go | 2 - .../0136.single-number/single-number_test.go | 46 ---------- Algorithms/0137.single-number-ii/README.md | 20 ----- .../0137.single-number-ii/single-number-ii.go | 2 - .../single-number-ii_test.go | 46 ---------- .../README.md | 19 ---- .../copy-list-with-random-pointer.go | 2 - .../copy-list-with-random-pointer_test.go | 46 ---------- Algorithms/0139.word-break/README.md | 29 ------- Algorithms/0139.word-break/word-break.go | 2 - Algorithms/0139.word-break/word-break_test.go | 46 ---------- Algorithms/0140.word-break-ii/README.md | 34 -------- .../0140.word-break-ii/word-break-ii.go | 2 - .../0140.word-break-ii/word-break-ii_test.go | 46 ---------- Algorithms/0141.linked-list-cycle/README.md | 20 ----- .../linked-list-cycle.go | 2 - .../linked-list-cycle_test.go | 46 ---------- .../0142.linked-list-cycle-ii/README.md | 23 ----- .../linked-list-cycle-ii.go | 2 - .../linked-list-cycle-ii_test.go | 46 ---------- Algorithms/0143.reorder-list/README.md | 23 ----- Algorithms/0143.reorder-list/reorder-list.go | 2 - .../0143.reorder-list/reorder-list_test.go | 46 ---------- .../README.md | 29 ------- .../binary-tree-preorder-traversal.go | 2 - .../binary-tree-preorder-traversal_test.go | 46 ---------- .../README.md | 29 ------- .../binary-tree-postorder-traversal.go | 2 - .../binary-tree-postorder-traversal_test.go | 46 ---------- Algorithms/0146.lru-cache/README.md | 38 -------- Algorithms/0146.lru-cache/lru-cache.go | 2 - Algorithms/0146.lru-cache/lru-cache_test.go | 46 ---------- Algorithms/0147.insertion-sort-list/README.md | 13 --- .../insertion-sort-list.go | 2 - .../insertion-sort-list_test.go | 46 ---------- Algorithms/0148.sort-list/README.md | 13 --- Algorithms/0148.sort-list/sort-list.go | 2 - Algorithms/0148.sort-list/sort-list_test.go | 46 ---------- .../0149.max-points-on-a-line/README.md | 13 --- .../max-points-on-a-line.go | 2 - .../max-points-on-a-line_test.go | 46 ---------- .../README.md | 26 ------ .../evaluate-reverse-polish-notation.go | 2 - .../evaluate-reverse-polish-notation_test.go | 46 ---------- .../0151.reverse-words-in-a-string/README.md | 42 --------- .../reverse-words-in-a-string.go | 2 - .../reverse-words-in-a-string_test.go | 46 ---------- .../0152.maximum-product-subarray/README.md | 20 ----- .../maximum-product-subarray.go | 2 - .../maximum-product-subarray_test.go | 46 ---------- .../README.md | 19 ---- .../find-minimum-in-rotated-sorted-array.go | 2 - ...nd-minimum-in-rotated-sorted-array_test.go | 46 ---------- .../README.md | 26 ------ ...find-minimum-in-rotated-sorted-array-ii.go | 2 - ...minimum-in-rotated-sorted-array-ii_test.go | 46 ---------- Algorithms/0155.min-stack/README.md | 41 --------- Algorithms/0155.min-stack/min-stack.go | 2 - Algorithms/0155.min-stack/min-stack_test.go | 46 ---------- .../README.md | 33 ------- .../intersection-of-two-linked-lists.go | 2 - .../intersection-of-two-linked-lists_test.go | 46 ---------- Algorithms/0162.find-peak-element/README.md | 29 ------- .../find-peak-element.go | 2 - .../find-peak-element_test.go | 46 ---------- Algorithms/0164.maximum-gap/README.md | 21 ----- Algorithms/0164.maximum-gap/maximum-gap.go | 2 - .../0164.maximum-gap/maximum-gap_test.go | 46 ---------- .../0165.compare-version-numbers/README.md | 23 ----- .../compare-version-numbers.go | 2 - .../compare-version-numbers_test.go | 46 ---------- .../README.md | 25 ------ .../fraction-to-recurring-decimal.go | 2 - .../fraction-to-recurring-decimal_test.go | 46 ---------- .../README.md | 22 ----- .../two-sum-ii-input-array-is-sorted.go | 2 - .../two-sum-ii-input-array-is-sorted_test.go | 46 ---------- .../0168.excel-sheet-column-title/README.md | 24 ------ .../excel-sheet-column-title.go | 2 - .../excel-sheet-column-title_test.go | 46 ---------- Algorithms/0169.majority-element/README.md | 17 ---- .../0169.majority-element/majority-element.go | 2 - .../majority-element_test.go | 46 ---------- .../0171.excel-sheet-column-number/README.md | 25 ------ .../excel-sheet-column-number.go | 2 - .../excel-sheet-column-number_test.go | 46 ---------- .../0172.factorial-trailing-zeroes/README.md | 17 ---- .../factorial-trailing-zeroes.go | 2 - .../factorial-trailing-zeroes_test.go | 46 ---------- .../README.md | 19 ---- .../binary-search-tree-iterator.go | 2 - .../binary-search-tree-iterator_test.go | 46 ---------- Algorithms/0174.dungeon-game/README.md | 62 -------------- Algorithms/0174.dungeon-game/dungeon-game.go | 2 - .../0174.dungeon-game/dungeon-game_test.go | 46 ---------- Algorithms/0179.largest-number/README.md | 19 ---- .../0179.largest-number/largest-number.go | 2 - .../largest-number_test.go | 46 ---------- .../0187.repeated-dna-sequences/README.md | 24 ------ .../repeated-dna-sequences.go | 2 - .../repeated-dna-sequences_test.go | 46 ---------- .../README.md | 20 ----- .../best-time-to-buy-and-sell-stock-iv.go | 2 - ...best-time-to-buy-and-sell-stock-iv_test.go | 46 ---------- Algorithms/0189.rotate-array/README.md | 27 ------ Algorithms/0189.rotate-array/rotate-array.go | 2 - .../0189.rotate-array/rotate-array_test.go | 46 ---------- Algorithms/0190.reverse-bits/README.md | 24 ------ Algorithms/0190.reverse-bits/reverse-bits.go | 2 - .../0190.reverse-bits/reverse-bits_test.go | 46 ---------- Algorithms/0191.number-of-1-bits/README.md | 17 ---- .../0191.number-of-1-bits/number-of-1-bits.go | 2 - .../number-of-1-bits_test.go | 46 ---------- Algorithms/0198.house-robber/README.md | 17 ---- Algorithms/0198.house-robber/house-robber.go | 2 - .../0198.house-robber/house-robber_test.go | 46 ---------- .../README.md | 29 ------- .../binary-tree-right-side-view.go | 2 - .../binary-tree-right-side-view_test.go | 46 ---------- Algorithms/0200.number-of-islands/README.md | 22 ----- .../number-of-islands.go | 2 - .../number-of-islands_test.go | 46 ---------- .../README.md | 19 ---- .../bitwise-and-of-numbers-range.go | 2 - .../bitwise-and-of-numbers-range_test.go | 46 ---------- Algorithms/0202.happy-number/README.md | 26 ------ Algorithms/0202.happy-number/happy-number.go | 2 - .../0202.happy-number/happy-number_test.go | 46 ---------- .../README.md | 20 ----- .../remove-linked-list-elements.go | 2 - .../remove-linked-list-elements_test.go | 46 ---------- Algorithms/0204.count-primes/README.md | 16 ---- Algorithms/0204.count-primes/count-primes.go | 2 - .../0204.count-primes/count-primes_test.go | 46 ---------- Algorithms/0205.isomorphic-strings/README.md | 27 ------ .../isomorphic-strings.go | 2 - .../isomorphic-strings_test.go | 46 ---------- Algorithms/0207.course-schedule/README.md | 44 ---------- .../0207.course-schedule/course-schedule.go | 2 - .../course-schedule_test.go | 46 ---------- .../0208.implement-trie-prefix-tree/README.md | 20 ----- .../implement-trie-prefix-tree.go | 2 - .../implement-trie-prefix-tree_test.go | 46 ---------- .../0209.minimum-size-subarray-sum/README.md | 28 ------ .../minimum-size-subarray-sum.go | 2 - .../minimum-size-subarray-sum_test.go | 46 ---------- Algorithms/0210.course-schedule-ii/README.md | 46 ---------- .../course-schedule-ii.go | 2 - .../course-schedule-ii_test.go | 46 ---------- .../README.md | 42 --------- ...d-and-search-word-data-structure-design.go | 2 - ...-search-word-data-structure-design_test.go | 46 ---------- Algorithms/0212.word-search-ii/README.md | 44 ---------- .../0212.word-search-ii/word-search-ii.go | 2 - .../word-search-ii_test.go | 46 ---------- Algorithms/0213.house-robber-ii/README.md | 19 ---- .../0213.house-robber-ii/house-robber-ii.go | 2 - .../house-robber-ii_test.go | 46 ---------- Algorithms/0214.shortest-palindrome/README.md | 21 ----- .../shortest-palindrome.go | 2 - .../shortest-palindrome_test.go | 46 ---------- .../README.md | 22 ----- .../kth-largest-element-in-an-array.go | 2 - .../kth-largest-element-in-an-array_test.go | 46 ---------- Algorithms/0216.combination-sum-iii/README.md | 31 ------- .../combination-sum-iii.go | 2 - .../combination-sum-iii_test.go | 46 ---------- Algorithms/0217.contains-duplicate/README.md | 15 ---- .../contains-duplicate.go | 2 - .../contains-duplicate_test.go | 46 ---------- Algorithms/0218.the-skyline-problem/README.md | 45 ---------- .../the-skyline-problem.go | 2 - .../the-skyline-problem_test.go | 46 ---------- .../0219.contains-duplicate-ii/README.md | 15 ---- .../contains-duplicate-ii.go | 2 - .../contains-duplicate-ii_test.go | 46 ---------- .../0220.contains-duplicate-iii/README.md | 15 ---- .../contains-duplicate-iii.go | 2 - .../contains-duplicate-iii_test.go | 46 ---------- Algorithms/0221.maximal-square/README.md | 26 ------ .../0221.maximal-square/maximal-square.go | 2 - .../maximal-square_test.go | 46 ---------- .../0222.count-complete-tree-nodes/README.md | 16 ---- .../count-complete-tree-nodes.go | 2 - .../count-complete-tree-nodes_test.go | 46 ---------- Algorithms/0223.rectangle-area/README.md | 22 ----- .../0223.rectangle-area/rectangle-area.go | 2 - .../rectangle-area_test.go | 46 ---------- Algorithms/0224.basic-calculator/README.md | 28 ------ .../0224.basic-calculator/basic-calculator.go | 2 - .../basic-calculator_test.go | 46 ---------- .../README.md | 37 -------- .../implement-stack-using-queues.go | 2 - .../implement-stack-using-queues_test.go | 46 ---------- Algorithms/0226.invert-binary-tree/README.md | 29 ------- .../invert-binary-tree.go | 2 - .../invert-binary-tree_test.go | 46 ---------- Algorithms/0227.basic-calculator-ii/README.md | 30 ------- .../basic-calculator-ii.go | 2 - .../basic-calculator-ii_test.go | 46 ---------- Algorithms/0228.summary-ranges/README.md | 20 ----- .../0228.summary-ranges/summary-ranges.go | 2 - .../summary-ranges_test.go | 46 ---------- Algorithms/0229.majority-element-ii/README.md | 13 --- .../majority-element-ii.go | 2 - .../majority-element-ii_test.go | 46 ---------- .../README.md | 21 ----- .../kth-smallest-element-in-a-bst.go | 2 - .../kth-smallest-element-in-a-bst_test.go | 46 ---------- Algorithms/0231.power-of-two/README.md | 17 ---- Algorithms/0231.power-of-two/power-of-two.go | 2 - .../0231.power-of-two/power-of-two_test.go | 46 ---------- .../README.md | 35 -------- .../implement-queue-using-stacks.go | 2 - .../implement-queue-using-stacks_test.go | 46 ---------- Algorithms/0233.number-of-digit-one/README.md | 19 ---- .../number-of-digit-one.go | 2 - .../number-of-digit-one_test.go | 46 ---------- .../0234.palindrome-linked-list/README.md | 16 ---- .../palindrome-linked-list.go | 2 - .../palindrome-linked-list_test.go | 46 ---------- .../README.md | 31 ------- ...common-ancestor-of-a-binary-search-tree.go | 2 - ...n-ancestor-of-a-binary-search-tree_test.go | 46 ---------- .../README.md | 31 ------- ...lowest-common-ancestor-of-a-binary-tree.go | 2 - ...t-common-ancestor-of-a-binary-tree_test.go | 46 ---------- .../README.md | 19 ---- .../delete-node-in-a-linked-list.go | 2 - .../delete-node-in-a-linked-list_test.go | 46 ---------- .../README.md | 21 ----- .../product-of-array-except-self.go | 2 - .../product-of-array-except-self_test.go | 46 ---------- .../0239.sliding-window-maximum/README.md | 34 -------- .../sliding-window-maximum.go | 2 - .../sliding-window-maximum_test.go | 46 ---------- .../0240.search-a-2d-matrix-ii/README.md | 37 -------- .../search-a-2d-matrix-ii.go | 2 - .../search-a-2d-matrix-ii_test.go | 46 ---------- .../README.md | 30 ------- .../different-ways-to-add-parentheses.go | 2 - .../different-ways-to-add-parentheses_test.go | 46 ---------- Algorithms/0242.valid-anagram/README.md | 24 ------ .../0242.valid-anagram/valid-anagram.go | 2 - .../0242.valid-anagram/valid-anagram_test.go | 46 ---------- Algorithms/0257.binary-tree-paths/README.md | 32 ------- .../binary-tree-paths.go | 2 - .../binary-tree-paths_test.go | 46 ---------- Algorithms/0258.add-digits/README.md | 28 ------ Algorithms/0258.add-digits/add-digits.go | 2 - Algorithms/0258.add-digits/add-digits_test.go | 46 ---------- Algorithms/0260.single-number-iii/README.md | 30 ------- .../single-number-iii.go | 2 - .../single-number-iii_test.go | 46 ---------- Algorithms/0263.ugly-number/README.md | 25 ------ Algorithms/0263.ugly-number/ugly-number.go | 2 - .../0263.ugly-number/ugly-number_test.go | 46 ---------- Algorithms/0264.ugly-number-ii/README.md | 25 ------ .../0264.ugly-number-ii/ugly-number-ii.go | 2 - .../ugly-number-ii_test.go | 46 ---------- Algorithms/0268.missing-number/README.md | 26 ------ .../0268.missing-number/missing-number.go | 2 - .../missing-number_test.go | 46 ---------- .../0273.integer-to-english-words/README.md | 20 ----- .../integer-to-english-words.go | 2 - .../integer-to-english-words_test.go | 46 ---------- Algorithms/0274.h-index/README.md | 29 ------- Algorithms/0274.h-index/h-index.go | 2 - Algorithms/0274.h-index/h-index_test.go | 46 ---------- Algorithms/0275.h-index-ii/README.md | 15 ---- Algorithms/0275.h-index-ii/h-index-ii.go | 2 - Algorithms/0275.h-index-ii/h-index-ii_test.go | 46 ---------- Algorithms/0278.first-bad-version/README.md | 25 ------ .../first-bad-version.go | 2 - .../first-bad-version_test.go | 46 ---------- Algorithms/0279.perfect-squares/README.md | 21 ----- .../0279.perfect-squares/perfect-squares.go | 2 - .../perfect-squares_test.go | 46 ---------- .../0282.expression-add-operators/README.md | 25 ------ .../expression-add-operators.go | 2 - .../expression-add-operators_test.go | 46 ---------- Algorithms/0283.move-zeroes/README.md | 29 ------- Algorithms/0283.move-zeroes/move-zeroes.go | 2 - .../0283.move-zeroes/move-zeroes_test.go | 46 ---------- Algorithms/0284.peeking-iterator/README.md | 27 ------ .../0284.peeking-iterator/peeking-iterator.go | 2 - .../peeking-iterator_test.go | 46 ---------- .../0287.find-the-duplicate-number/README.md | 27 ------ .../find-the-duplicate-number.go | 2 - .../find-the-duplicate-number_test.go | 46 ---------- Algorithms/0289.game-of-life/README.md | 41 --------- Algorithms/0289.game-of-life/game-of-life.go | 2 - .../0289.game-of-life/game-of-life_test.go | 46 ---------- Algorithms/0290.word-pattern/README.md | 30 ------- Algorithms/0290.word-pattern/word-pattern.go | 2 - .../0290.word-pattern/word-pattern_test.go | 46 ---------- Algorithms/0292.nim-game/README.md | 25 ------ Algorithms/0292.nim-game/nim-game.go | 2 - Algorithms/0292.nim-game/nim-game_test.go | 46 ---------- .../README.md | 35 -------- .../find-median-from-data-stream.go | 2 - .../find-median-from-data-stream_test.go | 46 ---------- .../README.md | 32 ------- .../serialize-and-deserialize-binary-tree.go | 2 - ...ialize-and-deserialize-binary-tree_test.go | 46 ---------- Algorithms/0299.bulls-and-cows/README.md | 34 -------- .../0299.bulls-and-cows/bulls-and-cows.go | 2 - .../bulls-and-cows_test.go | 46 ---------- .../README.md | 27 ------ .../longest-increasing-subsequence.go | 2 - .../longest-increasing-subsequence_test.go | 46 ---------- .../0301.remove-invalid-parentheses/README.md | 27 ------ .../remove-invalid-parentheses.go | 2 - .../remove-invalid-parentheses_test.go | 46 ---------- .../0303.range-sum-query-immutable/README.md | 29 ------- .../range-sum-query-immutable.go | 2 - .../range-sum-query-immutable_test.go | 46 ---------- .../README.md | 41 --------- .../range-sum-query-2d-immutable.go | 2 - .../range-sum-query-2d-immutable_test.go | 46 ---------- Algorithms/0306.additive-number/README.md | 36 -------- .../0306.additive-number/additive-number.go | 2 - .../additive-number_test.go | 46 ---------- .../0307.range-sum-query-mutable/README.md | 31 ------- .../range-sum-query-mutable.go | 2 - .../range-sum-query-mutable_test.go | 46 ---------- .../README.md | 29 ------- ...ime-to-buy-and-sell-stock-with-cooldown.go | 2 - ...o-buy-and-sell-stock-with-cooldown_test.go | 46 ---------- .../0310.minimum-height-trees/README.md | 76 ---------------- .../minimum-height-trees.go | 2 - .../minimum-height-trees_test.go | 46 ---------- Algorithms/0312.burst-balloons/README.md | 45 ---------- .../0312.burst-balloons/burst-balloons.go | 2 - .../burst-balloons_test.go | 46 ---------- Algorithms/0313.super-ugly-number/README.md | 32 ------- .../super-ugly-number.go | 2 - .../super-ugly-number_test.go | 46 ---------- .../README.md | 31 ------- .../count-of-smaller-numbers-after-self.go | 2 - ...ount-of-smaller-numbers-after-self_test.go | 46 ---------- .../0316.remove-duplicate-letters/README.md | 29 ------- .../remove-duplicate-letters.go | 2 - .../remove-duplicate-letters_test.go | 46 ---------- .../README.md | 44 ---------- .../maximum-product-of-word-lengths.go | 2 - .../maximum-product-of-word-lengths_test.go | 46 ---------- Algorithms/0319.bulb-switcher/README.md | 27 ------ .../0319.bulb-switcher/bulb-switcher.go | 2 - .../0319.bulb-switcher/bulb-switcher_test.go | 46 ---------- .../0321.create-maximum-number/README.md | 47 ---------- .../create-maximum-number.go | 2 - .../create-maximum-number_test.go | 46 ---------- Algorithms/0322.coin-change/README.md | 34 -------- Algorithms/0322.coin-change/coin-change.go | 2 - .../0322.coin-change/coin-change_test.go | 46 ---------- Algorithms/0324.wiggle-sort-ii/README.md | 34 -------- .../0324.wiggle-sort-ii/wiggle-sort-ii.go | 2 - .../wiggle-sort-ii_test.go | 46 ---------- Algorithms/0326.power-of-three/README.md | 21 ----- .../0326.power-of-three/power-of-three.go | 2 - .../power-of-three_test.go | 46 ---------- Algorithms/0327.count-of-range-sum/README.md | 31 ------- .../count-of-range-sum.go | 2 - .../count-of-range-sum_test.go | 46 ---------- .../0328.odd-even-linked-list/README.md | 28 ------ .../odd-even-linked-list.go | 2 - .../odd-even-linked-list_test.go | 46 ---------- .../README.md | 48 ----------- .../longest-increasing-path-in-a-matrix.go | 2 - ...ongest-increasing-path-in-a-matrix_test.go | 46 ---------- Algorithms/0330.patching-array/README.md | 34 -------- .../0330.patching-array/patching-array.go | 2 - .../patching-array_test.go | 46 ---------- .../README.md | 43 ---------- ...preorder-serialization-of-a-binary-tree.go | 2 - ...der-serialization-of-a-binary-tree_test.go | 46 ---------- .../0332.reconstruct-itinerary/README.md | 36 -------- .../reconstruct-itinerary.go | 2 - .../reconstruct-itinerary_test.go | 46 ---------- .../README.md | 36 -------- .../increasing-triplet-subsequence.go | 2 - .../increasing-triplet-subsequence_test.go | 46 ---------- Algorithms/0335.self-crossing/README.md | 59 ------------- .../0335.self-crossing/self-crossing.go | 2 - .../0335.self-crossing/self-crossing_test.go | 46 ---------- Algorithms/0336.palindrome-pairs/README.md | 30 ------- .../0336.palindrome-pairs/palindrome-pairs.go | 2 - .../palindrome-pairs_test.go | 46 ---------- Algorithms/0337.house-robber-iii/README.md | 41 --------- .../0337.house-robber-iii/house-robber-iii.go | 2 - .../house-robber-iii_test.go | 46 ---------- Algorithms/0338.counting-bits/README.md | 28 ------ .../0338.counting-bits/counting-bits.go | 2 - .../0338.counting-bits/counting-bits_test.go | 46 ---------- .../README.md | 29 ------- .../flatten-nested-list-iterator.go | 2 - .../flatten-nested-list-iterator_test.go | 46 ---------- Algorithms/0342.power-of-four/README.md | 23 ----- .../0342.power-of-four/power-of-four.go | 2 - .../0342.power-of-four/power-of-four_test.go | 46 ---------- Algorithms/0343.integer-break/README.md | 25 ------ .../0343.integer-break/integer-break.go | 2 - .../0343.integer-break/integer-break_test.go | 46 ---------- Algorithms/0344.reverse-string/README.md | 18 ---- .../0344.reverse-string/reverse-string.go | 2 - .../reverse-string_test.go | 46 ---------- .../0345.reverse-vowels-of-a-string/README.md | 28 ------ .../reverse-vowels-of-a-string.go | 2 - .../reverse-vowels-of-a-string_test.go | 46 ---------- .../0347.top-k-frequent-elements/README.md | 24 ------ .../top-k-frequent-elements.go | 2 - .../top-k-frequent-elements_test.go | 46 ---------- .../0349.intersection-of-two-arrays/README.md | 26 ------ .../intersection-of-two-arrays.go | 2 - .../intersection-of-two-arrays_test.go | 46 ---------- .../README.md | 34 -------- .../intersection-of-two-arrays-ii.go | 2 - .../intersection-of-two-arrays-ii_test.go | 46 ---------- .../README.md | 27 ------ .../data-stream-as-disjoint-intervals.go | 2 - .../data-stream-as-disjoint-intervals_test.go | 46 ---------- .../0354.russian-doll-envelopes/README.md | 21 ----- .../russian-doll-envelopes.go | 2 - .../russian-doll-envelopes_test.go | 46 ---------- Algorithms/0355.design-twitter/README.md | 50 ----------- .../0355.design-twitter/design-twitter.go | 2 - .../design-twitter_test.go | 46 ---------- .../README.md | 20 ----- .../count-numbers-with-unique-digits.go | 2 - .../count-numbers-with-unique-digits_test.go | 46 ---------- .../README.md | 33 ------- .../max-sum-of-rectangle-no-larger-than-k.go | 2 - ...-sum-of-rectangle-no-larger-than-k_test.go | 46 ---------- .../0365.water-and-jug-problem/README.md | 39 --------- .../water-and-jug-problem.go | 2 - .../water-and-jug-problem_test.go | 46 ---------- .../0367.valid-perfect-square/README.md | 31 ------- .../valid-perfect-square.go | 2 - .../valid-perfect-square_test.go | 46 ---------- .../0368.largest-divisible-subset/README.md | 34 -------- .../largest-divisible-subset.go | 2 - .../largest-divisible-subset_test.go | 46 ---------- Algorithms/0371.sum-of-two-integers/README.md | 19 ---- .../sum-of-two-integers.go | 2 - .../sum-of-two-integers_test.go | 46 ---------- Algorithms/0372.super-pow/README.md | 33 ------- Algorithms/0372.super-pow/super-pow.go | 2 - Algorithms/0372.super-pow/super-pow_test.go | 46 ---------- .../README.md | 52 ----------- .../find-k-pairs-with-smallest-sums.go | 2 - .../find-k-pairs-with-smallest-sums_test.go | 46 ---------- .../README.md | 30 ------- .../guess-number-higher-or-lower.go | 2 - .../guess-number-higher-or-lower_test.go | 46 ---------- .../README.md | 37 -------- .../guess-number-higher-or-lower-ii.go | 2 - .../guess-number-higher-or-lower-ii_test.go | 46 ---------- Algorithms/0376.wiggle-subsequence/README.md | 37 -------- .../wiggle-subsequence.go | 2 - .../wiggle-subsequence_test.go | 46 ---------- Algorithms/0377.combination-sum-iv/README.md | 39 --------- .../combination-sum-iv.go | 2 - .../combination-sum-iv_test.go | 46 ---------- .../README.md | 32 ------- ...kth-smallest-element-in-a-sorted-matrix.go | 2 - ...mallest-element-in-a-sorted-matrix_test.go | 46 ---------- .../0380.insert-delete-getrandom-o1/README.md | 48 ----------- .../insert-delete-getrandom-o1.go | 2 - .../insert-delete-getrandom-o1_test.go | 46 ---------- .../README.md | 45 ---------- ...-delete-getrandom-o1-duplicates-allowed.go | 2 - ...te-getrandom-o1-duplicates-allowed_test.go | 46 ---------- .../0382.linked-list-random-node/README.md | 29 ------- .../linked-list-random-node.go | 2 - .../linked-list-random-node_test.go | 46 ---------- Algorithms/0383.ransom-note/README.md | 29 ------- Algorithms/0383.ransom-note/ransom-note.go | 2 - .../0383.ransom-note/ransom-note_test.go | 46 ---------- Algorithms/0384.shuffle-an-array/README.md | 30 ------- .../0384.shuffle-an-array/shuffle-an-array.go | 2 - .../shuffle-an-array_test.go | 46 ---------- Algorithms/0385.mini-parser/README.md | 44 ---------- Algorithms/0385.mini-parser/mini-parser.go | 2 - .../0385.mini-parser/mini-parser_test.go | 46 ---------- .../0386.lexicographical-numbers/README.md | 23 ----- .../lexicographical-numbers.go | 2 - .../lexicographical-numbers_test.go | 46 ---------- .../README.md | 27 ------ .../first-unique-character-in-a-string.go | 2 - ...first-unique-character-in-a-string_test.go | 46 ---------- .../0388.longest-absolute-file-path/README.md | 51 ----------- .../longest-absolute-file-path.go | 2 - .../longest-absolute-file-path_test.go | 46 ---------- Algorithms/0389.find-the-difference/README.md | 30 ------- .../find-the-difference.go | 2 - .../find-the-difference_test.go | 46 ---------- Algorithms/0390.elimination-game/README.md | 33 ------- .../0390.elimination-game/elimination-game.go | 2 - .../elimination-game_test.go | 46 ---------- Algorithms/0391.perfect-rectangle/README.md | 80 ----------------- .../perfect-rectangle.go | 2 - .../perfect-rectangle_test.go | 46 ---------- Algorithms/0392.is-subsequence/README.md | 42 --------- .../0392.is-subsequence/is-subsequence.go | 2 - .../is-subsequence_test.go | 46 ---------- Algorithms/0393.utf-8-validation/README.md | 54 ------------ .../0393.utf-8-validation/utf-8-validation.go | 2 - .../utf-8-validation_test.go | 46 ---------- Algorithms/0394.decode-string/README.md | 30 ------- .../0394.decode-string/decode-string.go | 2 - .../0394.decode-string/decode-string_test.go | 46 ---------- .../README.md | 37 -------- ...ng-with-at-least-k-repeating-characters.go | 2 - ...th-at-least-k-repeating-characters_test.go | 46 ---------- Algorithms/0396.rotate-function/README.md | 41 --------- .../0396.rotate-function/rotate-function.go | 2 - .../rotate-function_test.go | 46 ---------- Algorithms/0397.integer-replacement/README.md | 54 ------------ .../integer-replacement.go | 2 - .../integer-replacement_test.go | 46 ---------- Algorithms/0398.random-pick-index/README.md | 32 ------- .../random-pick-index.go | 2 - .../random-pick-index_test.go | 46 ---------- Algorithms/0399.evaluate-division/README.md | 31 ------- .../evaluate-division.go | 2 - .../evaluate-division_test.go | 46 ---------- Algorithms/0400.nth-digit/README.md | 38 -------- Algorithms/0400.nth-digit/nth-digit.go | 2 - Algorithms/0400.nth-digit/nth-digit_test.go | 46 ---------- Algorithms/0401.binary-watch/README.md | 30 ------- Algorithms/0401.binary-watch/binary-watch.go | 2 - .../0401.binary-watch/binary-watch_test.go | 46 ---------- Algorithms/0402.remove-k-digits/README.md | 43 ---------- .../0402.remove-k-digits/remove-k-digits.go | 2 - .../remove-k-digits_test.go | 46 ---------- Algorithms/0403.frog-jump/README.md | 49 ----------- Algorithms/0403.frog-jump/frog-jump.go | 2 - Algorithms/0403.frog-jump/frog-jump_test.go | 46 ---------- Algorithms/0404.sum-of-left-leaves/README.md | 24 ------ .../sum-of-left-leaves.go | 2 - .../sum-of-left-leaves_test.go | 46 ---------- .../README.md | 42 --------- .../convert-a-number-to-hexadecimal.go | 2 - .../convert-a-number-to-hexadecimal_test.go | 46 ---------- .../README.md | 27 ------ .../queue-reconstruction-by-height.go | 2 - .../queue-reconstruction-by-height_test.go | 46 ---------- .../0407.trapping-rain-water-ii/README.md | 40 --------- .../trapping-rain-water-ii.go | 2 - .../trapping-rain-water-ii_test.go | 46 ---------- Algorithms/0409.longest-palindrome/README.md | 31 ------- .../longest-palindrome.go | 2 - .../longest-palindrome_test.go | 46 ---------- .../0410.split-array-largest-sum/README.md | 37 -------- .../split-array-largest-sum.go | 2 - .../split-array-largest-sum_test.go | 46 ---------- Algorithms/0412.fizz-buzz/README.md | 39 --------- Algorithms/0412.fizz-buzz/fizz-buzz.go | 2 - Algorithms/0412.fizz-buzz/fizz-buzz_test.go | 46 ---------- Algorithms/0413.arithmetic-slices/README.md | 35 -------- .../arithmetic-slices.go | 2 - .../arithmetic-slices_test.go | 46 ---------- Algorithms/0415.add-strings/README.md | 22 ----- Algorithms/0415.add-strings/add-strings.go | 2 - .../0415.add-strings/add-strings_test.go | 46 ---------- .../0416.partition-equal-subset-sum/README.md | 39 --------- .../partition-equal-subset-sum.go | 2 - .../partition-equal-subset-sum_test.go | 46 ---------- .../README.md | 40 --------- .../pacific-atlantic-water-flow.go | 2 - .../pacific-atlantic-water-flow_test.go | 46 ---------- .../0419.battleships-in-a-board/README.md | 35 -------- .../battleships-in-a-board.go | 2 - .../battleships-in-a-board_test.go | 46 ---------- .../0420.strong-password-checker/README.md | 23 ----- .../strong-password-checker.go | 2 - .../strong-password-checker_test.go | 46 ---------- .../README.md | 26 ------ .../maximum-xor-of-two-numbers-in-an-array.go | 2 - ...mum-xor-of-two-numbers-in-an-array_test.go | 46 ---------- .../README.md | 35 -------- ...econstruct-original-digits-from-english.go | 2 - ...truct-original-digits-from-english_test.go | 46 ---------- .../README.md | 44 ---------- ...longest-repeating-character-replacement.go | 2 - ...st-repeating-character-replacement_test.go | 46 ---------- .../0432.all-oone-data-structure/README.md | 26 ------ .../all-oone-data-structure.go | 2 - .../all-oone-data-structure_test.go | 46 ---------- .../README.md | 21 ----- .../number-of-segments-in-a-string.go | 2 - .../number-of-segments-in-a-string_test.go | 46 ---------- .../0435.non-overlapping-intervals/README.md | 49 ----------- .../non-overlapping-intervals.go | 2 - .../non-overlapping-intervals_test.go | 46 ---------- Algorithms/0436.find-right-interval/README.md | 56 ------------ .../find-right-interval.go | 2 - .../find-right-interval_test.go | 46 ---------- Algorithms/0437.path-sum-iii/README.md | 39 --------- Algorithms/0437.path-sum-iii/path-sum-iii.go | 2 - .../0437.path-sum-iii/path-sum-iii_test.go | 46 ---------- .../README.md | 44 ---------- .../find-all-anagrams-in-a-string.go | 2 - .../find-all-anagrams-in-a-string_test.go | 46 ---------- .../README.md | 28 ------ .../k-th-smallest-in-lexicographical-order.go | 2 - ...-smallest-in-lexicographical-order_test.go | 46 ---------- Algorithms/0441.arranging-coins/README.md | 42 --------- .../0441.arranging-coins/arranging-coins.go | 2 - .../arranging-coins_test.go | 46 ---------- .../README.md | 25 ------ .../find-all-duplicates-in-an-array.go | 2 - .../find-all-duplicates-in-an-array_test.go | 46 ---------- Algorithms/0445.add-two-numbers-ii/README.md | 26 ------ .../add-two-numbers-ii.go | 2 - .../add-two-numbers-ii_test.go | 46 ---------- .../README.md | 47 ---------- .../arithmetic-slices-ii-subsequence.go | 2 - .../arithmetic-slices-ii-subsequence_test.go | 46 ---------- .../0447.number-of-boomerangs/README.md | 27 ------ .../number-of-boomerangs.go | 2 - .../number-of-boomerangs_test.go | 46 ---------- .../README.md | 23 ----- .../serialize-and-deserialize-bst.go | 2 - .../serialize-and-deserialize-bst_test.go | 46 ---------- .../0450.delete-node-in-a-bst/README.md | 52 ----------- .../delete-node-in-a-bst.go | 2 - .../delete-node-in-a-bst_test.go | 46 ---------- .../README.md | 52 ----------- .../sort-characters-by-frequency.go | 2 - .../sort-characters-by-frequency_test.go | 46 ---------- .../README.md | 27 ------ ...imum-number-of-arrows-to-burst-balloons.go | 2 - ...number-of-arrows-to-burst-balloons_test.go | 46 ---------- .../README.md | 27 ------ .../minimum-moves-to-equal-array-elements.go | 2 - ...imum-moves-to-equal-array-elements_test.go | 46 ---------- Algorithms/0454.4sum-ii/4sum-ii.go | 2 - Algorithms/0454.4sum-ii/4sum-ii_test.go | 46 ---------- Algorithms/0454.4sum-ii/README.md | 32 ------- Algorithms/0455.assign-cookies/README.md | 42 --------- .../0455.assign-cookies/assign-cookies.go | 2 - .../assign-cookies_test.go | 46 ---------- Algorithms/0456.132-pattern/132-pattern.go | 2 - .../0456.132-pattern/132-pattern_test.go | 46 ---------- Algorithms/0456.132-pattern/README.md | 44 ---------- .../0459.repeated-substring-pattern/README.md | 38 -------- .../repeated-substring-pattern.go | 2 - .../repeated-substring-pattern_test.go | 46 ---------- Algorithms/0460.lfu-cache/README.md | 38 -------- Algorithms/0460.lfu-cache/lfu-cache.go | 2 - Algorithms/0460.lfu-cache/lfu-cache_test.go | 46 ---------- Algorithms/0461.hamming-distance/README.md | 33 ------- .../0461.hamming-distance/hamming-distance.go | 2 - .../hamming-distance_test.go | 46 ---------- .../README.md | 29 ------- ...inimum-moves-to-equal-array-elements-ii.go | 2 - ...m-moves-to-equal-array-elements-ii_test.go | 46 ---------- Algorithms/0463.island-perimeter/README.md | 25 ------ .../0463.island-perimeter/island-perimeter.go | 2 - .../island-perimeter_test.go | 46 ---------- Algorithms/0464.can-i-win/README.md | 39 --------- Algorithms/0464.can-i-win/can-i-win.go | 2 - Algorithms/0464.can-i-win/can-i-win_test.go | 46 ---------- .../0466.count-the-repetitions/README.md | 25 ------ .../count-the-repetitions.go | 2 - .../count-the-repetitions_test.go | 46 ---------- .../README.md | 39 --------- .../unique-substrings-in-wraparound-string.go | 2 - ...ue-substrings-in-wraparound-string_test.go | 46 ---------- Algorithms/0468.validate-ip-address/README.md | 69 --------------- .../validate-ip-address.go | 2 - .../validate-ip-address_test.go | 46 ---------- Algorithms/0472.concatenated-words/README.md | 32 ------- .../concatenated-words.go | 2 - .../concatenated-words_test.go | 46 ---------- .../0473.matchsticks-to-square/README.md | 38 -------- .../matchsticks-to-square.go | 2 - .../matchsticks-to-square_test.go | 46 ---------- Algorithms/0474.ones-and-zeroes/README.md | 42 --------- .../0474.ones-and-zeroes/ones-and-zeroes.go | 2 - .../ones-and-zeroes_test.go | 46 ---------- Algorithms/0475.heaters/README.md | 40 --------- Algorithms/0475.heaters/heaters.go | 2 - Algorithms/0475.heaters/heaters_test.go | 46 ---------- Algorithms/0476.number-complement/README.md | 34 -------- .../number-complement.go | 2 - .../number-complement_test.go | 46 ---------- .../0477.total-hamming-distance/README.md | 34 -------- .../total-hamming-distance.go | 2 - .../total-hamming-distance_test.go | 46 ---------- .../0479.largest-palindrome-product/README.md | 27 ------ .../largest-palindrome-product.go | 2 - .../largest-palindrome-product_test.go | 46 ---------- .../0480.sliding-window-median/README.md | 36 -------- .../sliding-window-median.go | 2 - .../sliding-window-median_test.go | 46 ---------- Algorithms/0481.magical-string/README.md | 56 ------------ .../0481.magical-string/magical-string.go | 2 - .../magical-string_test.go | 46 ---------- .../0482.license-key-formatting/README.md | 45 ---------- .../license-key-formatting.go | 2 - .../license-key-formatting_test.go | 46 ---------- Algorithms/0483.smallest-good-base/README.md | 42 --------- .../smallest-good-base.go | 2 - .../smallest-good-base_test.go | 46 ---------- Algorithms/0486.predict-the-winner/README.md | 37 -------- .../predict-the-winner.go | 2 - .../predict-the-winner_test.go | 46 ---------- Algorithms/0488.zuma-game/README.md | 45 ---------- Algorithms/0488.zuma-game/zuma-game.go | 2 - Algorithms/0488.zuma-game/zuma-game_test.go | 46 ---------- .../0491.increasing-subsequences/README.md | 29 ------- .../increasing-subsequences.go | 2 - .../increasing-subsequences_test.go | 46 ---------- .../0492.construct-the-rectangle/README.md | 35 -------- .../construct-the-rectangle.go | 2 - .../construct-the-rectangle_test.go | 46 ---------- Algorithms/0493.reverse-pairs/README.md | 32 ------- .../0493.reverse-pairs/reverse-pairs.go | 2 - .../0493.reverse-pairs/reverse-pairs_test.go | 46 ---------- Algorithms/0494.target-sum/README.md | 41 --------- Algorithms/0494.target-sum/target-sum.go | 2 - Algorithms/0494.target-sum/target-sum_test.go | 46 ---------- Algorithms/0495.teemo-attacking/README.md | 40 --------- .../0495.teemo-attacking/teemo-attacking.go | 2 - .../teemo-attacking_test.go | 46 ---------- .../0496.next-greater-element-i/README.md | 46 ---------- .../next-greater-element-i.go | 2 - .../next-greater-element-i_test.go | 46 ---------- Algorithms/0498.diagonal-traverse/README.md | 34 -------- .../diagonal-traverse.go | 2 - .../diagonal-traverse_test.go | 46 ---------- Algorithms/0500.keyboard-row/README.md | 32 ------- Algorithms/0500.keyboard-row/keyboard-row.go | 2 - .../0500.keyboard-row/keyboard-row_test.go | 46 ---------- .../README.md | 44 ---------- .../find-mode-in-binary-search-tree.go | 2 - .../find-mode-in-binary-search-tree_test.go | 46 ---------- Algorithms/0502.ipo/README.md | 44 ---------- Algorithms/0502.ipo/ipo.go | 2 - Algorithms/0502.ipo/ipo_test.go | 46 ---------- .../0503.next-greater-element-ii/README.md | 26 ------ .../next-greater-element-ii.go | 2 - .../next-greater-element-ii_test.go | 46 ---------- Algorithms/0504.base-7/README.md | 29 ------- Algorithms/0504.base-7/base-7.go | 2 - Algorithms/0504.base-7/base-7_test.go | 46 ---------- Algorithms/0506.relative-ranks/README.md | 29 ------- .../0506.relative-ranks/relative-ranks.go | 2 - .../relative-ranks_test.go | 46 ---------- Algorithms/0507.perfect-number/README.md | 27 ------ .../0507.perfect-number/perfect-number.go | 2 - .../perfect-number_test.go | 46 ---------- .../0508.most-frequent-subtree-sum/README.md | 37 -------- .../most-frequent-subtree-sum.go | 2 - .../most-frequent-subtree-sum_test.go | 46 ---------- .../README.md | 47 ---------- .../find-bottom-left-tree-value.go | 2 - .../find-bottom-left-tree-value_test.go | 46 ---------- Algorithms/0514.freedom-trail/README.md | 49 ----------- .../0514.freedom-trail/freedom-trail.go | 2 - .../0514.freedom-trail/freedom-trail_test.go | 46 ---------- .../README.md | 27 ------ .../find-largest-value-in-each-tree-row.go | 2 - ...ind-largest-value-in-each-tree-row_test.go | 46 ---------- .../README.md | 35 -------- .../longest-palindromic-subsequence.go | 2 - .../longest-palindromic-subsequence_test.go | 46 ---------- .../0517.super-washing-machines/README.md | 57 ------------ .../super-washing-machines.go | 2 - .../super-washing-machines_test.go | 46 ---------- Algorithms/0520.detect-capital/README.md | 42 --------- .../0520.detect-capital/detect-capital.go | 2 - .../detect-capital_test.go | 46 ---------- .../README.md | 38 -------- .../longest-uncommon-subsequence-i.go | 2 - .../longest-uncommon-subsequence-i_test.go | 46 ---------- .../README.md | 36 -------- .../longest-uncommon-subsequence-ii.go | 2 - .../longest-uncommon-subsequence-ii_test.go | 46 ---------- .../0523.continuous-subarray-sum/README.md | 38 -------- .../continuous-subarray-sum.go | 2 - .../continuous-subarray-sum_test.go | 46 ---------- .../README.md | 41 --------- ...est-word-in-dictionary-through-deleting.go | 2 - ...ord-in-dictionary-through-deleting_test.go | 46 ---------- Algorithms/0525.contiguous-array/README.md | 32 ------- .../0525.contiguous-array/contiguous-array.go | 2 - .../contiguous-array_test.go | 46 ---------- .../0526.beautiful-arrangement/README.md | 42 --------- .../beautiful-arrangement.go | 2 - .../beautiful-arrangement_test.go | 46 ---------- Algorithms/0529.minesweeper/README.md | 81 ------------------ Algorithms/0529.minesweeper/minesweeper.go | 2 - .../0529.minesweeper/minesweeper_test.go | 46 ---------- .../README.md | 36 -------- .../minimum-absolute-difference-in-bst.go | 2 - ...minimum-absolute-difference-in-bst_test.go | 46 ---------- .../0535.encode-and-decode-tinyurl/README.md | 17 ---- .../encode-and-decode-tinyurl.go | 2 - .../encode-and-decode-tinyurl_test.go | 46 ---------- .../README.md | 39 --------- .../complex-number-multiplication.go | 2 - .../complex-number-multiplication_test.go | 46 ---------- .../README.md | 27 ------ .../convert-bst-to-greater-tree.go | 2 - .../convert-bst-to-greater-tree_test.go | 46 ---------- .../0539.minimum-time-difference/README.md | 26 ------ .../minimum-time-difference.go | 2 - .../minimum-time-difference_test.go | 46 ---------- .../README.md | 32 ------- .../single-element-in-a-sorted-array.go | 2 - .../single-element-in-a-sorted-array_test.go | 46 ---------- Algorithms/0541.reverse-string-ii/README.md | 27 ------ .../reverse-string-ii.go | 2 - .../reverse-string-ii_test.go | 46 ---------- Algorithms/0542.01-matrix/01-matrix.go | 2 - Algorithms/0542.01-matrix/01-matrix_test.go | 46 ---------- Algorithms/0542.01-matrix/README.md | 51 ----------- .../0543.diameter-of-binary-tree/README.md | 33 ------- .../diameter-of-binary-tree.go | 2 - .../diameter-of-binary-tree_test.go | 46 ---------- Algorithms/0546.remove-boxes/README.md | 37 -------- Algorithms/0546.remove-boxes/remove-boxes.go | 2 - .../0546.remove-boxes/remove-boxes_test.go | 46 ---------- Algorithms/0547.friend-circles/README.md | 48 ----------- .../0547.friend-circles/friend-circles.go | 2 - .../friend-circles_test.go | 46 ---------- .../README.md | 41 --------- .../student-attendance-record-i.go | 2 - .../student-attendance-record-i_test.go | 46 ---------- .../README.md | 43 ---------- .../student-attendance-record-ii.go | 2 - .../student-attendance-record-ii_test.go | 46 ---------- Algorithms/0553.optimal-division/README.md | 38 -------- .../0553.optimal-division/optimal-division.go | 2 - .../optimal-division_test.go | 46 ---------- Algorithms/0554.brick-wall/README.md | 42 --------- Algorithms/0554.brick-wall/brick-wall.go | 2 - Algorithms/0554.brick-wall/brick-wall_test.go | 46 ---------- .../0556.next-greater-element-iii/README.md | 26 ------ .../next-greater-element-iii.go | 2 - .../next-greater-element-iii_test.go | 46 ---------- .../README.md | 23 ----- .../reverse-words-in-a-string-iii.go | 2 - .../reverse-words-in-a-string-iii_test.go | 46 ---------- .../0560.subarray-sum-equals-k/README.md | 27 ------ .../subarray-sum-equals-k.go | 2 - .../subarray-sum-equals-k_test.go | 46 ---------- Algorithms/0563.binary-tree-tilt/README.md | 38 -------- .../0563.binary-tree-tilt/binary-tree-tilt.go | 2 - .../binary-tree-tilt_test.go | 46 ---------- .../README.md | 28 ------ .../find-the-closest-palindrome.go | 2 - .../find-the-closest-palindrome_test.go | 46 ---------- Algorithms/0565.array-nesting/README.md | 43 ---------- .../0565.array-nesting/array-nesting.go | 2 - .../0565.array-nesting/array-nesting_test.go | 46 ---------- .../0567.permutation-in-string/README.md | 33 ------- .../permutation-in-string.go | 2 - .../permutation-in-string_test.go | 46 ---------- .../0572.subtree-of-another-tree/README.md | 51 ----------- .../subtree-of-another-tree.go | 2 - .../subtree-of-another-tree_test.go | 46 ---------- Algorithms/0575.distribute-candies/README.md | 38 -------- .../distribute-candies.go | 2 - .../distribute-candies_test.go | 46 ---------- .../0576.out-of-boundary-paths/README.md | 37 -------- .../out-of-boundary-paths.go | 2 - .../out-of-boundary-paths_test.go | 46 ---------- .../README.md | 29 ------- .../delete-operation-for-two-strings.go | 2 - .../delete-operation-for-two-strings_test.go | 46 ---------- Algorithms/0587.erect-the-fence/README.md | 40 --------- .../0587.erect-the-fence/erect-the-fence.go | 2 - .../erect-the-fence_test.go | 46 ---------- Algorithms/0591.tag-validator/README.md | 76 ---------------- .../0591.tag-validator/tag-validator.go | 2 - .../0591.tag-validator/tag-validator_test.go | 46 ---------- .../README.md | 47 ---------- .../fraction-addition-and-subtraction.go | 2 - .../fraction-addition-and-subtraction_test.go | 46 ---------- Algorithms/0593.valid-square/README.md | 29 ------- Algorithms/0593.valid-square/valid-square.go | 2 - .../0593.valid-square/valid-square_test.go | 46 ---------- .../README.md | 28 ------ .../longest-harmonious-subsequence.go | 2 - .../longest-harmonious-subsequence_test.go | 46 ---------- Algorithms/0598.range-addition-ii/README.md | 48 ----------- .../range-addition-ii.go | 2 - .../range-addition-ii_test.go | 46 ---------- .../README.md | 47 ---------- .../minimum-index-sum-of-two-lists.go | 2 - .../minimum-index-sum-of-two-lists_test.go | 46 ---------- .../README.md | 33 ------- ...ative-integers-without-consecutive-ones.go | 2 - ...-integers-without-consecutive-ones_test.go | 46 ---------- .../README.md | 41 --------- .../construct-string-from-binary-tree.go | 2 - .../construct-string-from-binary-tree_test.go | 46 ---------- .../README.md | 52 ----------- .../find-duplicate-file-in-system.go | 2 - .../find-duplicate-file-in-system_test.go | 46 ---------- .../0611.valid-triangle-number/README.md | 32 ------- .../valid-triangle-number.go | 2 - .../valid-triangle-number_test.go | 46 ---------- .../0617.merge-two-binary-trees/README.md | 43 ---------- .../merge-two-binary-trees.go | 2 - .../merge-two-binary-trees_test.go | 46 ---------- Algorithms/0621.task-scheduler/README.md | 31 ------- .../0621.task-scheduler/task-scheduler.go | 2 - .../task-scheduler_test.go | 46 ---------- Algorithms/0623.add-one-row-to-tree/README.md | 72 ---------------- .../add-one-row-to-tree.go | 2 - .../add-one-row-to-tree_test.go | 46 ---------- .../0629.k-inverse-pairs-array/README.md | 45 ---------- .../k-inverse-pairs-array.go | 2 - .../k-inverse-pairs-array_test.go | 46 ---------- Algorithms/0630.course-schedule-iii/README.md | 40 --------- .../course-schedule-iii.go | 2 - .../course-schedule-iii_test.go | 46 ---------- Algorithms/0632.smallest-range/README.md | 36 -------- .../0632.smallest-range/smallest-range.go | 2 - .../smallest-range_test.go | 46 ---------- .../0633.sum-of-square-numbers/README.md | 30 ------- .../sum-of-square-numbers.go | 2 - .../sum-of-square-numbers_test.go | 46 ---------- .../README.md | 46 ---------- .../exclusive-time-of-functions.go | 2 - .../exclusive-time-of-functions_test.go | 46 ---------- .../README.md | 32 ------- .../average-of-levels-in-binary-tree.go | 2 - .../average-of-levels-in-binary-tree_test.go | 46 ---------- Algorithms/0638.shopping-offers/README.md | 60 ------------- .../0638.shopping-offers/shopping-offers.go | 2 - .../shopping-offers_test.go | 46 ---------- Algorithms/0639.decode-ways-ii/README.md | 54 ------------ .../0639.decode-ways-ii/decode-ways-ii.go | 2 - .../decode-ways-ii_test.go | 46 ---------- Algorithms/0640.solve-the-equation/README.md | 55 ------------ .../solve-the-equation.go | 2 - .../solve-the-equation_test.go | 46 ---------- Algorithms/0645.set-mismatch/README.md | 33 ------- Algorithms/0645.set-mismatch/set-mismatch.go | 2 - .../0645.set-mismatch/set-mismatch_test.go | 46 ---------- .../README.md | 37 -------- .../maximum-length-of-pair-chain.go | 2 - .../maximum-length-of-pair-chain_test.go | 46 ---------- .../0647.palindromic-substrings/README.md | 39 --------- .../palindromic-substrings.go | 2 - .../palindromic-substrings_test.go | 46 ---------- Algorithms/0648.replace-words/README.md | 43 ---------- .../0648.replace-words/replace-words.go | 2 - .../0648.replace-words/replace-words_test.go | 46 ---------- Algorithms/0649.dota2-senate/README.md | 57 ------------ Algorithms/0649.dota2-senate/dota2-senate.go | 2 - .../0649.dota2-senate/dota2-senate_test.go | 46 ---------- .../0650.2-keys-keyboard/2-keys-keyboard.go | 2 - .../2-keys-keyboard_test.go | 46 ---------- Algorithms/0650.2-keys-keyboard/README.md | 41 --------- .../0652.find-duplicate-subtrees/README.md | 40 --------- .../find-duplicate-subtrees.go | 2 - .../find-duplicate-subtrees_test.go | 46 ---------- .../0653.two-sum-iv-input-is-a-bst/README.md | 44 ---------- .../two-sum-iv-input-is-a-bst.go | 2 - .../two-sum-iv-input-is-a-bst_test.go | 46 ---------- Algorithms/0654.maximum-binary-tree/README.md | 44 ---------- .../maximum-binary-tree.go | 2 - .../maximum-binary-tree_test.go | 46 ---------- Algorithms/0655.print-binary-tree/README.md | 69 --------------- .../print-binary-tree.go | 2 - .../print-binary-tree_test.go | 46 ---------- Algorithms/0657.judge-route-circle/README.md | 31 ------- .../judge-route-circle.go | 2 - .../judge-route-circle_test.go | 46 ---------- .../0658.find-k-closest-elements/README.md | 37 -------- .../find-k-closest-elements.go | 2 - .../find-k-closest-elements_test.go | 46 ---------- .../README.md | 45 ---------- ...lit-array-into-consecutive-subsequences.go | 2 - ...rray-into-consecutive-subsequences_test.go | 46 ---------- .../README.md | 76 ---------------- .../maximum-width-of-binary-tree.go | 2 - .../maximum-width-of-binary-tree_test.go | 46 ---------- .../0663.equal-tree-partition/README.md | 60 ------------- .../equal-tree-partition.go | 2 - .../equal-tree-partition_test.go | 46 ---------- Algorithms/0664.strange-printer/README.md | 41 --------- .../0664.strange-printer/strange-printer.go | 2 - .../strange-printer_test.go | 46 ---------- Draft/0433.minimum-genetic-mutation/README.md | 56 ------------ .../minimum-genetic-mutation.go | 2 - .../minimum-genetic-mutation_test.go | 46 ---------- Draft/0457.circular-array-loop/README.md | 35 -------- .../circular-array-loop.go | 2 - .../circular-array-loop_test.go | 46 ---------- Draft/0458.poor-pigs/README.md | 26 ------ Draft/0458.poor-pigs/poor-pigs.go | 2 - Draft/0458.poor-pigs/poor-pigs_test.go | 46 ---------- Draft/0518.coin-change-2/README.md | 47 ---------- Draft/0518.coin-change-2/coin-change-2.go | 2 - .../0518.coin-change-2/coin-change-2_test.go | 46 ---------- Draft/0626.exchange-seats/README.md | 41 --------- Draft/0626.exchange-seats/exchange-seats.go | 2 - .../exchange-seats_test.go | 46 ---------- helper | Bin 7104324 -> 7108420 bytes helper.v3/main.go | 4 +- leetcode.json | 2 +- 1251 files changed, 3 insertions(+), 33716 deletions(-) delete mode 100755 Algorithms/0044.wildcard-matching/README.md delete mode 100755 Algorithms/0044.wildcard-matching/wildcard-matching.go delete mode 100755 Algorithms/0044.wildcard-matching/wildcard-matching_test.go delete mode 100755 Algorithms/0054.spiral-matrix/README.md delete mode 100755 Algorithms/0054.spiral-matrix/spiral-matrix.go delete mode 100755 Algorithms/0054.spiral-matrix/spiral-matrix_test.go delete mode 100755 Algorithms/0055.jump-game/README.md delete mode 100755 Algorithms/0055.jump-game/jump-game.go delete mode 100755 Algorithms/0055.jump-game/jump-game_test.go delete mode 100755 Algorithms/0056.merge-intervals/README.md delete mode 100755 Algorithms/0056.merge-intervals/merge-intervals.go delete mode 100755 Algorithms/0056.merge-intervals/merge-intervals_test.go delete mode 100755 Algorithms/0057.insert-interval/README.md delete mode 100755 Algorithms/0057.insert-interval/insert-interval.go delete mode 100755 Algorithms/0057.insert-interval/insert-interval_test.go delete mode 100755 Algorithms/0058.length-of-last-word/README.md delete mode 100755 Algorithms/0058.length-of-last-word/length-of-last-word.go delete mode 100755 Algorithms/0058.length-of-last-word/length-of-last-word_test.go delete mode 100755 Algorithms/0059.spiral-matrix-ii/README.md delete mode 100755 Algorithms/0059.spiral-matrix-ii/spiral-matrix-ii.go delete mode 100755 Algorithms/0059.spiral-matrix-ii/spiral-matrix-ii_test.go delete mode 100755 Algorithms/0060.permutation-sequence/README.md delete mode 100755 Algorithms/0060.permutation-sequence/permutation-sequence.go delete mode 100755 Algorithms/0060.permutation-sequence/permutation-sequence_test.go delete mode 100755 Algorithms/0061.rotate-list/README.md delete mode 100755 Algorithms/0061.rotate-list/rotate-list.go delete mode 100755 Algorithms/0061.rotate-list/rotate-list_test.go delete mode 100755 Algorithms/0062.unique-paths/README.md delete mode 100755 Algorithms/0062.unique-paths/unique-paths.go delete mode 100755 Algorithms/0062.unique-paths/unique-paths_test.go delete mode 100755 Algorithms/0063.unique-paths-ii/README.md delete mode 100755 Algorithms/0063.unique-paths-ii/unique-paths-ii.go delete mode 100755 Algorithms/0063.unique-paths-ii/unique-paths-ii_test.go delete mode 100755 Algorithms/0064.minimum-path-sum/README.md delete mode 100755 Algorithms/0064.minimum-path-sum/minimum-path-sum.go delete mode 100755 Algorithms/0064.minimum-path-sum/minimum-path-sum_test.go delete mode 100755 Algorithms/0065.valid-number/README.md delete mode 100755 Algorithms/0065.valid-number/valid-number.go delete mode 100755 Algorithms/0065.valid-number/valid-number_test.go delete mode 100755 Algorithms/0067.add-binary/README.md delete mode 100755 Algorithms/0067.add-binary/add-binary.go delete mode 100755 Algorithms/0067.add-binary/add-binary_test.go delete mode 100755 Algorithms/0068.text-justification/README.md delete mode 100755 Algorithms/0068.text-justification/text-justification.go delete mode 100755 Algorithms/0068.text-justification/text-justification_test.go delete mode 100755 Algorithms/0069.sqrtx/README.md delete mode 100755 Algorithms/0069.sqrtx/sqrtx.go delete mode 100755 Algorithms/0069.sqrtx/sqrtx_test.go delete mode 100755 Algorithms/0070.climbing-stairs/README.md delete mode 100755 Algorithms/0070.climbing-stairs/climbing-stairs.go delete mode 100755 Algorithms/0070.climbing-stairs/climbing-stairs_test.go delete mode 100755 Algorithms/0071.simplify-path/README.md delete mode 100755 Algorithms/0071.simplify-path/simplify-path.go delete mode 100755 Algorithms/0071.simplify-path/simplify-path_test.go delete mode 100755 Algorithms/0072.edit-distance/README.md delete mode 100755 Algorithms/0072.edit-distance/edit-distance.go delete mode 100755 Algorithms/0072.edit-distance/edit-distance_test.go delete mode 100755 Algorithms/0073.set-matrix-zeroes/README.md delete mode 100755 Algorithms/0073.set-matrix-zeroes/set-matrix-zeroes.go delete mode 100755 Algorithms/0073.set-matrix-zeroes/set-matrix-zeroes_test.go delete mode 100755 Algorithms/0074.search-a-2d-matrix/README.md delete mode 100755 Algorithms/0074.search-a-2d-matrix/search-a-2d-matrix.go delete mode 100755 Algorithms/0074.search-a-2d-matrix/search-a-2d-matrix_test.go delete mode 100755 Algorithms/0075.sort-colors/README.md delete mode 100755 Algorithms/0075.sort-colors/sort-colors.go delete mode 100755 Algorithms/0075.sort-colors/sort-colors_test.go delete mode 100755 Algorithms/0076.minimum-window-substring/README.md delete mode 100755 Algorithms/0076.minimum-window-substring/minimum-window-substring.go delete mode 100755 Algorithms/0076.minimum-window-substring/minimum-window-substring_test.go delete mode 100755 Algorithms/0077.combinations/README.md delete mode 100755 Algorithms/0077.combinations/combinations.go delete mode 100755 Algorithms/0077.combinations/combinations_test.go delete mode 100755 Algorithms/0078.subsets/README.md delete mode 100755 Algorithms/0078.subsets/subsets.go delete mode 100755 Algorithms/0078.subsets/subsets_test.go delete mode 100755 Algorithms/0079.word-search/README.md delete mode 100755 Algorithms/0079.word-search/word-search.go delete mode 100755 Algorithms/0079.word-search/word-search_test.go delete mode 100755 Algorithms/0080.remove-duplicates-from-sorted-array-ii/README.md delete mode 100755 Algorithms/0080.remove-duplicates-from-sorted-array-ii/remove-duplicates-from-sorted-array-ii.go delete mode 100755 Algorithms/0080.remove-duplicates-from-sorted-array-ii/remove-duplicates-from-sorted-array-ii_test.go delete mode 100755 Algorithms/0081.search-in-rotated-sorted-array-ii/README.md delete mode 100755 Algorithms/0081.search-in-rotated-sorted-array-ii/search-in-rotated-sorted-array-ii.go delete mode 100755 Algorithms/0081.search-in-rotated-sorted-array-ii/search-in-rotated-sorted-array-ii_test.go delete mode 100755 Algorithms/0082.remove-duplicates-from-sorted-list-ii/README.md delete mode 100755 Algorithms/0082.remove-duplicates-from-sorted-list-ii/remove-duplicates-from-sorted-list-ii.go delete mode 100755 Algorithms/0082.remove-duplicates-from-sorted-list-ii/remove-duplicates-from-sorted-list-ii_test.go delete mode 100755 Algorithms/0083.remove-duplicates-from-sorted-list/README.md delete mode 100755 Algorithms/0083.remove-duplicates-from-sorted-list/remove-duplicates-from-sorted-list.go delete mode 100755 Algorithms/0083.remove-duplicates-from-sorted-list/remove-duplicates-from-sorted-list_test.go delete mode 100755 Algorithms/0084.largest-rectangle-in-histogram/README.md delete mode 100755 Algorithms/0084.largest-rectangle-in-histogram/largest-rectangle-in-histogram.go delete mode 100755 Algorithms/0084.largest-rectangle-in-histogram/largest-rectangle-in-histogram_test.go delete mode 100755 Algorithms/0085.maximal-rectangle/README.md delete mode 100755 Algorithms/0085.maximal-rectangle/maximal-rectangle.go delete mode 100755 Algorithms/0085.maximal-rectangle/maximal-rectangle_test.go delete mode 100755 Algorithms/0086.partition-list/README.md delete mode 100755 Algorithms/0086.partition-list/partition-list.go delete mode 100755 Algorithms/0086.partition-list/partition-list_test.go delete mode 100755 Algorithms/0087.scramble-string/README.md delete mode 100755 Algorithms/0087.scramble-string/scramble-string.go delete mode 100755 Algorithms/0087.scramble-string/scramble-string_test.go delete mode 100755 Algorithms/0089.gray-code/README.md delete mode 100755 Algorithms/0089.gray-code/gray-code.go delete mode 100755 Algorithms/0089.gray-code/gray-code_test.go delete mode 100755 Algorithms/0090.subsets-ii/README.md delete mode 100755 Algorithms/0090.subsets-ii/subsets-ii.go delete mode 100755 Algorithms/0090.subsets-ii/subsets-ii_test.go delete mode 100755 Algorithms/0091.decode-ways/README.md delete mode 100755 Algorithms/0091.decode-ways/decode-ways.go delete mode 100755 Algorithms/0091.decode-ways/decode-ways_test.go delete mode 100755 Algorithms/0092.reverse-linked-list-ii/README.md delete mode 100755 Algorithms/0092.reverse-linked-list-ii/reverse-linked-list-ii.go delete mode 100755 Algorithms/0092.reverse-linked-list-ii/reverse-linked-list-ii_test.go delete mode 100755 Algorithms/0093.restore-ip-addresses/README.md delete mode 100755 Algorithms/0093.restore-ip-addresses/restore-ip-addresses.go delete mode 100755 Algorithms/0093.restore-ip-addresses/restore-ip-addresses_test.go delete mode 100755 Algorithms/0094.binary-tree-inorder-traversal/README.md delete mode 100755 Algorithms/0094.binary-tree-inorder-traversal/binary-tree-inorder-traversal.go delete mode 100755 Algorithms/0094.binary-tree-inorder-traversal/binary-tree-inorder-traversal_test.go delete mode 100755 Algorithms/0095.unique-binary-search-trees-ii/README.md delete mode 100755 Algorithms/0095.unique-binary-search-trees-ii/unique-binary-search-trees-ii.go delete mode 100755 Algorithms/0095.unique-binary-search-trees-ii/unique-binary-search-trees-ii_test.go delete mode 100755 Algorithms/0096.unique-binary-search-trees/README.md delete mode 100755 Algorithms/0096.unique-binary-search-trees/unique-binary-search-trees.go delete mode 100755 Algorithms/0096.unique-binary-search-trees/unique-binary-search-trees_test.go delete mode 100755 Algorithms/0097.interleaving-string/README.md delete mode 100755 Algorithms/0097.interleaving-string/interleaving-string.go delete mode 100755 Algorithms/0097.interleaving-string/interleaving-string_test.go delete mode 100755 Algorithms/0098.validate-binary-search-tree/README.md delete mode 100755 Algorithms/0098.validate-binary-search-tree/validate-binary-search-tree.go delete mode 100755 Algorithms/0098.validate-binary-search-tree/validate-binary-search-tree_test.go delete mode 100755 Algorithms/0099.recover-binary-search-tree/README.md delete mode 100755 Algorithms/0099.recover-binary-search-tree/recover-binary-search-tree.go delete mode 100755 Algorithms/0099.recover-binary-search-tree/recover-binary-search-tree_test.go delete mode 100755 Algorithms/0100.same-tree/README.md delete mode 100755 Algorithms/0100.same-tree/same-tree.go delete mode 100755 Algorithms/0100.same-tree/same-tree_test.go delete mode 100755 Algorithms/0101.symmetric-tree/README.md delete mode 100755 Algorithms/0101.symmetric-tree/symmetric-tree.go delete mode 100755 Algorithms/0101.symmetric-tree/symmetric-tree_test.go delete mode 100755 Algorithms/0102.binary-tree-level-order-traversal/README.md delete mode 100755 Algorithms/0102.binary-tree-level-order-traversal/binary-tree-level-order-traversal.go delete mode 100755 Algorithms/0102.binary-tree-level-order-traversal/binary-tree-level-order-traversal_test.go delete mode 100755 Algorithms/0103.binary-tree-zigzag-level-order-traversal/README.md delete mode 100755 Algorithms/0103.binary-tree-zigzag-level-order-traversal/binary-tree-zigzag-level-order-traversal.go delete mode 100755 Algorithms/0103.binary-tree-zigzag-level-order-traversal/binary-tree-zigzag-level-order-traversal_test.go delete mode 100755 Algorithms/0104.maximum-depth-of-binary-tree/README.md delete mode 100755 Algorithms/0104.maximum-depth-of-binary-tree/maximum-depth-of-binary-tree.go delete mode 100755 Algorithms/0104.maximum-depth-of-binary-tree/maximum-depth-of-binary-tree_test.go delete mode 100755 Algorithms/0105.construct-binary-tree-from-preorder-and-inorder-traversal/README.md delete mode 100755 Algorithms/0105.construct-binary-tree-from-preorder-and-inorder-traversal/construct-binary-tree-from-preorder-and-inorder-traversal.go delete mode 100755 Algorithms/0105.construct-binary-tree-from-preorder-and-inorder-traversal/construct-binary-tree-from-preorder-and-inorder-traversal_test.go delete mode 100755 Algorithms/0106.construct-binary-tree-from-inorder-and-postorder-traversal/README.md delete mode 100755 Algorithms/0106.construct-binary-tree-from-inorder-and-postorder-traversal/construct-binary-tree-from-inorder-and-postorder-traversal.go delete mode 100755 Algorithms/0106.construct-binary-tree-from-inorder-and-postorder-traversal/construct-binary-tree-from-inorder-and-postorder-traversal_test.go delete mode 100755 Algorithms/0107.binary-tree-level-order-traversal-ii/README.md delete mode 100755 Algorithms/0107.binary-tree-level-order-traversal-ii/binary-tree-level-order-traversal-ii.go delete mode 100755 Algorithms/0107.binary-tree-level-order-traversal-ii/binary-tree-level-order-traversal-ii_test.go delete mode 100755 Algorithms/0108.convert-sorted-array-to-binary-search-tree/README.md delete mode 100755 Algorithms/0108.convert-sorted-array-to-binary-search-tree/convert-sorted-array-to-binary-search-tree.go delete mode 100755 Algorithms/0108.convert-sorted-array-to-binary-search-tree/convert-sorted-array-to-binary-search-tree_test.go delete mode 100755 Algorithms/0109.convert-sorted-list-to-binary-search-tree/README.md delete mode 100755 Algorithms/0109.convert-sorted-list-to-binary-search-tree/convert-sorted-list-to-binary-search-tree.go delete mode 100755 Algorithms/0109.convert-sorted-list-to-binary-search-tree/convert-sorted-list-to-binary-search-tree_test.go delete mode 100755 Algorithms/0110.balanced-binary-tree/README.md delete mode 100755 Algorithms/0110.balanced-binary-tree/balanced-binary-tree.go delete mode 100755 Algorithms/0110.balanced-binary-tree/balanced-binary-tree_test.go delete mode 100755 Algorithms/0111.minimum-depth-of-binary-tree/README.md delete mode 100755 Algorithms/0111.minimum-depth-of-binary-tree/minimum-depth-of-binary-tree.go delete mode 100755 Algorithms/0111.minimum-depth-of-binary-tree/minimum-depth-of-binary-tree_test.go delete mode 100755 Algorithms/0112.path-sum/README.md delete mode 100755 Algorithms/0112.path-sum/path-sum.go delete mode 100755 Algorithms/0112.path-sum/path-sum_test.go delete mode 100755 Algorithms/0113.path-sum-ii/README.md delete mode 100755 Algorithms/0113.path-sum-ii/path-sum-ii.go delete mode 100755 Algorithms/0113.path-sum-ii/path-sum-ii_test.go delete mode 100755 Algorithms/0114.flatten-binary-tree-to-linked-list/README.md delete mode 100755 Algorithms/0114.flatten-binary-tree-to-linked-list/flatten-binary-tree-to-linked-list.go delete mode 100755 Algorithms/0114.flatten-binary-tree-to-linked-list/flatten-binary-tree-to-linked-list_test.go delete mode 100755 Algorithms/0115.distinct-subsequences/README.md delete mode 100755 Algorithms/0115.distinct-subsequences/distinct-subsequences.go delete mode 100755 Algorithms/0115.distinct-subsequences/distinct-subsequences_test.go delete mode 100755 Algorithms/0116.populating-next-right-pointers-in-each-node/README.md delete mode 100755 Algorithms/0116.populating-next-right-pointers-in-each-node/populating-next-right-pointers-in-each-node.go delete mode 100755 Algorithms/0116.populating-next-right-pointers-in-each-node/populating-next-right-pointers-in-each-node_test.go delete mode 100755 Algorithms/0117.populating-next-right-pointers-in-each-node-ii/README.md delete mode 100755 Algorithms/0117.populating-next-right-pointers-in-each-node-ii/populating-next-right-pointers-in-each-node-ii.go delete mode 100755 Algorithms/0117.populating-next-right-pointers-in-each-node-ii/populating-next-right-pointers-in-each-node-ii_test.go delete mode 100755 Algorithms/0119.pascals-triangle-ii/README.md delete mode 100755 Algorithms/0119.pascals-triangle-ii/pascals-triangle-ii.go delete mode 100755 Algorithms/0119.pascals-triangle-ii/pascals-triangle-ii_test.go delete mode 100755 Algorithms/0120.triangle/README.md delete mode 100755 Algorithms/0120.triangle/triangle.go delete mode 100755 Algorithms/0120.triangle/triangle_test.go delete mode 100755 Algorithms/0121.best-time-to-buy-and-sell-stock/README.md delete mode 100755 Algorithms/0121.best-time-to-buy-and-sell-stock/best-time-to-buy-and-sell-stock.go delete mode 100755 Algorithms/0121.best-time-to-buy-and-sell-stock/best-time-to-buy-and-sell-stock_test.go delete mode 100755 Algorithms/0122.best-time-to-buy-and-sell-stock-ii/README.md delete mode 100755 Algorithms/0122.best-time-to-buy-and-sell-stock-ii/best-time-to-buy-and-sell-stock-ii.go delete mode 100755 Algorithms/0122.best-time-to-buy-and-sell-stock-ii/best-time-to-buy-and-sell-stock-ii_test.go delete mode 100755 Algorithms/0123.best-time-to-buy-and-sell-stock-iii/README.md delete mode 100755 Algorithms/0123.best-time-to-buy-and-sell-stock-iii/best-time-to-buy-and-sell-stock-iii.go delete mode 100755 Algorithms/0123.best-time-to-buy-and-sell-stock-iii/best-time-to-buy-and-sell-stock-iii_test.go delete mode 100755 Algorithms/0124.binary-tree-maximum-path-sum/README.md delete mode 100755 Algorithms/0124.binary-tree-maximum-path-sum/binary-tree-maximum-path-sum.go delete mode 100755 Algorithms/0124.binary-tree-maximum-path-sum/binary-tree-maximum-path-sum_test.go delete mode 100755 Algorithms/0125.valid-palindrome/README.md delete mode 100755 Algorithms/0125.valid-palindrome/valid-palindrome.go delete mode 100755 Algorithms/0125.valid-palindrome/valid-palindrome_test.go delete mode 100755 Algorithms/0126.word-ladder-ii/README.md delete mode 100755 Algorithms/0126.word-ladder-ii/word-ladder-ii.go delete mode 100755 Algorithms/0126.word-ladder-ii/word-ladder-ii_test.go delete mode 100755 Algorithms/0127.word-ladder/README.md delete mode 100755 Algorithms/0127.word-ladder/word-ladder.go delete mode 100755 Algorithms/0127.word-ladder/word-ladder_test.go delete mode 100755 Algorithms/0128.longest-consecutive-sequence/README.md delete mode 100755 Algorithms/0128.longest-consecutive-sequence/longest-consecutive-sequence.go delete mode 100755 Algorithms/0128.longest-consecutive-sequence/longest-consecutive-sequence_test.go delete mode 100755 Algorithms/0129.sum-root-to-leaf-numbers/README.md delete mode 100755 Algorithms/0129.sum-root-to-leaf-numbers/sum-root-to-leaf-numbers.go delete mode 100755 Algorithms/0129.sum-root-to-leaf-numbers/sum-root-to-leaf-numbers_test.go delete mode 100755 Algorithms/0130.surrounded-regions/README.md delete mode 100755 Algorithms/0130.surrounded-regions/surrounded-regions.go delete mode 100755 Algorithms/0130.surrounded-regions/surrounded-regions_test.go delete mode 100755 Algorithms/0131.palindrome-partitioning/README.md delete mode 100755 Algorithms/0131.palindrome-partitioning/palindrome-partitioning.go delete mode 100755 Algorithms/0131.palindrome-partitioning/palindrome-partitioning_test.go delete mode 100755 Algorithms/0132.palindrome-partitioning-ii/README.md delete mode 100755 Algorithms/0132.palindrome-partitioning-ii/palindrome-partitioning-ii.go delete mode 100755 Algorithms/0132.palindrome-partitioning-ii/palindrome-partitioning-ii_test.go delete mode 100755 Algorithms/0133.clone-graph/README.md delete mode 100755 Algorithms/0133.clone-graph/clone-graph.go delete mode 100755 Algorithms/0133.clone-graph/clone-graph_test.go delete mode 100755 Algorithms/0134.gas-station/README.md delete mode 100755 Algorithms/0134.gas-station/gas-station.go delete mode 100755 Algorithms/0134.gas-station/gas-station_test.go delete mode 100755 Algorithms/0135.candy/README.md delete mode 100755 Algorithms/0135.candy/candy.go delete mode 100755 Algorithms/0135.candy/candy_test.go delete mode 100755 Algorithms/0136.single-number/README.md delete mode 100755 Algorithms/0136.single-number/single-number.go delete mode 100755 Algorithms/0136.single-number/single-number_test.go delete mode 100755 Algorithms/0137.single-number-ii/README.md delete mode 100755 Algorithms/0137.single-number-ii/single-number-ii.go delete mode 100755 Algorithms/0137.single-number-ii/single-number-ii_test.go delete mode 100755 Algorithms/0138.copy-list-with-random-pointer/README.md delete mode 100755 Algorithms/0138.copy-list-with-random-pointer/copy-list-with-random-pointer.go delete mode 100755 Algorithms/0138.copy-list-with-random-pointer/copy-list-with-random-pointer_test.go delete mode 100755 Algorithms/0139.word-break/README.md delete mode 100755 Algorithms/0139.word-break/word-break.go delete mode 100755 Algorithms/0139.word-break/word-break_test.go delete mode 100755 Algorithms/0140.word-break-ii/README.md delete mode 100755 Algorithms/0140.word-break-ii/word-break-ii.go delete mode 100755 Algorithms/0140.word-break-ii/word-break-ii_test.go delete mode 100755 Algorithms/0141.linked-list-cycle/README.md delete mode 100755 Algorithms/0141.linked-list-cycle/linked-list-cycle.go delete mode 100755 Algorithms/0141.linked-list-cycle/linked-list-cycle_test.go delete mode 100755 Algorithms/0142.linked-list-cycle-ii/README.md delete mode 100755 Algorithms/0142.linked-list-cycle-ii/linked-list-cycle-ii.go delete mode 100755 Algorithms/0142.linked-list-cycle-ii/linked-list-cycle-ii_test.go delete mode 100755 Algorithms/0143.reorder-list/README.md delete mode 100755 Algorithms/0143.reorder-list/reorder-list.go delete mode 100755 Algorithms/0143.reorder-list/reorder-list_test.go delete mode 100755 Algorithms/0144.binary-tree-preorder-traversal/README.md delete mode 100755 Algorithms/0144.binary-tree-preorder-traversal/binary-tree-preorder-traversal.go delete mode 100755 Algorithms/0144.binary-tree-preorder-traversal/binary-tree-preorder-traversal_test.go delete mode 100755 Algorithms/0145.binary-tree-postorder-traversal/README.md delete mode 100755 Algorithms/0145.binary-tree-postorder-traversal/binary-tree-postorder-traversal.go delete mode 100755 Algorithms/0145.binary-tree-postorder-traversal/binary-tree-postorder-traversal_test.go delete mode 100755 Algorithms/0146.lru-cache/README.md delete mode 100755 Algorithms/0146.lru-cache/lru-cache.go delete mode 100755 Algorithms/0146.lru-cache/lru-cache_test.go delete mode 100755 Algorithms/0147.insertion-sort-list/README.md delete mode 100755 Algorithms/0147.insertion-sort-list/insertion-sort-list.go delete mode 100755 Algorithms/0147.insertion-sort-list/insertion-sort-list_test.go delete mode 100755 Algorithms/0148.sort-list/README.md delete mode 100755 Algorithms/0148.sort-list/sort-list.go delete mode 100755 Algorithms/0148.sort-list/sort-list_test.go delete mode 100755 Algorithms/0149.max-points-on-a-line/README.md delete mode 100755 Algorithms/0149.max-points-on-a-line/max-points-on-a-line.go delete mode 100755 Algorithms/0149.max-points-on-a-line/max-points-on-a-line_test.go delete mode 100755 Algorithms/0150.evaluate-reverse-polish-notation/README.md delete mode 100755 Algorithms/0150.evaluate-reverse-polish-notation/evaluate-reverse-polish-notation.go delete mode 100755 Algorithms/0150.evaluate-reverse-polish-notation/evaluate-reverse-polish-notation_test.go delete mode 100755 Algorithms/0151.reverse-words-in-a-string/README.md delete mode 100755 Algorithms/0151.reverse-words-in-a-string/reverse-words-in-a-string.go delete mode 100755 Algorithms/0151.reverse-words-in-a-string/reverse-words-in-a-string_test.go delete mode 100755 Algorithms/0152.maximum-product-subarray/README.md delete mode 100755 Algorithms/0152.maximum-product-subarray/maximum-product-subarray.go delete mode 100755 Algorithms/0152.maximum-product-subarray/maximum-product-subarray_test.go delete mode 100755 Algorithms/0153.find-minimum-in-rotated-sorted-array/README.md delete mode 100755 Algorithms/0153.find-minimum-in-rotated-sorted-array/find-minimum-in-rotated-sorted-array.go delete mode 100755 Algorithms/0153.find-minimum-in-rotated-sorted-array/find-minimum-in-rotated-sorted-array_test.go delete mode 100755 Algorithms/0154.find-minimum-in-rotated-sorted-array-ii/README.md delete mode 100755 Algorithms/0154.find-minimum-in-rotated-sorted-array-ii/find-minimum-in-rotated-sorted-array-ii.go delete mode 100755 Algorithms/0154.find-minimum-in-rotated-sorted-array-ii/find-minimum-in-rotated-sorted-array-ii_test.go delete mode 100755 Algorithms/0155.min-stack/README.md delete mode 100755 Algorithms/0155.min-stack/min-stack.go delete mode 100755 Algorithms/0155.min-stack/min-stack_test.go delete mode 100755 Algorithms/0160.intersection-of-two-linked-lists/README.md delete mode 100755 Algorithms/0160.intersection-of-two-linked-lists/intersection-of-two-linked-lists.go delete mode 100755 Algorithms/0160.intersection-of-two-linked-lists/intersection-of-two-linked-lists_test.go delete mode 100755 Algorithms/0162.find-peak-element/README.md delete mode 100755 Algorithms/0162.find-peak-element/find-peak-element.go delete mode 100755 Algorithms/0162.find-peak-element/find-peak-element_test.go delete mode 100755 Algorithms/0164.maximum-gap/README.md delete mode 100755 Algorithms/0164.maximum-gap/maximum-gap.go delete mode 100755 Algorithms/0164.maximum-gap/maximum-gap_test.go delete mode 100755 Algorithms/0165.compare-version-numbers/README.md delete mode 100755 Algorithms/0165.compare-version-numbers/compare-version-numbers.go delete mode 100755 Algorithms/0165.compare-version-numbers/compare-version-numbers_test.go delete mode 100755 Algorithms/0166.fraction-to-recurring-decimal/README.md delete mode 100755 Algorithms/0166.fraction-to-recurring-decimal/fraction-to-recurring-decimal.go delete mode 100755 Algorithms/0166.fraction-to-recurring-decimal/fraction-to-recurring-decimal_test.go delete mode 100755 Algorithms/0167.two-sum-ii-input-array-is-sorted/README.md delete mode 100755 Algorithms/0167.two-sum-ii-input-array-is-sorted/two-sum-ii-input-array-is-sorted.go delete mode 100755 Algorithms/0167.two-sum-ii-input-array-is-sorted/two-sum-ii-input-array-is-sorted_test.go delete mode 100755 Algorithms/0168.excel-sheet-column-title/README.md delete mode 100755 Algorithms/0168.excel-sheet-column-title/excel-sheet-column-title.go delete mode 100755 Algorithms/0168.excel-sheet-column-title/excel-sheet-column-title_test.go delete mode 100755 Algorithms/0169.majority-element/README.md delete mode 100755 Algorithms/0169.majority-element/majority-element.go delete mode 100755 Algorithms/0169.majority-element/majority-element_test.go delete mode 100755 Algorithms/0171.excel-sheet-column-number/README.md delete mode 100755 Algorithms/0171.excel-sheet-column-number/excel-sheet-column-number.go delete mode 100755 Algorithms/0171.excel-sheet-column-number/excel-sheet-column-number_test.go delete mode 100755 Algorithms/0172.factorial-trailing-zeroes/README.md delete mode 100755 Algorithms/0172.factorial-trailing-zeroes/factorial-trailing-zeroes.go delete mode 100755 Algorithms/0172.factorial-trailing-zeroes/factorial-trailing-zeroes_test.go delete mode 100755 Algorithms/0173.binary-search-tree-iterator/README.md delete mode 100755 Algorithms/0173.binary-search-tree-iterator/binary-search-tree-iterator.go delete mode 100755 Algorithms/0173.binary-search-tree-iterator/binary-search-tree-iterator_test.go delete mode 100755 Algorithms/0174.dungeon-game/README.md delete mode 100755 Algorithms/0174.dungeon-game/dungeon-game.go delete mode 100755 Algorithms/0174.dungeon-game/dungeon-game_test.go delete mode 100755 Algorithms/0179.largest-number/README.md delete mode 100755 Algorithms/0179.largest-number/largest-number.go delete mode 100755 Algorithms/0179.largest-number/largest-number_test.go delete mode 100755 Algorithms/0187.repeated-dna-sequences/README.md delete mode 100755 Algorithms/0187.repeated-dna-sequences/repeated-dna-sequences.go delete mode 100755 Algorithms/0187.repeated-dna-sequences/repeated-dna-sequences_test.go delete mode 100755 Algorithms/0188.best-time-to-buy-and-sell-stock-iv/README.md delete mode 100755 Algorithms/0188.best-time-to-buy-and-sell-stock-iv/best-time-to-buy-and-sell-stock-iv.go delete mode 100755 Algorithms/0188.best-time-to-buy-and-sell-stock-iv/best-time-to-buy-and-sell-stock-iv_test.go delete mode 100755 Algorithms/0189.rotate-array/README.md delete mode 100755 Algorithms/0189.rotate-array/rotate-array.go delete mode 100755 Algorithms/0189.rotate-array/rotate-array_test.go delete mode 100755 Algorithms/0190.reverse-bits/README.md delete mode 100755 Algorithms/0190.reverse-bits/reverse-bits.go delete mode 100755 Algorithms/0190.reverse-bits/reverse-bits_test.go delete mode 100755 Algorithms/0191.number-of-1-bits/README.md delete mode 100755 Algorithms/0191.number-of-1-bits/number-of-1-bits.go delete mode 100755 Algorithms/0191.number-of-1-bits/number-of-1-bits_test.go delete mode 100755 Algorithms/0198.house-robber/README.md delete mode 100755 Algorithms/0198.house-robber/house-robber.go delete mode 100755 Algorithms/0198.house-robber/house-robber_test.go delete mode 100755 Algorithms/0199.binary-tree-right-side-view/README.md delete mode 100755 Algorithms/0199.binary-tree-right-side-view/binary-tree-right-side-view.go delete mode 100755 Algorithms/0199.binary-tree-right-side-view/binary-tree-right-side-view_test.go delete mode 100755 Algorithms/0200.number-of-islands/README.md delete mode 100755 Algorithms/0200.number-of-islands/number-of-islands.go delete mode 100755 Algorithms/0200.number-of-islands/number-of-islands_test.go delete mode 100755 Algorithms/0201.bitwise-and-of-numbers-range/README.md delete mode 100755 Algorithms/0201.bitwise-and-of-numbers-range/bitwise-and-of-numbers-range.go delete mode 100755 Algorithms/0201.bitwise-and-of-numbers-range/bitwise-and-of-numbers-range_test.go delete mode 100755 Algorithms/0202.happy-number/README.md delete mode 100755 Algorithms/0202.happy-number/happy-number.go delete mode 100755 Algorithms/0202.happy-number/happy-number_test.go delete mode 100755 Algorithms/0203.remove-linked-list-elements/README.md delete mode 100755 Algorithms/0203.remove-linked-list-elements/remove-linked-list-elements.go delete mode 100755 Algorithms/0203.remove-linked-list-elements/remove-linked-list-elements_test.go delete mode 100755 Algorithms/0204.count-primes/README.md delete mode 100755 Algorithms/0204.count-primes/count-primes.go delete mode 100755 Algorithms/0204.count-primes/count-primes_test.go delete mode 100755 Algorithms/0205.isomorphic-strings/README.md delete mode 100755 Algorithms/0205.isomorphic-strings/isomorphic-strings.go delete mode 100755 Algorithms/0205.isomorphic-strings/isomorphic-strings_test.go delete mode 100755 Algorithms/0207.course-schedule/README.md delete mode 100755 Algorithms/0207.course-schedule/course-schedule.go delete mode 100755 Algorithms/0207.course-schedule/course-schedule_test.go delete mode 100755 Algorithms/0208.implement-trie-prefix-tree/README.md delete mode 100755 Algorithms/0208.implement-trie-prefix-tree/implement-trie-prefix-tree.go delete mode 100755 Algorithms/0208.implement-trie-prefix-tree/implement-trie-prefix-tree_test.go delete mode 100755 Algorithms/0209.minimum-size-subarray-sum/README.md delete mode 100755 Algorithms/0209.minimum-size-subarray-sum/minimum-size-subarray-sum.go delete mode 100755 Algorithms/0209.minimum-size-subarray-sum/minimum-size-subarray-sum_test.go delete mode 100755 Algorithms/0210.course-schedule-ii/README.md delete mode 100755 Algorithms/0210.course-schedule-ii/course-schedule-ii.go delete mode 100755 Algorithms/0210.course-schedule-ii/course-schedule-ii_test.go delete mode 100755 Algorithms/0211.add-and-search-word-data-structure-design/README.md delete mode 100755 Algorithms/0211.add-and-search-word-data-structure-design/add-and-search-word-data-structure-design.go delete mode 100755 Algorithms/0211.add-and-search-word-data-structure-design/add-and-search-word-data-structure-design_test.go delete mode 100755 Algorithms/0212.word-search-ii/README.md delete mode 100755 Algorithms/0212.word-search-ii/word-search-ii.go delete mode 100755 Algorithms/0212.word-search-ii/word-search-ii_test.go delete mode 100755 Algorithms/0213.house-robber-ii/README.md delete mode 100755 Algorithms/0213.house-robber-ii/house-robber-ii.go delete mode 100755 Algorithms/0213.house-robber-ii/house-robber-ii_test.go delete mode 100755 Algorithms/0214.shortest-palindrome/README.md delete mode 100755 Algorithms/0214.shortest-palindrome/shortest-palindrome.go delete mode 100755 Algorithms/0214.shortest-palindrome/shortest-palindrome_test.go delete mode 100755 Algorithms/0215.kth-largest-element-in-an-array/README.md delete mode 100755 Algorithms/0215.kth-largest-element-in-an-array/kth-largest-element-in-an-array.go delete mode 100755 Algorithms/0215.kth-largest-element-in-an-array/kth-largest-element-in-an-array_test.go delete mode 100755 Algorithms/0216.combination-sum-iii/README.md delete mode 100755 Algorithms/0216.combination-sum-iii/combination-sum-iii.go delete mode 100755 Algorithms/0216.combination-sum-iii/combination-sum-iii_test.go delete mode 100755 Algorithms/0217.contains-duplicate/README.md delete mode 100755 Algorithms/0217.contains-duplicate/contains-duplicate.go delete mode 100755 Algorithms/0217.contains-duplicate/contains-duplicate_test.go delete mode 100755 Algorithms/0218.the-skyline-problem/README.md delete mode 100755 Algorithms/0218.the-skyline-problem/the-skyline-problem.go delete mode 100755 Algorithms/0218.the-skyline-problem/the-skyline-problem_test.go delete mode 100755 Algorithms/0219.contains-duplicate-ii/README.md delete mode 100755 Algorithms/0219.contains-duplicate-ii/contains-duplicate-ii.go delete mode 100755 Algorithms/0219.contains-duplicate-ii/contains-duplicate-ii_test.go delete mode 100755 Algorithms/0220.contains-duplicate-iii/README.md delete mode 100755 Algorithms/0220.contains-duplicate-iii/contains-duplicate-iii.go delete mode 100755 Algorithms/0220.contains-duplicate-iii/contains-duplicate-iii_test.go delete mode 100755 Algorithms/0221.maximal-square/README.md delete mode 100755 Algorithms/0221.maximal-square/maximal-square.go delete mode 100755 Algorithms/0221.maximal-square/maximal-square_test.go delete mode 100755 Algorithms/0222.count-complete-tree-nodes/README.md delete mode 100755 Algorithms/0222.count-complete-tree-nodes/count-complete-tree-nodes.go delete mode 100755 Algorithms/0222.count-complete-tree-nodes/count-complete-tree-nodes_test.go delete mode 100755 Algorithms/0223.rectangle-area/README.md delete mode 100755 Algorithms/0223.rectangle-area/rectangle-area.go delete mode 100755 Algorithms/0223.rectangle-area/rectangle-area_test.go delete mode 100755 Algorithms/0224.basic-calculator/README.md delete mode 100755 Algorithms/0224.basic-calculator/basic-calculator.go delete mode 100755 Algorithms/0224.basic-calculator/basic-calculator_test.go delete mode 100755 Algorithms/0225.implement-stack-using-queues/README.md delete mode 100755 Algorithms/0225.implement-stack-using-queues/implement-stack-using-queues.go delete mode 100755 Algorithms/0225.implement-stack-using-queues/implement-stack-using-queues_test.go delete mode 100755 Algorithms/0226.invert-binary-tree/README.md delete mode 100755 Algorithms/0226.invert-binary-tree/invert-binary-tree.go delete mode 100755 Algorithms/0226.invert-binary-tree/invert-binary-tree_test.go delete mode 100755 Algorithms/0227.basic-calculator-ii/README.md delete mode 100755 Algorithms/0227.basic-calculator-ii/basic-calculator-ii.go delete mode 100755 Algorithms/0227.basic-calculator-ii/basic-calculator-ii_test.go delete mode 100755 Algorithms/0228.summary-ranges/README.md delete mode 100755 Algorithms/0228.summary-ranges/summary-ranges.go delete mode 100755 Algorithms/0228.summary-ranges/summary-ranges_test.go delete mode 100755 Algorithms/0229.majority-element-ii/README.md delete mode 100755 Algorithms/0229.majority-element-ii/majority-element-ii.go delete mode 100755 Algorithms/0229.majority-element-ii/majority-element-ii_test.go delete mode 100755 Algorithms/0230.kth-smallest-element-in-a-bst/README.md delete mode 100755 Algorithms/0230.kth-smallest-element-in-a-bst/kth-smallest-element-in-a-bst.go delete mode 100755 Algorithms/0230.kth-smallest-element-in-a-bst/kth-smallest-element-in-a-bst_test.go delete mode 100755 Algorithms/0231.power-of-two/README.md delete mode 100755 Algorithms/0231.power-of-two/power-of-two.go delete mode 100755 Algorithms/0231.power-of-two/power-of-two_test.go delete mode 100755 Algorithms/0232.implement-queue-using-stacks/README.md delete mode 100755 Algorithms/0232.implement-queue-using-stacks/implement-queue-using-stacks.go delete mode 100755 Algorithms/0232.implement-queue-using-stacks/implement-queue-using-stacks_test.go delete mode 100755 Algorithms/0233.number-of-digit-one/README.md delete mode 100755 Algorithms/0233.number-of-digit-one/number-of-digit-one.go delete mode 100755 Algorithms/0233.number-of-digit-one/number-of-digit-one_test.go delete mode 100755 Algorithms/0234.palindrome-linked-list/README.md delete mode 100755 Algorithms/0234.palindrome-linked-list/palindrome-linked-list.go delete mode 100755 Algorithms/0234.palindrome-linked-list/palindrome-linked-list_test.go delete mode 100755 Algorithms/0235.lowest-common-ancestor-of-a-binary-search-tree/README.md delete mode 100755 Algorithms/0235.lowest-common-ancestor-of-a-binary-search-tree/lowest-common-ancestor-of-a-binary-search-tree.go delete mode 100755 Algorithms/0235.lowest-common-ancestor-of-a-binary-search-tree/lowest-common-ancestor-of-a-binary-search-tree_test.go delete mode 100755 Algorithms/0236.lowest-common-ancestor-of-a-binary-tree/README.md delete mode 100755 Algorithms/0236.lowest-common-ancestor-of-a-binary-tree/lowest-common-ancestor-of-a-binary-tree.go delete mode 100755 Algorithms/0236.lowest-common-ancestor-of-a-binary-tree/lowest-common-ancestor-of-a-binary-tree_test.go delete mode 100755 Algorithms/0237.delete-node-in-a-linked-list/README.md delete mode 100755 Algorithms/0237.delete-node-in-a-linked-list/delete-node-in-a-linked-list.go delete mode 100755 Algorithms/0237.delete-node-in-a-linked-list/delete-node-in-a-linked-list_test.go delete mode 100755 Algorithms/0238.product-of-array-except-self/README.md delete mode 100755 Algorithms/0238.product-of-array-except-self/product-of-array-except-self.go delete mode 100755 Algorithms/0238.product-of-array-except-self/product-of-array-except-self_test.go delete mode 100755 Algorithms/0239.sliding-window-maximum/README.md delete mode 100755 Algorithms/0239.sliding-window-maximum/sliding-window-maximum.go delete mode 100755 Algorithms/0239.sliding-window-maximum/sliding-window-maximum_test.go delete mode 100755 Algorithms/0240.search-a-2d-matrix-ii/README.md delete mode 100755 Algorithms/0240.search-a-2d-matrix-ii/search-a-2d-matrix-ii.go delete mode 100755 Algorithms/0240.search-a-2d-matrix-ii/search-a-2d-matrix-ii_test.go delete mode 100755 Algorithms/0241.different-ways-to-add-parentheses/README.md delete mode 100755 Algorithms/0241.different-ways-to-add-parentheses/different-ways-to-add-parentheses.go delete mode 100755 Algorithms/0241.different-ways-to-add-parentheses/different-ways-to-add-parentheses_test.go delete mode 100755 Algorithms/0242.valid-anagram/README.md delete mode 100755 Algorithms/0242.valid-anagram/valid-anagram.go delete mode 100755 Algorithms/0242.valid-anagram/valid-anagram_test.go delete mode 100755 Algorithms/0257.binary-tree-paths/README.md delete mode 100755 Algorithms/0257.binary-tree-paths/binary-tree-paths.go delete mode 100755 Algorithms/0257.binary-tree-paths/binary-tree-paths_test.go delete mode 100755 Algorithms/0258.add-digits/README.md delete mode 100755 Algorithms/0258.add-digits/add-digits.go delete mode 100755 Algorithms/0258.add-digits/add-digits_test.go delete mode 100755 Algorithms/0260.single-number-iii/README.md delete mode 100755 Algorithms/0260.single-number-iii/single-number-iii.go delete mode 100755 Algorithms/0260.single-number-iii/single-number-iii_test.go delete mode 100755 Algorithms/0263.ugly-number/README.md delete mode 100755 Algorithms/0263.ugly-number/ugly-number.go delete mode 100755 Algorithms/0263.ugly-number/ugly-number_test.go delete mode 100755 Algorithms/0264.ugly-number-ii/README.md delete mode 100755 Algorithms/0264.ugly-number-ii/ugly-number-ii.go delete mode 100755 Algorithms/0264.ugly-number-ii/ugly-number-ii_test.go delete mode 100755 Algorithms/0268.missing-number/README.md delete mode 100755 Algorithms/0268.missing-number/missing-number.go delete mode 100755 Algorithms/0268.missing-number/missing-number_test.go delete mode 100755 Algorithms/0273.integer-to-english-words/README.md delete mode 100755 Algorithms/0273.integer-to-english-words/integer-to-english-words.go delete mode 100755 Algorithms/0273.integer-to-english-words/integer-to-english-words_test.go delete mode 100755 Algorithms/0274.h-index/README.md delete mode 100755 Algorithms/0274.h-index/h-index.go delete mode 100755 Algorithms/0274.h-index/h-index_test.go delete mode 100755 Algorithms/0275.h-index-ii/README.md delete mode 100755 Algorithms/0275.h-index-ii/h-index-ii.go delete mode 100755 Algorithms/0275.h-index-ii/h-index-ii_test.go delete mode 100755 Algorithms/0278.first-bad-version/README.md delete mode 100755 Algorithms/0278.first-bad-version/first-bad-version.go delete mode 100755 Algorithms/0278.first-bad-version/first-bad-version_test.go delete mode 100755 Algorithms/0279.perfect-squares/README.md delete mode 100755 Algorithms/0279.perfect-squares/perfect-squares.go delete mode 100755 Algorithms/0279.perfect-squares/perfect-squares_test.go delete mode 100755 Algorithms/0282.expression-add-operators/README.md delete mode 100755 Algorithms/0282.expression-add-operators/expression-add-operators.go delete mode 100755 Algorithms/0282.expression-add-operators/expression-add-operators_test.go delete mode 100755 Algorithms/0283.move-zeroes/README.md delete mode 100755 Algorithms/0283.move-zeroes/move-zeroes.go delete mode 100755 Algorithms/0283.move-zeroes/move-zeroes_test.go delete mode 100755 Algorithms/0284.peeking-iterator/README.md delete mode 100755 Algorithms/0284.peeking-iterator/peeking-iterator.go delete mode 100755 Algorithms/0284.peeking-iterator/peeking-iterator_test.go delete mode 100755 Algorithms/0287.find-the-duplicate-number/README.md delete mode 100755 Algorithms/0287.find-the-duplicate-number/find-the-duplicate-number.go delete mode 100755 Algorithms/0287.find-the-duplicate-number/find-the-duplicate-number_test.go delete mode 100755 Algorithms/0289.game-of-life/README.md delete mode 100755 Algorithms/0289.game-of-life/game-of-life.go delete mode 100755 Algorithms/0289.game-of-life/game-of-life_test.go delete mode 100755 Algorithms/0290.word-pattern/README.md delete mode 100755 Algorithms/0290.word-pattern/word-pattern.go delete mode 100755 Algorithms/0290.word-pattern/word-pattern_test.go delete mode 100755 Algorithms/0292.nim-game/README.md delete mode 100755 Algorithms/0292.nim-game/nim-game.go delete mode 100755 Algorithms/0292.nim-game/nim-game_test.go delete mode 100755 Algorithms/0295.find-median-from-data-stream/README.md delete mode 100755 Algorithms/0295.find-median-from-data-stream/find-median-from-data-stream.go delete mode 100755 Algorithms/0295.find-median-from-data-stream/find-median-from-data-stream_test.go delete mode 100755 Algorithms/0297.serialize-and-deserialize-binary-tree/README.md delete mode 100755 Algorithms/0297.serialize-and-deserialize-binary-tree/serialize-and-deserialize-binary-tree.go delete mode 100755 Algorithms/0297.serialize-and-deserialize-binary-tree/serialize-and-deserialize-binary-tree_test.go delete mode 100755 Algorithms/0299.bulls-and-cows/README.md delete mode 100755 Algorithms/0299.bulls-and-cows/bulls-and-cows.go delete mode 100755 Algorithms/0299.bulls-and-cows/bulls-and-cows_test.go delete mode 100755 Algorithms/0300.longest-increasing-subsequence/README.md delete mode 100755 Algorithms/0300.longest-increasing-subsequence/longest-increasing-subsequence.go delete mode 100755 Algorithms/0300.longest-increasing-subsequence/longest-increasing-subsequence_test.go delete mode 100755 Algorithms/0301.remove-invalid-parentheses/README.md delete mode 100755 Algorithms/0301.remove-invalid-parentheses/remove-invalid-parentheses.go delete mode 100755 Algorithms/0301.remove-invalid-parentheses/remove-invalid-parentheses_test.go delete mode 100755 Algorithms/0303.range-sum-query-immutable/README.md delete mode 100755 Algorithms/0303.range-sum-query-immutable/range-sum-query-immutable.go delete mode 100755 Algorithms/0303.range-sum-query-immutable/range-sum-query-immutable_test.go delete mode 100755 Algorithms/0304.range-sum-query-2d-immutable/README.md delete mode 100755 Algorithms/0304.range-sum-query-2d-immutable/range-sum-query-2d-immutable.go delete mode 100755 Algorithms/0304.range-sum-query-2d-immutable/range-sum-query-2d-immutable_test.go delete mode 100755 Algorithms/0306.additive-number/README.md delete mode 100755 Algorithms/0306.additive-number/additive-number.go delete mode 100755 Algorithms/0306.additive-number/additive-number_test.go delete mode 100755 Algorithms/0307.range-sum-query-mutable/README.md delete mode 100755 Algorithms/0307.range-sum-query-mutable/range-sum-query-mutable.go delete mode 100755 Algorithms/0307.range-sum-query-mutable/range-sum-query-mutable_test.go delete mode 100755 Algorithms/0309.best-time-to-buy-and-sell-stock-with-cooldown/README.md delete mode 100755 Algorithms/0309.best-time-to-buy-and-sell-stock-with-cooldown/best-time-to-buy-and-sell-stock-with-cooldown.go delete mode 100755 Algorithms/0309.best-time-to-buy-and-sell-stock-with-cooldown/best-time-to-buy-and-sell-stock-with-cooldown_test.go delete mode 100755 Algorithms/0310.minimum-height-trees/README.md delete mode 100755 Algorithms/0310.minimum-height-trees/minimum-height-trees.go delete mode 100755 Algorithms/0310.minimum-height-trees/minimum-height-trees_test.go delete mode 100755 Algorithms/0312.burst-balloons/README.md delete mode 100755 Algorithms/0312.burst-balloons/burst-balloons.go delete mode 100755 Algorithms/0312.burst-balloons/burst-balloons_test.go delete mode 100755 Algorithms/0313.super-ugly-number/README.md delete mode 100755 Algorithms/0313.super-ugly-number/super-ugly-number.go delete mode 100755 Algorithms/0313.super-ugly-number/super-ugly-number_test.go delete mode 100755 Algorithms/0315.count-of-smaller-numbers-after-self/README.md delete mode 100755 Algorithms/0315.count-of-smaller-numbers-after-self/count-of-smaller-numbers-after-self.go delete mode 100755 Algorithms/0315.count-of-smaller-numbers-after-self/count-of-smaller-numbers-after-self_test.go delete mode 100755 Algorithms/0316.remove-duplicate-letters/README.md delete mode 100755 Algorithms/0316.remove-duplicate-letters/remove-duplicate-letters.go delete mode 100755 Algorithms/0316.remove-duplicate-letters/remove-duplicate-letters_test.go delete mode 100755 Algorithms/0318.maximum-product-of-word-lengths/README.md delete mode 100755 Algorithms/0318.maximum-product-of-word-lengths/maximum-product-of-word-lengths.go delete mode 100755 Algorithms/0318.maximum-product-of-word-lengths/maximum-product-of-word-lengths_test.go delete mode 100755 Algorithms/0319.bulb-switcher/README.md delete mode 100755 Algorithms/0319.bulb-switcher/bulb-switcher.go delete mode 100755 Algorithms/0319.bulb-switcher/bulb-switcher_test.go delete mode 100755 Algorithms/0321.create-maximum-number/README.md delete mode 100755 Algorithms/0321.create-maximum-number/create-maximum-number.go delete mode 100755 Algorithms/0321.create-maximum-number/create-maximum-number_test.go delete mode 100755 Algorithms/0322.coin-change/README.md delete mode 100755 Algorithms/0322.coin-change/coin-change.go delete mode 100755 Algorithms/0322.coin-change/coin-change_test.go delete mode 100755 Algorithms/0324.wiggle-sort-ii/README.md delete mode 100755 Algorithms/0324.wiggle-sort-ii/wiggle-sort-ii.go delete mode 100755 Algorithms/0324.wiggle-sort-ii/wiggle-sort-ii_test.go delete mode 100755 Algorithms/0326.power-of-three/README.md delete mode 100755 Algorithms/0326.power-of-three/power-of-three.go delete mode 100755 Algorithms/0326.power-of-three/power-of-three_test.go delete mode 100755 Algorithms/0327.count-of-range-sum/README.md delete mode 100755 Algorithms/0327.count-of-range-sum/count-of-range-sum.go delete mode 100755 Algorithms/0327.count-of-range-sum/count-of-range-sum_test.go delete mode 100755 Algorithms/0328.odd-even-linked-list/README.md delete mode 100755 Algorithms/0328.odd-even-linked-list/odd-even-linked-list.go delete mode 100755 Algorithms/0328.odd-even-linked-list/odd-even-linked-list_test.go delete mode 100755 Algorithms/0329.longest-increasing-path-in-a-matrix/README.md delete mode 100755 Algorithms/0329.longest-increasing-path-in-a-matrix/longest-increasing-path-in-a-matrix.go delete mode 100755 Algorithms/0329.longest-increasing-path-in-a-matrix/longest-increasing-path-in-a-matrix_test.go delete mode 100755 Algorithms/0330.patching-array/README.md delete mode 100755 Algorithms/0330.patching-array/patching-array.go delete mode 100755 Algorithms/0330.patching-array/patching-array_test.go delete mode 100755 Algorithms/0331.verify-preorder-serialization-of-a-binary-tree/README.md delete mode 100755 Algorithms/0331.verify-preorder-serialization-of-a-binary-tree/verify-preorder-serialization-of-a-binary-tree.go delete mode 100755 Algorithms/0331.verify-preorder-serialization-of-a-binary-tree/verify-preorder-serialization-of-a-binary-tree_test.go delete mode 100755 Algorithms/0332.reconstruct-itinerary/README.md delete mode 100755 Algorithms/0332.reconstruct-itinerary/reconstruct-itinerary.go delete mode 100755 Algorithms/0332.reconstruct-itinerary/reconstruct-itinerary_test.go delete mode 100755 Algorithms/0334.increasing-triplet-subsequence/README.md delete mode 100755 Algorithms/0334.increasing-triplet-subsequence/increasing-triplet-subsequence.go delete mode 100755 Algorithms/0334.increasing-triplet-subsequence/increasing-triplet-subsequence_test.go delete mode 100755 Algorithms/0335.self-crossing/README.md delete mode 100755 Algorithms/0335.self-crossing/self-crossing.go delete mode 100755 Algorithms/0335.self-crossing/self-crossing_test.go delete mode 100755 Algorithms/0336.palindrome-pairs/README.md delete mode 100755 Algorithms/0336.palindrome-pairs/palindrome-pairs.go delete mode 100755 Algorithms/0336.palindrome-pairs/palindrome-pairs_test.go delete mode 100755 Algorithms/0337.house-robber-iii/README.md delete mode 100755 Algorithms/0337.house-robber-iii/house-robber-iii.go delete mode 100755 Algorithms/0337.house-robber-iii/house-robber-iii_test.go delete mode 100755 Algorithms/0338.counting-bits/README.md delete mode 100755 Algorithms/0338.counting-bits/counting-bits.go delete mode 100755 Algorithms/0338.counting-bits/counting-bits_test.go delete mode 100755 Algorithms/0341.flatten-nested-list-iterator/README.md delete mode 100755 Algorithms/0341.flatten-nested-list-iterator/flatten-nested-list-iterator.go delete mode 100755 Algorithms/0341.flatten-nested-list-iterator/flatten-nested-list-iterator_test.go delete mode 100755 Algorithms/0342.power-of-four/README.md delete mode 100755 Algorithms/0342.power-of-four/power-of-four.go delete mode 100755 Algorithms/0342.power-of-four/power-of-four_test.go delete mode 100755 Algorithms/0343.integer-break/README.md delete mode 100755 Algorithms/0343.integer-break/integer-break.go delete mode 100755 Algorithms/0343.integer-break/integer-break_test.go delete mode 100755 Algorithms/0344.reverse-string/README.md delete mode 100755 Algorithms/0344.reverse-string/reverse-string.go delete mode 100755 Algorithms/0344.reverse-string/reverse-string_test.go delete mode 100755 Algorithms/0345.reverse-vowels-of-a-string/README.md delete mode 100755 Algorithms/0345.reverse-vowels-of-a-string/reverse-vowels-of-a-string.go delete mode 100755 Algorithms/0345.reverse-vowels-of-a-string/reverse-vowels-of-a-string_test.go delete mode 100755 Algorithms/0347.top-k-frequent-elements/README.md delete mode 100755 Algorithms/0347.top-k-frequent-elements/top-k-frequent-elements.go delete mode 100755 Algorithms/0347.top-k-frequent-elements/top-k-frequent-elements_test.go delete mode 100755 Algorithms/0349.intersection-of-two-arrays/README.md delete mode 100755 Algorithms/0349.intersection-of-two-arrays/intersection-of-two-arrays.go delete mode 100755 Algorithms/0349.intersection-of-two-arrays/intersection-of-two-arrays_test.go delete mode 100755 Algorithms/0350.intersection-of-two-arrays-ii/README.md delete mode 100755 Algorithms/0350.intersection-of-two-arrays-ii/intersection-of-two-arrays-ii.go delete mode 100755 Algorithms/0350.intersection-of-two-arrays-ii/intersection-of-two-arrays-ii_test.go delete mode 100755 Algorithms/0352.data-stream-as-disjoint-intervals/README.md delete mode 100755 Algorithms/0352.data-stream-as-disjoint-intervals/data-stream-as-disjoint-intervals.go delete mode 100755 Algorithms/0352.data-stream-as-disjoint-intervals/data-stream-as-disjoint-intervals_test.go delete mode 100755 Algorithms/0354.russian-doll-envelopes/README.md delete mode 100755 Algorithms/0354.russian-doll-envelopes/russian-doll-envelopes.go delete mode 100755 Algorithms/0354.russian-doll-envelopes/russian-doll-envelopes_test.go delete mode 100755 Algorithms/0355.design-twitter/README.md delete mode 100755 Algorithms/0355.design-twitter/design-twitter.go delete mode 100755 Algorithms/0355.design-twitter/design-twitter_test.go delete mode 100755 Algorithms/0357.count-numbers-with-unique-digits/README.md delete mode 100755 Algorithms/0357.count-numbers-with-unique-digits/count-numbers-with-unique-digits.go delete mode 100755 Algorithms/0357.count-numbers-with-unique-digits/count-numbers-with-unique-digits_test.go delete mode 100755 Algorithms/0363.max-sum-of-rectangle-no-larger-than-k/README.md delete mode 100755 Algorithms/0363.max-sum-of-rectangle-no-larger-than-k/max-sum-of-rectangle-no-larger-than-k.go delete mode 100755 Algorithms/0363.max-sum-of-rectangle-no-larger-than-k/max-sum-of-rectangle-no-larger-than-k_test.go delete mode 100755 Algorithms/0365.water-and-jug-problem/README.md delete mode 100755 Algorithms/0365.water-and-jug-problem/water-and-jug-problem.go delete mode 100755 Algorithms/0365.water-and-jug-problem/water-and-jug-problem_test.go delete mode 100755 Algorithms/0367.valid-perfect-square/README.md delete mode 100755 Algorithms/0367.valid-perfect-square/valid-perfect-square.go delete mode 100755 Algorithms/0367.valid-perfect-square/valid-perfect-square_test.go delete mode 100755 Algorithms/0368.largest-divisible-subset/README.md delete mode 100755 Algorithms/0368.largest-divisible-subset/largest-divisible-subset.go delete mode 100755 Algorithms/0368.largest-divisible-subset/largest-divisible-subset_test.go delete mode 100755 Algorithms/0371.sum-of-two-integers/README.md delete mode 100755 Algorithms/0371.sum-of-two-integers/sum-of-two-integers.go delete mode 100755 Algorithms/0371.sum-of-two-integers/sum-of-two-integers_test.go delete mode 100755 Algorithms/0372.super-pow/README.md delete mode 100755 Algorithms/0372.super-pow/super-pow.go delete mode 100755 Algorithms/0372.super-pow/super-pow_test.go delete mode 100755 Algorithms/0373.find-k-pairs-with-smallest-sums/README.md delete mode 100755 Algorithms/0373.find-k-pairs-with-smallest-sums/find-k-pairs-with-smallest-sums.go delete mode 100755 Algorithms/0373.find-k-pairs-with-smallest-sums/find-k-pairs-with-smallest-sums_test.go delete mode 100755 Algorithms/0374.guess-number-higher-or-lower/README.md delete mode 100755 Algorithms/0374.guess-number-higher-or-lower/guess-number-higher-or-lower.go delete mode 100755 Algorithms/0374.guess-number-higher-or-lower/guess-number-higher-or-lower_test.go delete mode 100755 Algorithms/0375.guess-number-higher-or-lower-ii/README.md delete mode 100755 Algorithms/0375.guess-number-higher-or-lower-ii/guess-number-higher-or-lower-ii.go delete mode 100755 Algorithms/0375.guess-number-higher-or-lower-ii/guess-number-higher-or-lower-ii_test.go delete mode 100755 Algorithms/0376.wiggle-subsequence/README.md delete mode 100755 Algorithms/0376.wiggle-subsequence/wiggle-subsequence.go delete mode 100755 Algorithms/0376.wiggle-subsequence/wiggle-subsequence_test.go delete mode 100755 Algorithms/0377.combination-sum-iv/README.md delete mode 100755 Algorithms/0377.combination-sum-iv/combination-sum-iv.go delete mode 100755 Algorithms/0377.combination-sum-iv/combination-sum-iv_test.go delete mode 100755 Algorithms/0378.kth-smallest-element-in-a-sorted-matrix/README.md delete mode 100755 Algorithms/0378.kth-smallest-element-in-a-sorted-matrix/kth-smallest-element-in-a-sorted-matrix.go delete mode 100755 Algorithms/0378.kth-smallest-element-in-a-sorted-matrix/kth-smallest-element-in-a-sorted-matrix_test.go delete mode 100755 Algorithms/0380.insert-delete-getrandom-o1/README.md delete mode 100755 Algorithms/0380.insert-delete-getrandom-o1/insert-delete-getrandom-o1.go delete mode 100755 Algorithms/0380.insert-delete-getrandom-o1/insert-delete-getrandom-o1_test.go delete mode 100755 Algorithms/0381.insert-delete-getrandom-o1-duplicates-allowed/README.md delete mode 100755 Algorithms/0381.insert-delete-getrandom-o1-duplicates-allowed/insert-delete-getrandom-o1-duplicates-allowed.go delete mode 100755 Algorithms/0381.insert-delete-getrandom-o1-duplicates-allowed/insert-delete-getrandom-o1-duplicates-allowed_test.go delete mode 100755 Algorithms/0382.linked-list-random-node/README.md delete mode 100755 Algorithms/0382.linked-list-random-node/linked-list-random-node.go delete mode 100755 Algorithms/0382.linked-list-random-node/linked-list-random-node_test.go delete mode 100755 Algorithms/0383.ransom-note/README.md delete mode 100755 Algorithms/0383.ransom-note/ransom-note.go delete mode 100755 Algorithms/0383.ransom-note/ransom-note_test.go delete mode 100755 Algorithms/0384.shuffle-an-array/README.md delete mode 100755 Algorithms/0384.shuffle-an-array/shuffle-an-array.go delete mode 100755 Algorithms/0384.shuffle-an-array/shuffle-an-array_test.go delete mode 100755 Algorithms/0385.mini-parser/README.md delete mode 100755 Algorithms/0385.mini-parser/mini-parser.go delete mode 100755 Algorithms/0385.mini-parser/mini-parser_test.go delete mode 100755 Algorithms/0386.lexicographical-numbers/README.md delete mode 100755 Algorithms/0386.lexicographical-numbers/lexicographical-numbers.go delete mode 100755 Algorithms/0386.lexicographical-numbers/lexicographical-numbers_test.go delete mode 100755 Algorithms/0387.first-unique-character-in-a-string/README.md delete mode 100755 Algorithms/0387.first-unique-character-in-a-string/first-unique-character-in-a-string.go delete mode 100755 Algorithms/0387.first-unique-character-in-a-string/first-unique-character-in-a-string_test.go delete mode 100755 Algorithms/0388.longest-absolute-file-path/README.md delete mode 100755 Algorithms/0388.longest-absolute-file-path/longest-absolute-file-path.go delete mode 100755 Algorithms/0388.longest-absolute-file-path/longest-absolute-file-path_test.go delete mode 100755 Algorithms/0389.find-the-difference/README.md delete mode 100755 Algorithms/0389.find-the-difference/find-the-difference.go delete mode 100755 Algorithms/0389.find-the-difference/find-the-difference_test.go delete mode 100755 Algorithms/0390.elimination-game/README.md delete mode 100755 Algorithms/0390.elimination-game/elimination-game.go delete mode 100755 Algorithms/0390.elimination-game/elimination-game_test.go delete mode 100755 Algorithms/0391.perfect-rectangle/README.md delete mode 100755 Algorithms/0391.perfect-rectangle/perfect-rectangle.go delete mode 100755 Algorithms/0391.perfect-rectangle/perfect-rectangle_test.go delete mode 100755 Algorithms/0392.is-subsequence/README.md delete mode 100755 Algorithms/0392.is-subsequence/is-subsequence.go delete mode 100755 Algorithms/0392.is-subsequence/is-subsequence_test.go delete mode 100755 Algorithms/0393.utf-8-validation/README.md delete mode 100755 Algorithms/0393.utf-8-validation/utf-8-validation.go delete mode 100755 Algorithms/0393.utf-8-validation/utf-8-validation_test.go delete mode 100755 Algorithms/0394.decode-string/README.md delete mode 100755 Algorithms/0394.decode-string/decode-string.go delete mode 100755 Algorithms/0394.decode-string/decode-string_test.go delete mode 100755 Algorithms/0395.longest-substring-with-at-least-k-repeating-characters/README.md delete mode 100755 Algorithms/0395.longest-substring-with-at-least-k-repeating-characters/longest-substring-with-at-least-k-repeating-characters.go delete mode 100755 Algorithms/0395.longest-substring-with-at-least-k-repeating-characters/longest-substring-with-at-least-k-repeating-characters_test.go delete mode 100755 Algorithms/0396.rotate-function/README.md delete mode 100755 Algorithms/0396.rotate-function/rotate-function.go delete mode 100755 Algorithms/0396.rotate-function/rotate-function_test.go delete mode 100755 Algorithms/0397.integer-replacement/README.md delete mode 100755 Algorithms/0397.integer-replacement/integer-replacement.go delete mode 100755 Algorithms/0397.integer-replacement/integer-replacement_test.go delete mode 100755 Algorithms/0398.random-pick-index/README.md delete mode 100755 Algorithms/0398.random-pick-index/random-pick-index.go delete mode 100755 Algorithms/0398.random-pick-index/random-pick-index_test.go delete mode 100755 Algorithms/0399.evaluate-division/README.md delete mode 100755 Algorithms/0399.evaluate-division/evaluate-division.go delete mode 100755 Algorithms/0399.evaluate-division/evaluate-division_test.go delete mode 100755 Algorithms/0400.nth-digit/README.md delete mode 100755 Algorithms/0400.nth-digit/nth-digit.go delete mode 100755 Algorithms/0400.nth-digit/nth-digit_test.go delete mode 100755 Algorithms/0401.binary-watch/README.md delete mode 100755 Algorithms/0401.binary-watch/binary-watch.go delete mode 100755 Algorithms/0401.binary-watch/binary-watch_test.go delete mode 100755 Algorithms/0402.remove-k-digits/README.md delete mode 100755 Algorithms/0402.remove-k-digits/remove-k-digits.go delete mode 100755 Algorithms/0402.remove-k-digits/remove-k-digits_test.go delete mode 100755 Algorithms/0403.frog-jump/README.md delete mode 100755 Algorithms/0403.frog-jump/frog-jump.go delete mode 100755 Algorithms/0403.frog-jump/frog-jump_test.go delete mode 100755 Algorithms/0404.sum-of-left-leaves/README.md delete mode 100755 Algorithms/0404.sum-of-left-leaves/sum-of-left-leaves.go delete mode 100755 Algorithms/0404.sum-of-left-leaves/sum-of-left-leaves_test.go delete mode 100755 Algorithms/0405.convert-a-number-to-hexadecimal/README.md delete mode 100755 Algorithms/0405.convert-a-number-to-hexadecimal/convert-a-number-to-hexadecimal.go delete mode 100755 Algorithms/0405.convert-a-number-to-hexadecimal/convert-a-number-to-hexadecimal_test.go delete mode 100755 Algorithms/0406.queue-reconstruction-by-height/README.md delete mode 100755 Algorithms/0406.queue-reconstruction-by-height/queue-reconstruction-by-height.go delete mode 100755 Algorithms/0406.queue-reconstruction-by-height/queue-reconstruction-by-height_test.go delete mode 100755 Algorithms/0407.trapping-rain-water-ii/README.md delete mode 100755 Algorithms/0407.trapping-rain-water-ii/trapping-rain-water-ii.go delete mode 100755 Algorithms/0407.trapping-rain-water-ii/trapping-rain-water-ii_test.go delete mode 100755 Algorithms/0409.longest-palindrome/README.md delete mode 100755 Algorithms/0409.longest-palindrome/longest-palindrome.go delete mode 100755 Algorithms/0409.longest-palindrome/longest-palindrome_test.go delete mode 100755 Algorithms/0410.split-array-largest-sum/README.md delete mode 100755 Algorithms/0410.split-array-largest-sum/split-array-largest-sum.go delete mode 100755 Algorithms/0410.split-array-largest-sum/split-array-largest-sum_test.go delete mode 100755 Algorithms/0412.fizz-buzz/README.md delete mode 100755 Algorithms/0412.fizz-buzz/fizz-buzz.go delete mode 100755 Algorithms/0412.fizz-buzz/fizz-buzz_test.go delete mode 100755 Algorithms/0413.arithmetic-slices/README.md delete mode 100755 Algorithms/0413.arithmetic-slices/arithmetic-slices.go delete mode 100755 Algorithms/0413.arithmetic-slices/arithmetic-slices_test.go delete mode 100755 Algorithms/0415.add-strings/README.md delete mode 100755 Algorithms/0415.add-strings/add-strings.go delete mode 100755 Algorithms/0415.add-strings/add-strings_test.go delete mode 100755 Algorithms/0416.partition-equal-subset-sum/README.md delete mode 100755 Algorithms/0416.partition-equal-subset-sum/partition-equal-subset-sum.go delete mode 100755 Algorithms/0416.partition-equal-subset-sum/partition-equal-subset-sum_test.go delete mode 100755 Algorithms/0417.pacific-atlantic-water-flow/README.md delete mode 100755 Algorithms/0417.pacific-atlantic-water-flow/pacific-atlantic-water-flow.go delete mode 100755 Algorithms/0417.pacific-atlantic-water-flow/pacific-atlantic-water-flow_test.go delete mode 100755 Algorithms/0419.battleships-in-a-board/README.md delete mode 100755 Algorithms/0419.battleships-in-a-board/battleships-in-a-board.go delete mode 100755 Algorithms/0419.battleships-in-a-board/battleships-in-a-board_test.go delete mode 100755 Algorithms/0420.strong-password-checker/README.md delete mode 100755 Algorithms/0420.strong-password-checker/strong-password-checker.go delete mode 100755 Algorithms/0420.strong-password-checker/strong-password-checker_test.go delete mode 100755 Algorithms/0421.maximum-xor-of-two-numbers-in-an-array/README.md delete mode 100755 Algorithms/0421.maximum-xor-of-two-numbers-in-an-array/maximum-xor-of-two-numbers-in-an-array.go delete mode 100755 Algorithms/0421.maximum-xor-of-two-numbers-in-an-array/maximum-xor-of-two-numbers-in-an-array_test.go delete mode 100755 Algorithms/0423.reconstruct-original-digits-from-english/README.md delete mode 100755 Algorithms/0423.reconstruct-original-digits-from-english/reconstruct-original-digits-from-english.go delete mode 100755 Algorithms/0423.reconstruct-original-digits-from-english/reconstruct-original-digits-from-english_test.go delete mode 100755 Algorithms/0424.longest-repeating-character-replacement/README.md delete mode 100755 Algorithms/0424.longest-repeating-character-replacement/longest-repeating-character-replacement.go delete mode 100755 Algorithms/0424.longest-repeating-character-replacement/longest-repeating-character-replacement_test.go delete mode 100755 Algorithms/0432.all-oone-data-structure/README.md delete mode 100755 Algorithms/0432.all-oone-data-structure/all-oone-data-structure.go delete mode 100755 Algorithms/0432.all-oone-data-structure/all-oone-data-structure_test.go delete mode 100755 Algorithms/0434.number-of-segments-in-a-string/README.md delete mode 100755 Algorithms/0434.number-of-segments-in-a-string/number-of-segments-in-a-string.go delete mode 100755 Algorithms/0434.number-of-segments-in-a-string/number-of-segments-in-a-string_test.go delete mode 100755 Algorithms/0435.non-overlapping-intervals/README.md delete mode 100755 Algorithms/0435.non-overlapping-intervals/non-overlapping-intervals.go delete mode 100755 Algorithms/0435.non-overlapping-intervals/non-overlapping-intervals_test.go delete mode 100755 Algorithms/0436.find-right-interval/README.md delete mode 100755 Algorithms/0436.find-right-interval/find-right-interval.go delete mode 100755 Algorithms/0436.find-right-interval/find-right-interval_test.go delete mode 100755 Algorithms/0437.path-sum-iii/README.md delete mode 100755 Algorithms/0437.path-sum-iii/path-sum-iii.go delete mode 100755 Algorithms/0437.path-sum-iii/path-sum-iii_test.go delete mode 100755 Algorithms/0438.find-all-anagrams-in-a-string/README.md delete mode 100755 Algorithms/0438.find-all-anagrams-in-a-string/find-all-anagrams-in-a-string.go delete mode 100755 Algorithms/0438.find-all-anagrams-in-a-string/find-all-anagrams-in-a-string_test.go delete mode 100755 Algorithms/0440.k-th-smallest-in-lexicographical-order/README.md delete mode 100755 Algorithms/0440.k-th-smallest-in-lexicographical-order/k-th-smallest-in-lexicographical-order.go delete mode 100755 Algorithms/0440.k-th-smallest-in-lexicographical-order/k-th-smallest-in-lexicographical-order_test.go delete mode 100755 Algorithms/0441.arranging-coins/README.md delete mode 100755 Algorithms/0441.arranging-coins/arranging-coins.go delete mode 100755 Algorithms/0441.arranging-coins/arranging-coins_test.go delete mode 100755 Algorithms/0442.find-all-duplicates-in-an-array/README.md delete mode 100755 Algorithms/0442.find-all-duplicates-in-an-array/find-all-duplicates-in-an-array.go delete mode 100755 Algorithms/0442.find-all-duplicates-in-an-array/find-all-duplicates-in-an-array_test.go delete mode 100755 Algorithms/0445.add-two-numbers-ii/README.md delete mode 100755 Algorithms/0445.add-two-numbers-ii/add-two-numbers-ii.go delete mode 100755 Algorithms/0445.add-two-numbers-ii/add-two-numbers-ii_test.go delete mode 100755 Algorithms/0446.arithmetic-slices-ii-subsequence/README.md delete mode 100755 Algorithms/0446.arithmetic-slices-ii-subsequence/arithmetic-slices-ii-subsequence.go delete mode 100755 Algorithms/0446.arithmetic-slices-ii-subsequence/arithmetic-slices-ii-subsequence_test.go delete mode 100755 Algorithms/0447.number-of-boomerangs/README.md delete mode 100755 Algorithms/0447.number-of-boomerangs/number-of-boomerangs.go delete mode 100755 Algorithms/0447.number-of-boomerangs/number-of-boomerangs_test.go delete mode 100755 Algorithms/0449.serialize-and-deserialize-bst/README.md delete mode 100755 Algorithms/0449.serialize-and-deserialize-bst/serialize-and-deserialize-bst.go delete mode 100755 Algorithms/0449.serialize-and-deserialize-bst/serialize-and-deserialize-bst_test.go delete mode 100755 Algorithms/0450.delete-node-in-a-bst/README.md delete mode 100755 Algorithms/0450.delete-node-in-a-bst/delete-node-in-a-bst.go delete mode 100755 Algorithms/0450.delete-node-in-a-bst/delete-node-in-a-bst_test.go delete mode 100755 Algorithms/0451.sort-characters-by-frequency/README.md delete mode 100755 Algorithms/0451.sort-characters-by-frequency/sort-characters-by-frequency.go delete mode 100755 Algorithms/0451.sort-characters-by-frequency/sort-characters-by-frequency_test.go delete mode 100755 Algorithms/0452.minimum-number-of-arrows-to-burst-balloons/README.md delete mode 100755 Algorithms/0452.minimum-number-of-arrows-to-burst-balloons/minimum-number-of-arrows-to-burst-balloons.go delete mode 100755 Algorithms/0452.minimum-number-of-arrows-to-burst-balloons/minimum-number-of-arrows-to-burst-balloons_test.go delete mode 100755 Algorithms/0453.minimum-moves-to-equal-array-elements/README.md delete mode 100755 Algorithms/0453.minimum-moves-to-equal-array-elements/minimum-moves-to-equal-array-elements.go delete mode 100755 Algorithms/0453.minimum-moves-to-equal-array-elements/minimum-moves-to-equal-array-elements_test.go delete mode 100755 Algorithms/0454.4sum-ii/4sum-ii.go delete mode 100755 Algorithms/0454.4sum-ii/4sum-ii_test.go delete mode 100755 Algorithms/0454.4sum-ii/README.md delete mode 100755 Algorithms/0455.assign-cookies/README.md delete mode 100755 Algorithms/0455.assign-cookies/assign-cookies.go delete mode 100755 Algorithms/0455.assign-cookies/assign-cookies_test.go delete mode 100755 Algorithms/0456.132-pattern/132-pattern.go delete mode 100755 Algorithms/0456.132-pattern/132-pattern_test.go delete mode 100755 Algorithms/0456.132-pattern/README.md delete mode 100755 Algorithms/0459.repeated-substring-pattern/README.md delete mode 100755 Algorithms/0459.repeated-substring-pattern/repeated-substring-pattern.go delete mode 100755 Algorithms/0459.repeated-substring-pattern/repeated-substring-pattern_test.go delete mode 100755 Algorithms/0460.lfu-cache/README.md delete mode 100755 Algorithms/0460.lfu-cache/lfu-cache.go delete mode 100755 Algorithms/0460.lfu-cache/lfu-cache_test.go delete mode 100755 Algorithms/0461.hamming-distance/README.md delete mode 100755 Algorithms/0461.hamming-distance/hamming-distance.go delete mode 100755 Algorithms/0461.hamming-distance/hamming-distance_test.go delete mode 100755 Algorithms/0462.minimum-moves-to-equal-array-elements-ii/README.md delete mode 100755 Algorithms/0462.minimum-moves-to-equal-array-elements-ii/minimum-moves-to-equal-array-elements-ii.go delete mode 100755 Algorithms/0462.minimum-moves-to-equal-array-elements-ii/minimum-moves-to-equal-array-elements-ii_test.go delete mode 100755 Algorithms/0463.island-perimeter/README.md delete mode 100755 Algorithms/0463.island-perimeter/island-perimeter.go delete mode 100755 Algorithms/0463.island-perimeter/island-perimeter_test.go delete mode 100755 Algorithms/0464.can-i-win/README.md delete mode 100755 Algorithms/0464.can-i-win/can-i-win.go delete mode 100755 Algorithms/0464.can-i-win/can-i-win_test.go delete mode 100755 Algorithms/0466.count-the-repetitions/README.md delete mode 100755 Algorithms/0466.count-the-repetitions/count-the-repetitions.go delete mode 100755 Algorithms/0466.count-the-repetitions/count-the-repetitions_test.go delete mode 100755 Algorithms/0467.unique-substrings-in-wraparound-string/README.md delete mode 100755 Algorithms/0467.unique-substrings-in-wraparound-string/unique-substrings-in-wraparound-string.go delete mode 100755 Algorithms/0467.unique-substrings-in-wraparound-string/unique-substrings-in-wraparound-string_test.go delete mode 100755 Algorithms/0468.validate-ip-address/README.md delete mode 100755 Algorithms/0468.validate-ip-address/validate-ip-address.go delete mode 100755 Algorithms/0468.validate-ip-address/validate-ip-address_test.go delete mode 100755 Algorithms/0472.concatenated-words/README.md delete mode 100755 Algorithms/0472.concatenated-words/concatenated-words.go delete mode 100755 Algorithms/0472.concatenated-words/concatenated-words_test.go delete mode 100755 Algorithms/0473.matchsticks-to-square/README.md delete mode 100755 Algorithms/0473.matchsticks-to-square/matchsticks-to-square.go delete mode 100755 Algorithms/0473.matchsticks-to-square/matchsticks-to-square_test.go delete mode 100755 Algorithms/0474.ones-and-zeroes/README.md delete mode 100755 Algorithms/0474.ones-and-zeroes/ones-and-zeroes.go delete mode 100755 Algorithms/0474.ones-and-zeroes/ones-and-zeroes_test.go delete mode 100755 Algorithms/0475.heaters/README.md delete mode 100755 Algorithms/0475.heaters/heaters.go delete mode 100755 Algorithms/0475.heaters/heaters_test.go delete mode 100755 Algorithms/0476.number-complement/README.md delete mode 100755 Algorithms/0476.number-complement/number-complement.go delete mode 100755 Algorithms/0476.number-complement/number-complement_test.go delete mode 100755 Algorithms/0477.total-hamming-distance/README.md delete mode 100755 Algorithms/0477.total-hamming-distance/total-hamming-distance.go delete mode 100755 Algorithms/0477.total-hamming-distance/total-hamming-distance_test.go delete mode 100755 Algorithms/0479.largest-palindrome-product/README.md delete mode 100755 Algorithms/0479.largest-palindrome-product/largest-palindrome-product.go delete mode 100755 Algorithms/0479.largest-palindrome-product/largest-palindrome-product_test.go delete mode 100755 Algorithms/0480.sliding-window-median/README.md delete mode 100755 Algorithms/0480.sliding-window-median/sliding-window-median.go delete mode 100755 Algorithms/0480.sliding-window-median/sliding-window-median_test.go delete mode 100755 Algorithms/0481.magical-string/README.md delete mode 100755 Algorithms/0481.magical-string/magical-string.go delete mode 100755 Algorithms/0481.magical-string/magical-string_test.go delete mode 100755 Algorithms/0482.license-key-formatting/README.md delete mode 100755 Algorithms/0482.license-key-formatting/license-key-formatting.go delete mode 100755 Algorithms/0482.license-key-formatting/license-key-formatting_test.go delete mode 100755 Algorithms/0483.smallest-good-base/README.md delete mode 100755 Algorithms/0483.smallest-good-base/smallest-good-base.go delete mode 100755 Algorithms/0483.smallest-good-base/smallest-good-base_test.go delete mode 100755 Algorithms/0486.predict-the-winner/README.md delete mode 100755 Algorithms/0486.predict-the-winner/predict-the-winner.go delete mode 100755 Algorithms/0486.predict-the-winner/predict-the-winner_test.go delete mode 100755 Algorithms/0488.zuma-game/README.md delete mode 100755 Algorithms/0488.zuma-game/zuma-game.go delete mode 100755 Algorithms/0488.zuma-game/zuma-game_test.go delete mode 100755 Algorithms/0491.increasing-subsequences/README.md delete mode 100755 Algorithms/0491.increasing-subsequences/increasing-subsequences.go delete mode 100755 Algorithms/0491.increasing-subsequences/increasing-subsequences_test.go delete mode 100755 Algorithms/0492.construct-the-rectangle/README.md delete mode 100755 Algorithms/0492.construct-the-rectangle/construct-the-rectangle.go delete mode 100755 Algorithms/0492.construct-the-rectangle/construct-the-rectangle_test.go delete mode 100755 Algorithms/0493.reverse-pairs/README.md delete mode 100755 Algorithms/0493.reverse-pairs/reverse-pairs.go delete mode 100755 Algorithms/0493.reverse-pairs/reverse-pairs_test.go delete mode 100755 Algorithms/0494.target-sum/README.md delete mode 100755 Algorithms/0494.target-sum/target-sum.go delete mode 100755 Algorithms/0494.target-sum/target-sum_test.go delete mode 100755 Algorithms/0495.teemo-attacking/README.md delete mode 100755 Algorithms/0495.teemo-attacking/teemo-attacking.go delete mode 100755 Algorithms/0495.teemo-attacking/teemo-attacking_test.go delete mode 100755 Algorithms/0496.next-greater-element-i/README.md delete mode 100755 Algorithms/0496.next-greater-element-i/next-greater-element-i.go delete mode 100755 Algorithms/0496.next-greater-element-i/next-greater-element-i_test.go delete mode 100755 Algorithms/0498.diagonal-traverse/README.md delete mode 100755 Algorithms/0498.diagonal-traverse/diagonal-traverse.go delete mode 100755 Algorithms/0498.diagonal-traverse/diagonal-traverse_test.go delete mode 100755 Algorithms/0500.keyboard-row/README.md delete mode 100755 Algorithms/0500.keyboard-row/keyboard-row.go delete mode 100755 Algorithms/0500.keyboard-row/keyboard-row_test.go delete mode 100755 Algorithms/0501.find-mode-in-binary-search-tree/README.md delete mode 100755 Algorithms/0501.find-mode-in-binary-search-tree/find-mode-in-binary-search-tree.go delete mode 100755 Algorithms/0501.find-mode-in-binary-search-tree/find-mode-in-binary-search-tree_test.go delete mode 100755 Algorithms/0502.ipo/README.md delete mode 100755 Algorithms/0502.ipo/ipo.go delete mode 100755 Algorithms/0502.ipo/ipo_test.go delete mode 100755 Algorithms/0503.next-greater-element-ii/README.md delete mode 100755 Algorithms/0503.next-greater-element-ii/next-greater-element-ii.go delete mode 100755 Algorithms/0503.next-greater-element-ii/next-greater-element-ii_test.go delete mode 100755 Algorithms/0504.base-7/README.md delete mode 100755 Algorithms/0504.base-7/base-7.go delete mode 100755 Algorithms/0504.base-7/base-7_test.go delete mode 100755 Algorithms/0506.relative-ranks/README.md delete mode 100755 Algorithms/0506.relative-ranks/relative-ranks.go delete mode 100755 Algorithms/0506.relative-ranks/relative-ranks_test.go delete mode 100755 Algorithms/0507.perfect-number/README.md delete mode 100755 Algorithms/0507.perfect-number/perfect-number.go delete mode 100755 Algorithms/0507.perfect-number/perfect-number_test.go delete mode 100755 Algorithms/0508.most-frequent-subtree-sum/README.md delete mode 100755 Algorithms/0508.most-frequent-subtree-sum/most-frequent-subtree-sum.go delete mode 100755 Algorithms/0508.most-frequent-subtree-sum/most-frequent-subtree-sum_test.go delete mode 100755 Algorithms/0513.find-bottom-left-tree-value/README.md delete mode 100755 Algorithms/0513.find-bottom-left-tree-value/find-bottom-left-tree-value.go delete mode 100755 Algorithms/0513.find-bottom-left-tree-value/find-bottom-left-tree-value_test.go delete mode 100755 Algorithms/0514.freedom-trail/README.md delete mode 100755 Algorithms/0514.freedom-trail/freedom-trail.go delete mode 100755 Algorithms/0514.freedom-trail/freedom-trail_test.go delete mode 100755 Algorithms/0515.find-largest-value-in-each-tree-row/README.md delete mode 100755 Algorithms/0515.find-largest-value-in-each-tree-row/find-largest-value-in-each-tree-row.go delete mode 100755 Algorithms/0515.find-largest-value-in-each-tree-row/find-largest-value-in-each-tree-row_test.go delete mode 100755 Algorithms/0516.longest-palindromic-subsequence/README.md delete mode 100755 Algorithms/0516.longest-palindromic-subsequence/longest-palindromic-subsequence.go delete mode 100755 Algorithms/0516.longest-palindromic-subsequence/longest-palindromic-subsequence_test.go delete mode 100755 Algorithms/0517.super-washing-machines/README.md delete mode 100755 Algorithms/0517.super-washing-machines/super-washing-machines.go delete mode 100755 Algorithms/0517.super-washing-machines/super-washing-machines_test.go delete mode 100755 Algorithms/0520.detect-capital/README.md delete mode 100755 Algorithms/0520.detect-capital/detect-capital.go delete mode 100755 Algorithms/0520.detect-capital/detect-capital_test.go delete mode 100755 Algorithms/0521.longest-uncommon-subsequence-i/README.md delete mode 100755 Algorithms/0521.longest-uncommon-subsequence-i/longest-uncommon-subsequence-i.go delete mode 100755 Algorithms/0521.longest-uncommon-subsequence-i/longest-uncommon-subsequence-i_test.go delete mode 100755 Algorithms/0522.longest-uncommon-subsequence-ii/README.md delete mode 100755 Algorithms/0522.longest-uncommon-subsequence-ii/longest-uncommon-subsequence-ii.go delete mode 100755 Algorithms/0522.longest-uncommon-subsequence-ii/longest-uncommon-subsequence-ii_test.go delete mode 100755 Algorithms/0523.continuous-subarray-sum/README.md delete mode 100755 Algorithms/0523.continuous-subarray-sum/continuous-subarray-sum.go delete mode 100755 Algorithms/0523.continuous-subarray-sum/continuous-subarray-sum_test.go delete mode 100755 Algorithms/0524.longest-word-in-dictionary-through-deleting/README.md delete mode 100755 Algorithms/0524.longest-word-in-dictionary-through-deleting/longest-word-in-dictionary-through-deleting.go delete mode 100755 Algorithms/0524.longest-word-in-dictionary-through-deleting/longest-word-in-dictionary-through-deleting_test.go delete mode 100755 Algorithms/0525.contiguous-array/README.md delete mode 100755 Algorithms/0525.contiguous-array/contiguous-array.go delete mode 100755 Algorithms/0525.contiguous-array/contiguous-array_test.go delete mode 100755 Algorithms/0526.beautiful-arrangement/README.md delete mode 100755 Algorithms/0526.beautiful-arrangement/beautiful-arrangement.go delete mode 100755 Algorithms/0526.beautiful-arrangement/beautiful-arrangement_test.go delete mode 100755 Algorithms/0529.minesweeper/README.md delete mode 100755 Algorithms/0529.minesweeper/minesweeper.go delete mode 100755 Algorithms/0529.minesweeper/minesweeper_test.go delete mode 100755 Algorithms/0530.minimum-absolute-difference-in-bst/README.md delete mode 100755 Algorithms/0530.minimum-absolute-difference-in-bst/minimum-absolute-difference-in-bst.go delete mode 100755 Algorithms/0530.minimum-absolute-difference-in-bst/minimum-absolute-difference-in-bst_test.go delete mode 100755 Algorithms/0535.encode-and-decode-tinyurl/README.md delete mode 100755 Algorithms/0535.encode-and-decode-tinyurl/encode-and-decode-tinyurl.go delete mode 100755 Algorithms/0535.encode-and-decode-tinyurl/encode-and-decode-tinyurl_test.go delete mode 100755 Algorithms/0537.complex-number-multiplication/README.md delete mode 100755 Algorithms/0537.complex-number-multiplication/complex-number-multiplication.go delete mode 100755 Algorithms/0537.complex-number-multiplication/complex-number-multiplication_test.go delete mode 100755 Algorithms/0538.convert-bst-to-greater-tree/README.md delete mode 100755 Algorithms/0538.convert-bst-to-greater-tree/convert-bst-to-greater-tree.go delete mode 100755 Algorithms/0538.convert-bst-to-greater-tree/convert-bst-to-greater-tree_test.go delete mode 100755 Algorithms/0539.minimum-time-difference/README.md delete mode 100755 Algorithms/0539.minimum-time-difference/minimum-time-difference.go delete mode 100755 Algorithms/0539.minimum-time-difference/minimum-time-difference_test.go delete mode 100755 Algorithms/0540.single-element-in-a-sorted-array/README.md delete mode 100755 Algorithms/0540.single-element-in-a-sorted-array/single-element-in-a-sorted-array.go delete mode 100755 Algorithms/0540.single-element-in-a-sorted-array/single-element-in-a-sorted-array_test.go delete mode 100755 Algorithms/0541.reverse-string-ii/README.md delete mode 100755 Algorithms/0541.reverse-string-ii/reverse-string-ii.go delete mode 100755 Algorithms/0541.reverse-string-ii/reverse-string-ii_test.go delete mode 100755 Algorithms/0542.01-matrix/01-matrix.go delete mode 100755 Algorithms/0542.01-matrix/01-matrix_test.go delete mode 100755 Algorithms/0542.01-matrix/README.md delete mode 100755 Algorithms/0543.diameter-of-binary-tree/README.md delete mode 100755 Algorithms/0543.diameter-of-binary-tree/diameter-of-binary-tree.go delete mode 100755 Algorithms/0543.diameter-of-binary-tree/diameter-of-binary-tree_test.go delete mode 100755 Algorithms/0546.remove-boxes/README.md delete mode 100755 Algorithms/0546.remove-boxes/remove-boxes.go delete mode 100755 Algorithms/0546.remove-boxes/remove-boxes_test.go delete mode 100755 Algorithms/0547.friend-circles/README.md delete mode 100755 Algorithms/0547.friend-circles/friend-circles.go delete mode 100755 Algorithms/0547.friend-circles/friend-circles_test.go delete mode 100755 Algorithms/0551.student-attendance-record-i/README.md delete mode 100755 Algorithms/0551.student-attendance-record-i/student-attendance-record-i.go delete mode 100755 Algorithms/0551.student-attendance-record-i/student-attendance-record-i_test.go delete mode 100755 Algorithms/0552.student-attendance-record-ii/README.md delete mode 100755 Algorithms/0552.student-attendance-record-ii/student-attendance-record-ii.go delete mode 100755 Algorithms/0552.student-attendance-record-ii/student-attendance-record-ii_test.go delete mode 100755 Algorithms/0553.optimal-division/README.md delete mode 100755 Algorithms/0553.optimal-division/optimal-division.go delete mode 100755 Algorithms/0553.optimal-division/optimal-division_test.go delete mode 100755 Algorithms/0554.brick-wall/README.md delete mode 100755 Algorithms/0554.brick-wall/brick-wall.go delete mode 100755 Algorithms/0554.brick-wall/brick-wall_test.go delete mode 100755 Algorithms/0556.next-greater-element-iii/README.md delete mode 100755 Algorithms/0556.next-greater-element-iii/next-greater-element-iii.go delete mode 100755 Algorithms/0556.next-greater-element-iii/next-greater-element-iii_test.go delete mode 100755 Algorithms/0557.reverse-words-in-a-string-iii/README.md delete mode 100755 Algorithms/0557.reverse-words-in-a-string-iii/reverse-words-in-a-string-iii.go delete mode 100755 Algorithms/0557.reverse-words-in-a-string-iii/reverse-words-in-a-string-iii_test.go delete mode 100755 Algorithms/0560.subarray-sum-equals-k/README.md delete mode 100755 Algorithms/0560.subarray-sum-equals-k/subarray-sum-equals-k.go delete mode 100755 Algorithms/0560.subarray-sum-equals-k/subarray-sum-equals-k_test.go delete mode 100755 Algorithms/0563.binary-tree-tilt/README.md delete mode 100755 Algorithms/0563.binary-tree-tilt/binary-tree-tilt.go delete mode 100755 Algorithms/0563.binary-tree-tilt/binary-tree-tilt_test.go delete mode 100755 Algorithms/0564.find-the-closest-palindrome/README.md delete mode 100755 Algorithms/0564.find-the-closest-palindrome/find-the-closest-palindrome.go delete mode 100755 Algorithms/0564.find-the-closest-palindrome/find-the-closest-palindrome_test.go delete mode 100755 Algorithms/0565.array-nesting/README.md delete mode 100755 Algorithms/0565.array-nesting/array-nesting.go delete mode 100755 Algorithms/0565.array-nesting/array-nesting_test.go delete mode 100755 Algorithms/0567.permutation-in-string/README.md delete mode 100755 Algorithms/0567.permutation-in-string/permutation-in-string.go delete mode 100755 Algorithms/0567.permutation-in-string/permutation-in-string_test.go delete mode 100755 Algorithms/0572.subtree-of-another-tree/README.md delete mode 100755 Algorithms/0572.subtree-of-another-tree/subtree-of-another-tree.go delete mode 100755 Algorithms/0572.subtree-of-another-tree/subtree-of-another-tree_test.go delete mode 100755 Algorithms/0575.distribute-candies/README.md delete mode 100755 Algorithms/0575.distribute-candies/distribute-candies.go delete mode 100755 Algorithms/0575.distribute-candies/distribute-candies_test.go delete mode 100755 Algorithms/0576.out-of-boundary-paths/README.md delete mode 100755 Algorithms/0576.out-of-boundary-paths/out-of-boundary-paths.go delete mode 100755 Algorithms/0576.out-of-boundary-paths/out-of-boundary-paths_test.go delete mode 100755 Algorithms/0583.delete-operation-for-two-strings/README.md delete mode 100755 Algorithms/0583.delete-operation-for-two-strings/delete-operation-for-two-strings.go delete mode 100755 Algorithms/0583.delete-operation-for-two-strings/delete-operation-for-two-strings_test.go delete mode 100755 Algorithms/0587.erect-the-fence/README.md delete mode 100755 Algorithms/0587.erect-the-fence/erect-the-fence.go delete mode 100755 Algorithms/0587.erect-the-fence/erect-the-fence_test.go delete mode 100755 Algorithms/0591.tag-validator/README.md delete mode 100755 Algorithms/0591.tag-validator/tag-validator.go delete mode 100755 Algorithms/0591.tag-validator/tag-validator_test.go delete mode 100755 Algorithms/0592.fraction-addition-and-subtraction/README.md delete mode 100755 Algorithms/0592.fraction-addition-and-subtraction/fraction-addition-and-subtraction.go delete mode 100755 Algorithms/0592.fraction-addition-and-subtraction/fraction-addition-and-subtraction_test.go delete mode 100755 Algorithms/0593.valid-square/README.md delete mode 100755 Algorithms/0593.valid-square/valid-square.go delete mode 100755 Algorithms/0593.valid-square/valid-square_test.go delete mode 100755 Algorithms/0594.longest-harmonious-subsequence/README.md delete mode 100755 Algorithms/0594.longest-harmonious-subsequence/longest-harmonious-subsequence.go delete mode 100755 Algorithms/0594.longest-harmonious-subsequence/longest-harmonious-subsequence_test.go delete mode 100755 Algorithms/0598.range-addition-ii/README.md delete mode 100755 Algorithms/0598.range-addition-ii/range-addition-ii.go delete mode 100755 Algorithms/0598.range-addition-ii/range-addition-ii_test.go delete mode 100755 Algorithms/0599.minimum-index-sum-of-two-lists/README.md delete mode 100755 Algorithms/0599.minimum-index-sum-of-two-lists/minimum-index-sum-of-two-lists.go delete mode 100755 Algorithms/0599.minimum-index-sum-of-two-lists/minimum-index-sum-of-two-lists_test.go delete mode 100755 Algorithms/0600.non-negative-integers-without-consecutive-ones/README.md delete mode 100755 Algorithms/0600.non-negative-integers-without-consecutive-ones/non-negative-integers-without-consecutive-ones.go delete mode 100755 Algorithms/0600.non-negative-integers-without-consecutive-ones/non-negative-integers-without-consecutive-ones_test.go delete mode 100755 Algorithms/0606.construct-string-from-binary-tree/README.md delete mode 100755 Algorithms/0606.construct-string-from-binary-tree/construct-string-from-binary-tree.go delete mode 100755 Algorithms/0606.construct-string-from-binary-tree/construct-string-from-binary-tree_test.go delete mode 100755 Algorithms/0609.find-duplicate-file-in-system/README.md delete mode 100755 Algorithms/0609.find-duplicate-file-in-system/find-duplicate-file-in-system.go delete mode 100755 Algorithms/0609.find-duplicate-file-in-system/find-duplicate-file-in-system_test.go delete mode 100755 Algorithms/0611.valid-triangle-number/README.md delete mode 100755 Algorithms/0611.valid-triangle-number/valid-triangle-number.go delete mode 100755 Algorithms/0611.valid-triangle-number/valid-triangle-number_test.go delete mode 100755 Algorithms/0617.merge-two-binary-trees/README.md delete mode 100755 Algorithms/0617.merge-two-binary-trees/merge-two-binary-trees.go delete mode 100755 Algorithms/0617.merge-two-binary-trees/merge-two-binary-trees_test.go delete mode 100755 Algorithms/0621.task-scheduler/README.md delete mode 100755 Algorithms/0621.task-scheduler/task-scheduler.go delete mode 100755 Algorithms/0621.task-scheduler/task-scheduler_test.go delete mode 100755 Algorithms/0623.add-one-row-to-tree/README.md delete mode 100755 Algorithms/0623.add-one-row-to-tree/add-one-row-to-tree.go delete mode 100755 Algorithms/0623.add-one-row-to-tree/add-one-row-to-tree_test.go delete mode 100755 Algorithms/0629.k-inverse-pairs-array/README.md delete mode 100755 Algorithms/0629.k-inverse-pairs-array/k-inverse-pairs-array.go delete mode 100755 Algorithms/0629.k-inverse-pairs-array/k-inverse-pairs-array_test.go delete mode 100755 Algorithms/0630.course-schedule-iii/README.md delete mode 100755 Algorithms/0630.course-schedule-iii/course-schedule-iii.go delete mode 100755 Algorithms/0630.course-schedule-iii/course-schedule-iii_test.go delete mode 100755 Algorithms/0632.smallest-range/README.md delete mode 100755 Algorithms/0632.smallest-range/smallest-range.go delete mode 100755 Algorithms/0632.smallest-range/smallest-range_test.go delete mode 100755 Algorithms/0633.sum-of-square-numbers/README.md delete mode 100755 Algorithms/0633.sum-of-square-numbers/sum-of-square-numbers.go delete mode 100755 Algorithms/0633.sum-of-square-numbers/sum-of-square-numbers_test.go delete mode 100755 Algorithms/0636.exclusive-time-of-functions/README.md delete mode 100755 Algorithms/0636.exclusive-time-of-functions/exclusive-time-of-functions.go delete mode 100755 Algorithms/0636.exclusive-time-of-functions/exclusive-time-of-functions_test.go delete mode 100755 Algorithms/0637.average-of-levels-in-binary-tree/README.md delete mode 100755 Algorithms/0637.average-of-levels-in-binary-tree/average-of-levels-in-binary-tree.go delete mode 100755 Algorithms/0637.average-of-levels-in-binary-tree/average-of-levels-in-binary-tree_test.go delete mode 100755 Algorithms/0638.shopping-offers/README.md delete mode 100755 Algorithms/0638.shopping-offers/shopping-offers.go delete mode 100755 Algorithms/0638.shopping-offers/shopping-offers_test.go delete mode 100755 Algorithms/0639.decode-ways-ii/README.md delete mode 100755 Algorithms/0639.decode-ways-ii/decode-ways-ii.go delete mode 100755 Algorithms/0639.decode-ways-ii/decode-ways-ii_test.go delete mode 100755 Algorithms/0640.solve-the-equation/README.md delete mode 100755 Algorithms/0640.solve-the-equation/solve-the-equation.go delete mode 100755 Algorithms/0640.solve-the-equation/solve-the-equation_test.go delete mode 100755 Algorithms/0645.set-mismatch/README.md delete mode 100755 Algorithms/0645.set-mismatch/set-mismatch.go delete mode 100755 Algorithms/0645.set-mismatch/set-mismatch_test.go delete mode 100755 Algorithms/0646.maximum-length-of-pair-chain/README.md delete mode 100755 Algorithms/0646.maximum-length-of-pair-chain/maximum-length-of-pair-chain.go delete mode 100755 Algorithms/0646.maximum-length-of-pair-chain/maximum-length-of-pair-chain_test.go delete mode 100755 Algorithms/0647.palindromic-substrings/README.md delete mode 100755 Algorithms/0647.palindromic-substrings/palindromic-substrings.go delete mode 100755 Algorithms/0647.palindromic-substrings/palindromic-substrings_test.go delete mode 100755 Algorithms/0648.replace-words/README.md delete mode 100755 Algorithms/0648.replace-words/replace-words.go delete mode 100755 Algorithms/0648.replace-words/replace-words_test.go delete mode 100755 Algorithms/0649.dota2-senate/README.md delete mode 100755 Algorithms/0649.dota2-senate/dota2-senate.go delete mode 100755 Algorithms/0649.dota2-senate/dota2-senate_test.go delete mode 100755 Algorithms/0650.2-keys-keyboard/2-keys-keyboard.go delete mode 100755 Algorithms/0650.2-keys-keyboard/2-keys-keyboard_test.go delete mode 100755 Algorithms/0650.2-keys-keyboard/README.md delete mode 100755 Algorithms/0652.find-duplicate-subtrees/README.md delete mode 100755 Algorithms/0652.find-duplicate-subtrees/find-duplicate-subtrees.go delete mode 100755 Algorithms/0652.find-duplicate-subtrees/find-duplicate-subtrees_test.go delete mode 100755 Algorithms/0653.two-sum-iv-input-is-a-bst/README.md delete mode 100755 Algorithms/0653.two-sum-iv-input-is-a-bst/two-sum-iv-input-is-a-bst.go delete mode 100755 Algorithms/0653.two-sum-iv-input-is-a-bst/two-sum-iv-input-is-a-bst_test.go delete mode 100755 Algorithms/0654.maximum-binary-tree/README.md delete mode 100755 Algorithms/0654.maximum-binary-tree/maximum-binary-tree.go delete mode 100755 Algorithms/0654.maximum-binary-tree/maximum-binary-tree_test.go delete mode 100755 Algorithms/0655.print-binary-tree/README.md delete mode 100755 Algorithms/0655.print-binary-tree/print-binary-tree.go delete mode 100755 Algorithms/0655.print-binary-tree/print-binary-tree_test.go delete mode 100755 Algorithms/0657.judge-route-circle/README.md delete mode 100755 Algorithms/0657.judge-route-circle/judge-route-circle.go delete mode 100755 Algorithms/0657.judge-route-circle/judge-route-circle_test.go delete mode 100755 Algorithms/0658.find-k-closest-elements/README.md delete mode 100755 Algorithms/0658.find-k-closest-elements/find-k-closest-elements.go delete mode 100755 Algorithms/0658.find-k-closest-elements/find-k-closest-elements_test.go delete mode 100755 Algorithms/0659.split-array-into-consecutive-subsequences/README.md delete mode 100755 Algorithms/0659.split-array-into-consecutive-subsequences/split-array-into-consecutive-subsequences.go delete mode 100755 Algorithms/0659.split-array-into-consecutive-subsequences/split-array-into-consecutive-subsequences_test.go delete mode 100755 Algorithms/0662.maximum-width-of-binary-tree/README.md delete mode 100755 Algorithms/0662.maximum-width-of-binary-tree/maximum-width-of-binary-tree.go delete mode 100755 Algorithms/0662.maximum-width-of-binary-tree/maximum-width-of-binary-tree_test.go delete mode 100755 Algorithms/0663.equal-tree-partition/README.md delete mode 100755 Algorithms/0663.equal-tree-partition/equal-tree-partition.go delete mode 100755 Algorithms/0663.equal-tree-partition/equal-tree-partition_test.go delete mode 100755 Algorithms/0664.strange-printer/README.md delete mode 100755 Algorithms/0664.strange-printer/strange-printer.go delete mode 100755 Algorithms/0664.strange-printer/strange-printer_test.go delete mode 100755 Draft/0433.minimum-genetic-mutation/README.md delete mode 100755 Draft/0433.minimum-genetic-mutation/minimum-genetic-mutation.go delete mode 100755 Draft/0433.minimum-genetic-mutation/minimum-genetic-mutation_test.go delete mode 100755 Draft/0457.circular-array-loop/README.md delete mode 100755 Draft/0457.circular-array-loop/circular-array-loop.go delete mode 100755 Draft/0457.circular-array-loop/circular-array-loop_test.go delete mode 100755 Draft/0458.poor-pigs/README.md delete mode 100755 Draft/0458.poor-pigs/poor-pigs.go delete mode 100755 Draft/0458.poor-pigs/poor-pigs_test.go delete mode 100755 Draft/0518.coin-change-2/README.md delete mode 100755 Draft/0518.coin-change-2/coin-change-2.go delete mode 100755 Draft/0518.coin-change-2/coin-change-2_test.go delete mode 100755 Draft/0626.exchange-seats/README.md delete mode 100755 Draft/0626.exchange-seats/exchange-seats.go delete mode 100755 Draft/0626.exchange-seats/exchange-seats_test.go diff --git a/Algorithms/0044.wildcard-matching/README.md b/Algorithms/0044.wildcard-matching/README.md deleted file mode 100755 index 889340925..000000000 --- a/Algorithms/0044.wildcard-matching/README.md +++ /dev/null @@ -1,31 +0,0 @@ -# [44. Wildcard Matching](https://leetcode.com/problems/wildcard-matching/) - -## 题目 - - Implement wildcard pattern matching with support for '?' and '*'. - -'?' Matches any single character. -'*' Matches any sequence of characters (including the empty sequence). - -The matching should cover the entire input string (not partial). - -The function prototype should be: -bool isMatch(const char *s, const char *p) - -Some examples: -isMatch("aa","a") → false -isMatch("aa","aa") → true -isMatch("aaa","aa") → false -isMatch("aa", "*") → true -isMatch("aa", "a*") → true -isMatch("ab", "?*") → true -isMatch("aab", "c*a*b") → false - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0044.wildcard-matching/wildcard-matching.go b/Algorithms/0044.wildcard-matching/wildcard-matching.go deleted file mode 100755 index 6763352fb..000000000 --- a/Algorithms/0044.wildcard-matching/wildcard-matching.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0044 - diff --git a/Algorithms/0044.wildcard-matching/wildcard-matching_test.go b/Algorithms/0044.wildcard-matching/wildcard-matching_test.go deleted file mode 100755 index eb0c807ed..000000000 --- a/Algorithms/0044.wildcard-matching/wildcard-matching_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0044 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0044(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0054.spiral-matrix/README.md b/Algorithms/0054.spiral-matrix/README.md deleted file mode 100755 index a315de8a3..000000000 --- a/Algorithms/0054.spiral-matrix/README.md +++ /dev/null @@ -1,28 +0,0 @@ -# [54. Spiral Matrix](https://leetcode.com/problems/spiral-matrix/) - -## 题目 - - Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral order. - - - -For example, -Given the following matrix: - -[ - [ 1, 2, 3 ], - [ 4, 5, 6 ], - [ 7, 8, 9 ] -] - - -You should return [1,2,3,6,9,8,7,4,5]. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0054.spiral-matrix/spiral-matrix.go b/Algorithms/0054.spiral-matrix/spiral-matrix.go deleted file mode 100755 index cb19c2034..000000000 --- a/Algorithms/0054.spiral-matrix/spiral-matrix.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0054 - diff --git a/Algorithms/0054.spiral-matrix/spiral-matrix_test.go b/Algorithms/0054.spiral-matrix/spiral-matrix_test.go deleted file mode 100755 index 11f9c9f0e..000000000 --- a/Algorithms/0054.spiral-matrix/spiral-matrix_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0054 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0054(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0055.jump-game/README.md b/Algorithms/0055.jump-game/README.md deleted file mode 100755 index 36dd28715..000000000 --- a/Algorithms/0055.jump-game/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# [55. Jump Game](https://leetcode.com/problems/jump-game/) - -## 题目 - - -Given an array of non-negative integers, you are initially positioned at the first index of the array. - - -Each element in the array represents your maximum jump length at that position. - - -Determine if you are able to reach the last index. - - - -For example: -A = [2,3,1,1,4], return true. - - -A = [3,2,1,0,4], return false. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0055.jump-game/jump-game.go b/Algorithms/0055.jump-game/jump-game.go deleted file mode 100755 index 5baa23b3a..000000000 --- a/Algorithms/0055.jump-game/jump-game.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0055 - diff --git a/Algorithms/0055.jump-game/jump-game_test.go b/Algorithms/0055.jump-game/jump-game_test.go deleted file mode 100755 index ec5285ba1..000000000 --- a/Algorithms/0055.jump-game/jump-game_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0055 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0055(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0056.merge-intervals/README.md b/Algorithms/0056.merge-intervals/README.md deleted file mode 100755 index e451d6d74..000000000 --- a/Algorithms/0056.merge-intervals/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# [56. Merge Intervals](https://leetcode.com/problems/merge-intervals/) - -## 题目 - - Given a collection of intervals, merge all overlapping intervals. - - -For example, -Given [1,3],[2,6],[8,10],[15,18], -return [1,6],[8,10],[15,18]. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0056.merge-intervals/merge-intervals.go b/Algorithms/0056.merge-intervals/merge-intervals.go deleted file mode 100755 index 658674a57..000000000 --- a/Algorithms/0056.merge-intervals/merge-intervals.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0056 - diff --git a/Algorithms/0056.merge-intervals/merge-intervals_test.go b/Algorithms/0056.merge-intervals/merge-intervals_test.go deleted file mode 100755 index 42702e1c4..000000000 --- a/Algorithms/0056.merge-intervals/merge-intervals_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0056 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0056(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0057.insert-interval/README.md b/Algorithms/0057.insert-interval/README.md deleted file mode 100755 index 2975faeb0..000000000 --- a/Algorithms/0057.insert-interval/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# [57. Insert Interval](https://leetcode.com/problems/insert-interval/) - -## 题目 - - Given a set of non-overlapping intervals, insert a new interval into the intervals (merge if necessary). - -You may assume that the intervals were initially sorted according to their start times. - - -Example 1: -Given intervals [1,3],[6,9], insert and merge [2,5] in as [1,5],[6,9]. - - - -Example 2: -Given [1,2],[3,5],[6,7],[8,10],[12,16], insert and merge [4,9] in as [1,2],[3,10],[12,16]. - - - -This is because the new interval [4,9] overlaps with [3,5],[6,7],[8,10]. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0057.insert-interval/insert-interval.go b/Algorithms/0057.insert-interval/insert-interval.go deleted file mode 100755 index 5ee082330..000000000 --- a/Algorithms/0057.insert-interval/insert-interval.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0057 - diff --git a/Algorithms/0057.insert-interval/insert-interval_test.go b/Algorithms/0057.insert-interval/insert-interval_test.go deleted file mode 100755 index 592d76fe2..000000000 --- a/Algorithms/0057.insert-interval/insert-interval_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0057 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0057(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0058.length-of-last-word/README.md b/Algorithms/0058.length-of-last-word/README.md deleted file mode 100755 index 9d6d9261f..000000000 --- a/Algorithms/0058.length-of-last-word/README.md +++ /dev/null @@ -1,23 +0,0 @@ -# [58. Length of Last Word](https://leetcode.com/problems/length-of-last-word/) - -## 题目 - - Given a string s consists of upper/lower-case alphabets and empty space characters ' ', return the length of last word in the string. - -If the last word does not exist, return 0. - -Note: A word is defined as a character sequence consists of non-space characters only. - - -For example, -Given s = "Hello World", -return 5. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0058.length-of-last-word/length-of-last-word.go b/Algorithms/0058.length-of-last-word/length-of-last-word.go deleted file mode 100755 index a7e9d701b..000000000 --- a/Algorithms/0058.length-of-last-word/length-of-last-word.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0058 - diff --git a/Algorithms/0058.length-of-last-word/length-of-last-word_test.go b/Algorithms/0058.length-of-last-word/length-of-last-word_test.go deleted file mode 100755 index 4bce35e59..000000000 --- a/Algorithms/0058.length-of-last-word/length-of-last-word_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0058 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0058(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0059.spiral-matrix-ii/README.md b/Algorithms/0059.spiral-matrix-ii/README.md deleted file mode 100755 index e4807d1b3..000000000 --- a/Algorithms/0059.spiral-matrix-ii/README.md +++ /dev/null @@ -1,25 +0,0 @@ -# [59. Spiral Matrix II](https://leetcode.com/problems/spiral-matrix-ii/) - -## 题目 - - Given an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order. - - -For example, -Given n = 3, - -You should return the following matrix: -[ - [ 1, 2, 3 ], - [ 8, 9, 4 ], - [ 7, 6, 5 ] -] - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0059.spiral-matrix-ii/spiral-matrix-ii.go b/Algorithms/0059.spiral-matrix-ii/spiral-matrix-ii.go deleted file mode 100755 index 53152c091..000000000 --- a/Algorithms/0059.spiral-matrix-ii/spiral-matrix-ii.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0059 - diff --git a/Algorithms/0059.spiral-matrix-ii/spiral-matrix-ii_test.go b/Algorithms/0059.spiral-matrix-ii/spiral-matrix-ii_test.go deleted file mode 100755 index 60e77f8e3..000000000 --- a/Algorithms/0059.spiral-matrix-ii/spiral-matrix-ii_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0059 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0059(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0060.permutation-sequence/README.md b/Algorithms/0060.permutation-sequence/README.md deleted file mode 100755 index a7214a153..000000000 --- a/Algorithms/0060.permutation-sequence/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# [60. Permutation Sequence](https://leetcode.com/problems/permutation-sequence/) - -## 题目 - - The set [1,2,3,…,n] contains a total of n! unique permutations. - -By listing and labeling all of the permutations in order, -We get the following sequence (ie, for n = 3): - -"123" -"132" -"213" -"231" -"312" -"321" - - - -Given n and k, return the kth permutation sequence. - -Note: Given n will be between 1 and 9 inclusive. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0060.permutation-sequence/permutation-sequence.go b/Algorithms/0060.permutation-sequence/permutation-sequence.go deleted file mode 100755 index d8befdf9f..000000000 --- a/Algorithms/0060.permutation-sequence/permutation-sequence.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0060 - diff --git a/Algorithms/0060.permutation-sequence/permutation-sequence_test.go b/Algorithms/0060.permutation-sequence/permutation-sequence_test.go deleted file mode 100755 index bbd303719..000000000 --- a/Algorithms/0060.permutation-sequence/permutation-sequence_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0060 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0060(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0061.rotate-list/README.md b/Algorithms/0061.rotate-list/README.md deleted file mode 100755 index 32261dd9d..000000000 --- a/Algorithms/0061.rotate-list/README.md +++ /dev/null @@ -1,17 +0,0 @@ -# [61. Rotate List](https://leetcode.com/problems/rotate-list/) - -## 题目 - - Given a list, rotate the list to the right by k places, where k is non-negative. - -For example: -Given 1->2->3->4->5->NULL and k = 2, -return 4->5->1->2->3->NULL. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0061.rotate-list/rotate-list.go b/Algorithms/0061.rotate-list/rotate-list.go deleted file mode 100755 index b0cad8020..000000000 --- a/Algorithms/0061.rotate-list/rotate-list.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0061 - diff --git a/Algorithms/0061.rotate-list/rotate-list_test.go b/Algorithms/0061.rotate-list/rotate-list_test.go deleted file mode 100755 index e49a864ae..000000000 --- a/Algorithms/0061.rotate-list/rotate-list_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0061 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0061(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0062.unique-paths/README.md b/Algorithms/0062.unique-paths/README.md deleted file mode 100755 index 29dfe1d65..000000000 --- a/Algorithms/0062.unique-paths/README.md +++ /dev/null @@ -1,24 +0,0 @@ -# [62. Unique Paths](https://leetcode.com/problems/unique-paths/) - -## 题目 - - A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below). - -The robot can only move either down or right at any point in time. The robot is trying to reach the bottom-right corner of the grid (marked 'Finish' in the diagram below). - -How many possible unique paths are there? - - - -Above is a 3 x 7 grid. How many possible unique paths are there? - - -Note: m and n will be at most 100. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0062.unique-paths/unique-paths.go b/Algorithms/0062.unique-paths/unique-paths.go deleted file mode 100755 index c4f0fae8c..000000000 --- a/Algorithms/0062.unique-paths/unique-paths.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0062 - diff --git a/Algorithms/0062.unique-paths/unique-paths_test.go b/Algorithms/0062.unique-paths/unique-paths_test.go deleted file mode 100755 index 3e9de9b11..000000000 --- a/Algorithms/0062.unique-paths/unique-paths_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0062 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0062(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0063.unique-paths-ii/README.md b/Algorithms/0063.unique-paths-ii/README.md deleted file mode 100755 index 2983b95d5..000000000 --- a/Algorithms/0063.unique-paths-ii/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# [63. Unique Paths II](https://leetcode.com/problems/unique-paths-ii/) - -## 题目 - - Follow up for "Unique Paths": - -Now consider if some obstacles are added to the grids. How many unique paths would there be? - -An obstacle and empty space is marked as 1 and 0 respectively in the grid. - -For example, -There is one obstacle in the middle of a 3x3 grid as illustrated below. -[ - [0,0,0], - [0,1,0], - [0,0,0] -] - -The total number of unique paths is 2. - -Note: m and n will be at most 100. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0063.unique-paths-ii/unique-paths-ii.go b/Algorithms/0063.unique-paths-ii/unique-paths-ii.go deleted file mode 100755 index 375ea5f93..000000000 --- a/Algorithms/0063.unique-paths-ii/unique-paths-ii.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0063 - diff --git a/Algorithms/0063.unique-paths-ii/unique-paths-ii_test.go b/Algorithms/0063.unique-paths-ii/unique-paths-ii_test.go deleted file mode 100755 index e52d5057f..000000000 --- a/Algorithms/0063.unique-paths-ii/unique-paths-ii_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0063 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0063(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0064.minimum-path-sum/README.md b/Algorithms/0064.minimum-path-sum/README.md deleted file mode 100755 index bf61eeb4a..000000000 --- a/Algorithms/0064.minimum-path-sum/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# [64. Minimum Path Sum](https://leetcode.com/problems/minimum-path-sum/) - -## 题目 - - Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which minimizes the sum of all numbers along its path. - -Note: You can only move either down or right at any point in time. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0064.minimum-path-sum/minimum-path-sum.go b/Algorithms/0064.minimum-path-sum/minimum-path-sum.go deleted file mode 100755 index ff8d8da94..000000000 --- a/Algorithms/0064.minimum-path-sum/minimum-path-sum.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0064 - diff --git a/Algorithms/0064.minimum-path-sum/minimum-path-sum_test.go b/Algorithms/0064.minimum-path-sum/minimum-path-sum_test.go deleted file mode 100755 index 401d8c69a..000000000 --- a/Algorithms/0064.minimum-path-sum/minimum-path-sum_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0064 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0064(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0065.valid-number/README.md b/Algorithms/0065.valid-number/README.md deleted file mode 100755 index 706150fc4..000000000 --- a/Algorithms/0065.valid-number/README.md +++ /dev/null @@ -1,30 +0,0 @@ -# [65. Valid Number](https://leetcode.com/problems/valid-number/) - -## 题目 - - Validate if a given string is numeric. - - -Some examples: -"0" => true -" 0.1 " => true -"abc" => false -"1 a" => false -"2e10" => true - - -Note: It is intended for the problem statement to be ambiguous. You should gather all requirements up front before implementing one. - - - -Update (2015-02-10): -The signature of the C++ function had been updated. If you still see your function signature accepts a const char * argument, please click the reload button to reset your code definition. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0065.valid-number/valid-number.go b/Algorithms/0065.valid-number/valid-number.go deleted file mode 100755 index 0f0c4fbdb..000000000 --- a/Algorithms/0065.valid-number/valid-number.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0065 - diff --git a/Algorithms/0065.valid-number/valid-number_test.go b/Algorithms/0065.valid-number/valid-number_test.go deleted file mode 100755 index 7642ca179..000000000 --- a/Algorithms/0065.valid-number/valid-number_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0065 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0065(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0067.add-binary/README.md b/Algorithms/0067.add-binary/README.md deleted file mode 100755 index fb92ce0b1..000000000 --- a/Algorithms/0067.add-binary/README.md +++ /dev/null @@ -1,22 +0,0 @@ -# [67. Add Binary](https://leetcode.com/problems/add-binary/) - -## 题目 - - -Given two binary strings, return their sum (also a binary string). - - - -For example, -a = "11" -b = "1" -Return "100". - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0067.add-binary/add-binary.go b/Algorithms/0067.add-binary/add-binary.go deleted file mode 100755 index d35de30c3..000000000 --- a/Algorithms/0067.add-binary/add-binary.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0067 - diff --git a/Algorithms/0067.add-binary/add-binary_test.go b/Algorithms/0067.add-binary/add-binary_test.go deleted file mode 100755 index df05bd664..000000000 --- a/Algorithms/0067.add-binary/add-binary_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0067 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0067(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0068.text-justification/README.md b/Algorithms/0068.text-justification/README.md deleted file mode 100755 index 9a9ecaa57..000000000 --- a/Algorithms/0068.text-justification/README.md +++ /dev/null @@ -1,58 +0,0 @@ -# [68. Text Justification](https://leetcode.com/problems/text-justification/) - -## 题目 - - -Given an array of words and a length L, format the text such that each line has exactly L characters and is fully (left and right) justified. - - - -You should pack your words in a greedy approach; that is, pack as many words as you can in each line. Pad extra spaces ' ' when necessary so that each line has exactly L characters. - - - -Extra spaces between words should be distributed as evenly as possible. If the number of spaces on a line do not divide evenly between words, the empty slots on the left will be assigned more spaces than the slots on the right. - - - -For the last line of text, it should be left justified and no extra space is inserted between words. - - - -For example, -words: ["This", "is", "an", "example", "of", "text", "justification."] -L: 16. - - - -Return the formatted lines as: -[ - "This is an", - "example of text", - "justification. " -] - - - - -Note: Each word is guaranteed not to exceed L in length. - - - -click to show corner cases. - -Corner Cases: - - -A line other than the last line might contain only one word. What should you do in this case? -In this case, that line should be left-justified. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0068.text-justification/text-justification.go b/Algorithms/0068.text-justification/text-justification.go deleted file mode 100755 index cd980afbe..000000000 --- a/Algorithms/0068.text-justification/text-justification.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0068 - diff --git a/Algorithms/0068.text-justification/text-justification_test.go b/Algorithms/0068.text-justification/text-justification_test.go deleted file mode 100755 index cec5b75f8..000000000 --- a/Algorithms/0068.text-justification/text-justification_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0068 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0068(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0069.sqrtx/README.md b/Algorithms/0069.sqrtx/README.md deleted file mode 100755 index 67be43490..000000000 --- a/Algorithms/0069.sqrtx/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# [69. Sqrt(x)](https://leetcode.com/problems/sqrtx/) - -## 题目 - - Implement int sqrt(int x). - -Compute and return the square root of x. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0069.sqrtx/sqrtx.go b/Algorithms/0069.sqrtx/sqrtx.go deleted file mode 100755 index f1c53fe59..000000000 --- a/Algorithms/0069.sqrtx/sqrtx.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0069 - diff --git a/Algorithms/0069.sqrtx/sqrtx_test.go b/Algorithms/0069.sqrtx/sqrtx_test.go deleted file mode 100755 index 2e159fd8e..000000000 --- a/Algorithms/0069.sqrtx/sqrtx_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0069 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0069(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0070.climbing-stairs/README.md b/Algorithms/0070.climbing-stairs/README.md deleted file mode 100755 index 0ad3d0987..000000000 --- a/Algorithms/0070.climbing-stairs/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# [70. Climbing Stairs](https://leetcode.com/problems/climbing-stairs/) - -## 题目 - - You are climbing a stair case. It takes n steps to reach to the top. - -Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top? - - -Note: Given n will be a positive integer. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0070.climbing-stairs/climbing-stairs.go b/Algorithms/0070.climbing-stairs/climbing-stairs.go deleted file mode 100755 index f896cae6c..000000000 --- a/Algorithms/0070.climbing-stairs/climbing-stairs.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0070 - diff --git a/Algorithms/0070.climbing-stairs/climbing-stairs_test.go b/Algorithms/0070.climbing-stairs/climbing-stairs_test.go deleted file mode 100755 index ea4fb7733..000000000 --- a/Algorithms/0070.climbing-stairs/climbing-stairs_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0070 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0070(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0071.simplify-path/README.md b/Algorithms/0071.simplify-path/README.md deleted file mode 100755 index e5ce805a0..000000000 --- a/Algorithms/0071.simplify-path/README.md +++ /dev/null @@ -1,31 +0,0 @@ -# [71. Simplify Path](https://leetcode.com/problems/simplify-path/) - -## 题目 - - Given an absolute path for a file (Unix-style), simplify it. - -For example, -path = "/home/", => "/home" -path = "/a/./b/../../c/", => "/c" - - -click to show corner cases. - -Corner Cases: - - - -Did you consider the case where path = "/../"? -In this case, you should return "/". -Another corner case is the path might contain multiple slashes '/' together, such as "/home//foo/". -In this case, you should ignore redundant slashes and return "/home/foo". - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0071.simplify-path/simplify-path.go b/Algorithms/0071.simplify-path/simplify-path.go deleted file mode 100755 index 3dd9fe59c..000000000 --- a/Algorithms/0071.simplify-path/simplify-path.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0071 - diff --git a/Algorithms/0071.simplify-path/simplify-path_test.go b/Algorithms/0071.simplify-path/simplify-path_test.go deleted file mode 100755 index 0a8eb2904..000000000 --- a/Algorithms/0071.simplify-path/simplify-path_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0071 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0071(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0072.edit-distance/README.md b/Algorithms/0072.edit-distance/README.md deleted file mode 100755 index 5e2d75955..000000000 --- a/Algorithms/0072.edit-distance/README.md +++ /dev/null @@ -1,25 +0,0 @@ -# [72. Edit Distance](https://leetcode.com/problems/edit-distance/) - -## 题目 - - -Given two words word1 and word2, find the minimum number of steps required to convert word1 to word2. (each operation is counted as 1 step.) - - - -You have the following 3 operations permitted on a word: - - - -a) Insert a character -b) Delete a character -c) Replace a character - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0072.edit-distance/edit-distance.go b/Algorithms/0072.edit-distance/edit-distance.go deleted file mode 100755 index 549292fe3..000000000 --- a/Algorithms/0072.edit-distance/edit-distance.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0072 - diff --git a/Algorithms/0072.edit-distance/edit-distance_test.go b/Algorithms/0072.edit-distance/edit-distance_test.go deleted file mode 100755 index 3a47be69b..000000000 --- a/Algorithms/0072.edit-distance/edit-distance_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0072 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0072(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0073.set-matrix-zeroes/README.md b/Algorithms/0073.set-matrix-zeroes/README.md deleted file mode 100755 index f1b6bbf4d..000000000 --- a/Algorithms/0073.set-matrix-zeroes/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# [73. Set Matrix Zeroes](https://leetcode.com/problems/set-matrix-zeroes/) - -## 题目 - - -Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place. - - -click to show follow up. - -Follow up: - - -Did you use extra space? -A straight forward solution using O(mn) space is probably a bad idea. -A simple improvement uses O(m + n) space, but still not the best solution. -Could you devise a constant space solution? - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0073.set-matrix-zeroes/set-matrix-zeroes.go b/Algorithms/0073.set-matrix-zeroes/set-matrix-zeroes.go deleted file mode 100755 index 6af0c6f1e..000000000 --- a/Algorithms/0073.set-matrix-zeroes/set-matrix-zeroes.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0073 - diff --git a/Algorithms/0073.set-matrix-zeroes/set-matrix-zeroes_test.go b/Algorithms/0073.set-matrix-zeroes/set-matrix-zeroes_test.go deleted file mode 100755 index fb3ba5bcf..000000000 --- a/Algorithms/0073.set-matrix-zeroes/set-matrix-zeroes_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0073 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0073(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0074.search-a-2d-matrix/README.md b/Algorithms/0074.search-a-2d-matrix/README.md deleted file mode 100755 index b521c61ed..000000000 --- a/Algorithms/0074.search-a-2d-matrix/README.md +++ /dev/null @@ -1,34 +0,0 @@ -# [74. Search a 2D Matrix](https://leetcode.com/problems/search-a-2d-matrix/) - -## 题目 - - Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the following properties: - - - -Integers in each row are sorted from left to right. -The first integer of each row is greater than the last integer of the previous row. - - - - -For example, - -Consider the following matrix: - -[ - [1, 3, 5, 7], - [10, 11, 16, 20], - [23, 30, 34, 50] -] - - -Given target = 3, return true. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0074.search-a-2d-matrix/search-a-2d-matrix.go b/Algorithms/0074.search-a-2d-matrix/search-a-2d-matrix.go deleted file mode 100755 index ce4e1a5dc..000000000 --- a/Algorithms/0074.search-a-2d-matrix/search-a-2d-matrix.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0074 - diff --git a/Algorithms/0074.search-a-2d-matrix/search-a-2d-matrix_test.go b/Algorithms/0074.search-a-2d-matrix/search-a-2d-matrix_test.go deleted file mode 100755 index e17003375..000000000 --- a/Algorithms/0074.search-a-2d-matrix/search-a-2d-matrix_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0074 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0074(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0075.sort-colors/README.md b/Algorithms/0075.sort-colors/README.md deleted file mode 100755 index 594ea73e9..000000000 --- a/Algorithms/0075.sort-colors/README.md +++ /dev/null @@ -1,34 +0,0 @@ -# [75. Sort Colors](https://leetcode.com/problems/sort-colors/) - -## 题目 - - -Given an array with n objects colored red, white or blue, sort them so that objects of the same color are adjacent, with the colors in the order red, white and blue. - - - -Here, we will use the integers 0, 1, and 2 to represent the color red, white, and blue respectively. - - - -Note: -You are not suppose to use the library's sort function for this problem. - - -click to show follow up. - - -Follow up: -A rather straight forward solution is a two-pass algorithm using counting sort. -First, iterate the array counting number of 0's, 1's, and 2's, then overwrite array with total number of 0's, then 1's and followed by 2's. -Could you come up with an one-pass algorithm using only constant space? - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0075.sort-colors/sort-colors.go b/Algorithms/0075.sort-colors/sort-colors.go deleted file mode 100755 index 431165699..000000000 --- a/Algorithms/0075.sort-colors/sort-colors.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0075 - diff --git a/Algorithms/0075.sort-colors/sort-colors_test.go b/Algorithms/0075.sort-colors/sort-colors_test.go deleted file mode 100755 index 5823529c9..000000000 --- a/Algorithms/0075.sort-colors/sort-colors_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0075 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0075(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0076.minimum-window-substring/README.md b/Algorithms/0076.minimum-window-substring/README.md deleted file mode 100755 index 6d72db5d3..000000000 --- a/Algorithms/0076.minimum-window-substring/README.md +++ /dev/null @@ -1,32 +0,0 @@ -# [76. Minimum Window Substring](https://leetcode.com/problems/minimum-window-substring/) - -## 题目 - - -Given a string S and a string T, find the minimum window in S which will contain all the characters in T in complexity O(n). - - - -For example, -S = "ADOBECODEBANC" -T = "ABC" - - -Minimum window is "BANC". - - - -Note: -If there is no such window in S that covers all characters in T, return the empty string "". - - -If there are multiple such windows, you are guaranteed that there will always be only one unique minimum window in S. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0076.minimum-window-substring/minimum-window-substring.go b/Algorithms/0076.minimum-window-substring/minimum-window-substring.go deleted file mode 100755 index 6d57294f0..000000000 --- a/Algorithms/0076.minimum-window-substring/minimum-window-substring.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0076 - diff --git a/Algorithms/0076.minimum-window-substring/minimum-window-substring_test.go b/Algorithms/0076.minimum-window-substring/minimum-window-substring_test.go deleted file mode 100755 index 5c558649c..000000000 --- a/Algorithms/0076.minimum-window-substring/minimum-window-substring_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0076 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0076(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0077.combinations/README.md b/Algorithms/0077.combinations/README.md deleted file mode 100755 index ae3e6bea6..000000000 --- a/Algorithms/0077.combinations/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# [77. Combinations](https://leetcode.com/problems/combinations/) - -## 题目 - - -Given two integers n and k, return all possible combinations of k numbers out of 1 ... n. - - -For example, -If n = 4 and k = 2, a solution is: - - -[ - [2,4], - [3,4], - [2,3], - [1,2], - [1,3], - [1,4], -] - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0077.combinations/combinations.go b/Algorithms/0077.combinations/combinations.go deleted file mode 100755 index 425706a01..000000000 --- a/Algorithms/0077.combinations/combinations.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0077 - diff --git a/Algorithms/0077.combinations/combinations_test.go b/Algorithms/0077.combinations/combinations_test.go deleted file mode 100755 index 6f0e626de..000000000 --- a/Algorithms/0077.combinations/combinations_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0077 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0077(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0078.subsets/README.md b/Algorithms/0078.subsets/README.md deleted file mode 100755 index 126b6e0ad..000000000 --- a/Algorithms/0078.subsets/README.md +++ /dev/null @@ -1,33 +0,0 @@ -# [78. Subsets](https://leetcode.com/problems/subsets/) - -## 题目 - - -Given a set of distinct integers, nums, return all possible subsets. - -Note: The solution set must not contain duplicate subsets. - - -For example, -If nums = [1,2,3], a solution is: - - -[ - [3], - [1], - [2], - [1,2,3], - [1,3], - [2,3], - [1,2], - [] -] - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0078.subsets/subsets.go b/Algorithms/0078.subsets/subsets.go deleted file mode 100755 index c7c9aa1b7..000000000 --- a/Algorithms/0078.subsets/subsets.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0078 - diff --git a/Algorithms/0078.subsets/subsets_test.go b/Algorithms/0078.subsets/subsets_test.go deleted file mode 100755 index b31e6c45a..000000000 --- a/Algorithms/0078.subsets/subsets_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0078 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0078(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0079.word-search/README.md b/Algorithms/0079.word-search/README.md deleted file mode 100755 index 23e2b34fa..000000000 --- a/Algorithms/0079.word-search/README.md +++ /dev/null @@ -1,33 +0,0 @@ -# [79. Word Search](https://leetcode.com/problems/word-search/) - -## 题目 - - -Given a 2D board and a word, find if the word exists in the grid. - - -The word can be constructed from letters of sequentially adjacent cell, where "adjacent" cells are those horizontally or vertically neighboring. The same letter cell may not be used more than once. - - - -For example, -Given board = -[ - ['A','B','C','E'], - ['S','F','C','S'], - ['A','D','E','E'] -] - - -word = "ABCCED", -> returns true, -word = "SEE", -> returns true, -word = "ABCB", -> returns false. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0079.word-search/word-search.go b/Algorithms/0079.word-search/word-search.go deleted file mode 100755 index f6c885a4f..000000000 --- a/Algorithms/0079.word-search/word-search.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0079 - diff --git a/Algorithms/0079.word-search/word-search_test.go b/Algorithms/0079.word-search/word-search_test.go deleted file mode 100755 index 10d49c56e..000000000 --- a/Algorithms/0079.word-search/word-search_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0079 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0079(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0080.remove-duplicates-from-sorted-array-ii/README.md b/Algorithms/0080.remove-duplicates-from-sorted-array-ii/README.md deleted file mode 100755 index e6c7669af..000000000 --- a/Algorithms/0080.remove-duplicates-from-sorted-array-ii/README.md +++ /dev/null @@ -1,23 +0,0 @@ -# [80. Remove Duplicates from Sorted Array II](https://leetcode.com/problems/remove-duplicates-from-sorted-array-ii/) - -## 题目 - - -Follow up for "Remove Duplicates": -What if duplicates are allowed at most twice? - - -For example, -Given sorted array nums = [1,1,1,2,2,3], - - -Your function should return length = 5, with the first five elements of nums being 1, 1, 2, 2 and 3. It doesn't matter what you leave beyond the new length. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0080.remove-duplicates-from-sorted-array-ii/remove-duplicates-from-sorted-array-ii.go b/Algorithms/0080.remove-duplicates-from-sorted-array-ii/remove-duplicates-from-sorted-array-ii.go deleted file mode 100755 index f0a573538..000000000 --- a/Algorithms/0080.remove-duplicates-from-sorted-array-ii/remove-duplicates-from-sorted-array-ii.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0080 - diff --git a/Algorithms/0080.remove-duplicates-from-sorted-array-ii/remove-duplicates-from-sorted-array-ii_test.go b/Algorithms/0080.remove-duplicates-from-sorted-array-ii/remove-duplicates-from-sorted-array-ii_test.go deleted file mode 100755 index cb8128701..000000000 --- a/Algorithms/0080.remove-duplicates-from-sorted-array-ii/remove-duplicates-from-sorted-array-ii_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0080 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0080(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0081.search-in-rotated-sorted-array-ii/README.md b/Algorithms/0081.search-in-rotated-sorted-array-ii/README.md deleted file mode 100755 index b8a9bd00a..000000000 --- a/Algorithms/0081.search-in-rotated-sorted-array-ii/README.md +++ /dev/null @@ -1,26 +0,0 @@ -# [81. Search in Rotated Sorted Array II](https://leetcode.com/problems/search-in-rotated-sorted-array-ii/) - -## 题目 - - -Follow up for "Search in Rotated Sorted Array": -What if duplicates are allowed? - -Would this affect the run-time complexity? How and why? - - -Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand. - -(i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2). - -Write a function to determine if a given target is in the array. - -The array may contain duplicates. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0081.search-in-rotated-sorted-array-ii/search-in-rotated-sorted-array-ii.go b/Algorithms/0081.search-in-rotated-sorted-array-ii/search-in-rotated-sorted-array-ii.go deleted file mode 100755 index 6efdd98ec..000000000 --- a/Algorithms/0081.search-in-rotated-sorted-array-ii/search-in-rotated-sorted-array-ii.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0081 - diff --git a/Algorithms/0081.search-in-rotated-sorted-array-ii/search-in-rotated-sorted-array-ii_test.go b/Algorithms/0081.search-in-rotated-sorted-array-ii/search-in-rotated-sorted-array-ii_test.go deleted file mode 100755 index e78fc0eff..000000000 --- a/Algorithms/0081.search-in-rotated-sorted-array-ii/search-in-rotated-sorted-array-ii_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0081 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0081(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0082.remove-duplicates-from-sorted-list-ii/README.md b/Algorithms/0082.remove-duplicates-from-sorted-list-ii/README.md deleted file mode 100755 index fd651effe..000000000 --- a/Algorithms/0082.remove-duplicates-from-sorted-list-ii/README.md +++ /dev/null @@ -1,20 +0,0 @@ -# [82. Remove Duplicates from Sorted List II](https://leetcode.com/problems/remove-duplicates-from-sorted-list-ii/) - -## 题目 - - -Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list. - - -For example, -Given 1->2->3->3->4->4->5, return 1->2->5. -Given 1->1->1->2->3, return 2->3. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0082.remove-duplicates-from-sorted-list-ii/remove-duplicates-from-sorted-list-ii.go b/Algorithms/0082.remove-duplicates-from-sorted-list-ii/remove-duplicates-from-sorted-list-ii.go deleted file mode 100755 index ac5ce0566..000000000 --- a/Algorithms/0082.remove-duplicates-from-sorted-list-ii/remove-duplicates-from-sorted-list-ii.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0082 - diff --git a/Algorithms/0082.remove-duplicates-from-sorted-list-ii/remove-duplicates-from-sorted-list-ii_test.go b/Algorithms/0082.remove-duplicates-from-sorted-list-ii/remove-duplicates-from-sorted-list-ii_test.go deleted file mode 100755 index defce11c2..000000000 --- a/Algorithms/0082.remove-duplicates-from-sorted-list-ii/remove-duplicates-from-sorted-list-ii_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0082 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0082(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0083.remove-duplicates-from-sorted-list/README.md b/Algorithms/0083.remove-duplicates-from-sorted-list/README.md deleted file mode 100755 index c8d9dda5a..000000000 --- a/Algorithms/0083.remove-duplicates-from-sorted-list/README.md +++ /dev/null @@ -1,20 +0,0 @@ -# [83. Remove Duplicates from Sorted List](https://leetcode.com/problems/remove-duplicates-from-sorted-list/) - -## 题目 - - -Given a sorted linked list, delete all duplicates such that each element appear only once. - - -For example, -Given 1->1->2, return 1->2. -Given 1->1->2->3->3, return 1->2->3. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0083.remove-duplicates-from-sorted-list/remove-duplicates-from-sorted-list.go b/Algorithms/0083.remove-duplicates-from-sorted-list/remove-duplicates-from-sorted-list.go deleted file mode 100755 index a74c5d4b6..000000000 --- a/Algorithms/0083.remove-duplicates-from-sorted-list/remove-duplicates-from-sorted-list.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0083 - diff --git a/Algorithms/0083.remove-duplicates-from-sorted-list/remove-duplicates-from-sorted-list_test.go b/Algorithms/0083.remove-duplicates-from-sorted-list/remove-duplicates-from-sorted-list_test.go deleted file mode 100755 index d5665ad9c..000000000 --- a/Algorithms/0083.remove-duplicates-from-sorted-list/remove-duplicates-from-sorted-list_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0083 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0083(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0084.largest-rectangle-in-histogram/README.md b/Algorithms/0084.largest-rectangle-in-histogram/README.md deleted file mode 100755 index f00acdc89..000000000 --- a/Algorithms/0084.largest-rectangle-in-histogram/README.md +++ /dev/null @@ -1,31 +0,0 @@ -# [84. Largest Rectangle in Histogram](https://leetcode.com/problems/largest-rectangle-in-histogram/) - -## 题目 - - -Given n non-negative integers representing the histogram's bar height where the width of each bar is 1, find the area of largest rectangle in the histogram. - - - - -Above is a histogram where width of each bar is 1, given height = [2,1,5,6,2,3]. - - - - -The largest rectangle is shown in the shaded area, which has area = 10 unit. - - - -For example, -Given heights = [2,1,5,6,2,3], -return 10. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0084.largest-rectangle-in-histogram/largest-rectangle-in-histogram.go b/Algorithms/0084.largest-rectangle-in-histogram/largest-rectangle-in-histogram.go deleted file mode 100755 index f3be9d3c7..000000000 --- a/Algorithms/0084.largest-rectangle-in-histogram/largest-rectangle-in-histogram.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0084 - diff --git a/Algorithms/0084.largest-rectangle-in-histogram/largest-rectangle-in-histogram_test.go b/Algorithms/0084.largest-rectangle-in-histogram/largest-rectangle-in-histogram_test.go deleted file mode 100755 index e99284062..000000000 --- a/Algorithms/0084.largest-rectangle-in-histogram/largest-rectangle-in-histogram_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0084 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0084(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0085.maximal-rectangle/README.md b/Algorithms/0085.maximal-rectangle/README.md deleted file mode 100755 index 772067e45..000000000 --- a/Algorithms/0085.maximal-rectangle/README.md +++ /dev/null @@ -1,24 +0,0 @@ -# [85. Maximal Rectangle](https://leetcode.com/problems/maximal-rectangle/) - -## 题目 - - -Given a 2D binary matrix filled with 0's and 1's, find the largest rectangle containing only 1's and return its area. - - -For example, given the following matrix: -1 0 1 0 0 -1 0 1 1 1 -1 1 1 1 1 -1 0 0 1 0 - -Return 6. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0085.maximal-rectangle/maximal-rectangle.go b/Algorithms/0085.maximal-rectangle/maximal-rectangle.go deleted file mode 100755 index 39cff070b..000000000 --- a/Algorithms/0085.maximal-rectangle/maximal-rectangle.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0085 - diff --git a/Algorithms/0085.maximal-rectangle/maximal-rectangle_test.go b/Algorithms/0085.maximal-rectangle/maximal-rectangle_test.go deleted file mode 100755 index bd17f15ed..000000000 --- a/Algorithms/0085.maximal-rectangle/maximal-rectangle_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0085 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0085(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0086.partition-list/README.md b/Algorithms/0086.partition-list/README.md deleted file mode 100755 index 374722670..000000000 --- a/Algorithms/0086.partition-list/README.md +++ /dev/null @@ -1,22 +0,0 @@ -# [86. Partition List](https://leetcode.com/problems/partition-list/) - -## 题目 - - Given a linked list and a value x, partition it such that all nodes less than x come before nodes greater than or equal to x. - - -You should preserve the original relative order of the nodes in each of the two partitions. - - -For example, -Given 1->4->3->2->5->2 and x = 3, -return 1->2->2->4->3->5. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0086.partition-list/partition-list.go b/Algorithms/0086.partition-list/partition-list.go deleted file mode 100755 index 973d654d1..000000000 --- a/Algorithms/0086.partition-list/partition-list.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0086 - diff --git a/Algorithms/0086.partition-list/partition-list_test.go b/Algorithms/0086.partition-list/partition-list_test.go deleted file mode 100755 index 65be94efd..000000000 --- a/Algorithms/0086.partition-list/partition-list_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0086 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0086(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0087.scramble-string/README.md b/Algorithms/0087.scramble-string/README.md deleted file mode 100755 index 167f4ad15..000000000 --- a/Algorithms/0087.scramble-string/README.md +++ /dev/null @@ -1,60 +0,0 @@ -# [87. Scramble String](https://leetcode.com/problems/scramble-string/) - -## 题目 - - -Given a string s1, we may represent it as a binary tree by partitioning it to two non-empty substrings recursively. - - -Below is one possible representation of s1 = "great": - - great - / \ - gr eat - / \ / \ -g r e at - / \ - a t - - -To scramble the string, we may choose any non-leaf node and swap its two children. - - -For example, if we choose the node "gr" and swap its two children, it produces a scrambled string "rgeat". - - rgeat - / \ - rg eat - / \ / \ -r g e at - / \ - a t - - -We say that "rgeat" is a scrambled string of "great". - - -Similarly, if we continue to swap the children of nodes "eat" and "at", it produces a scrambled string "rgtae". - - rgtae - / \ - rg tae - / \ / \ -r g ta e - / \ - t a - - -We say that "rgtae" is a scrambled string of "great". - - -Given two strings s1 and s2 of the same length, determine if s2 is a scrambled string of s1. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0087.scramble-string/scramble-string.go b/Algorithms/0087.scramble-string/scramble-string.go deleted file mode 100755 index ad1da43a5..000000000 --- a/Algorithms/0087.scramble-string/scramble-string.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0087 - diff --git a/Algorithms/0087.scramble-string/scramble-string_test.go b/Algorithms/0087.scramble-string/scramble-string_test.go deleted file mode 100755 index 91a334cba..000000000 --- a/Algorithms/0087.scramble-string/scramble-string_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0087 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0087(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0089.gray-code/README.md b/Algorithms/0089.gray-code/README.md deleted file mode 100755 index 4ed2551fc..000000000 --- a/Algorithms/0089.gray-code/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# [89. Gray Code](https://leetcode.com/problems/gray-code/) - -## 题目 - - The gray code is a binary numeral system where two successive values differ in only one bit. - -Given a non-negative integer n representing the total number of bits in the code, print the sequence of gray code. A gray code sequence must begin with 0. - -For example, given n = 2, return [0,1,3,2]. Its gray code sequence is: -00 - 0 -01 - 1 -11 - 3 -10 - 2 - - -Note: -For a given n, a gray code sequence is not uniquely defined. - -For example, [0,2,3,1] is also a valid gray code sequence according to the above definition. - -For now, the judge is able to judge based on one instance of gray code sequence. Sorry about that. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0089.gray-code/gray-code.go b/Algorithms/0089.gray-code/gray-code.go deleted file mode 100755 index 76cf5232e..000000000 --- a/Algorithms/0089.gray-code/gray-code.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0089 - diff --git a/Algorithms/0089.gray-code/gray-code_test.go b/Algorithms/0089.gray-code/gray-code_test.go deleted file mode 100755 index 7006b2134..000000000 --- a/Algorithms/0089.gray-code/gray-code_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0089 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0089(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0090.subsets-ii/README.md b/Algorithms/0090.subsets-ii/README.md deleted file mode 100755 index 3cc692b2a..000000000 --- a/Algorithms/0090.subsets-ii/README.md +++ /dev/null @@ -1,31 +0,0 @@ -# [90. Subsets II](https://leetcode.com/problems/subsets-ii/) - -## 题目 - - -Given a collection of integers that might contain duplicates, nums, return all possible subsets. - -Note: The solution set must not contain duplicate subsets. - - -For example, -If nums = [1,2,2], a solution is: - - -[ - [2], - [1], - [1,2,2], - [2,2], - [1,2], - [] -] - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0090.subsets-ii/subsets-ii.go b/Algorithms/0090.subsets-ii/subsets-ii.go deleted file mode 100755 index 6e4370ff7..000000000 --- a/Algorithms/0090.subsets-ii/subsets-ii.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0090 - diff --git a/Algorithms/0090.subsets-ii/subsets-ii_test.go b/Algorithms/0090.subsets-ii/subsets-ii_test.go deleted file mode 100755 index c065b3279..000000000 --- a/Algorithms/0090.subsets-ii/subsets-ii_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0090 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0090(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0091.decode-ways/README.md b/Algorithms/0091.decode-ways/README.md deleted file mode 100755 index 4742730db..000000000 --- a/Algorithms/0091.decode-ways/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# [91. Decode Ways](https://leetcode.com/problems/decode-ways/) - -## 题目 - - -A message containing letters from A-Z is being encoded to numbers using the following mapping: - - -'A' -> 1 -'B' -> 2 -... -'Z' -> 26 - - - -Given an encoded message containing digits, determine the total number of ways to decode it. - - - -For example, -Given encoded message "12", -it could be decoded as "AB" (1 2) or "L" (12). - - - -The number of ways decoding "12" is 2. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0091.decode-ways/decode-ways.go b/Algorithms/0091.decode-ways/decode-ways.go deleted file mode 100755 index 9fb494c49..000000000 --- a/Algorithms/0091.decode-ways/decode-ways.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0091 - diff --git a/Algorithms/0091.decode-ways/decode-ways_test.go b/Algorithms/0091.decode-ways/decode-ways_test.go deleted file mode 100755 index 1af864262..000000000 --- a/Algorithms/0091.decode-ways/decode-ways_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0091 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0091(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0092.reverse-linked-list-ii/README.md b/Algorithms/0092.reverse-linked-list-ii/README.md deleted file mode 100755 index 334da7441..000000000 --- a/Algorithms/0092.reverse-linked-list-ii/README.md +++ /dev/null @@ -1,28 +0,0 @@ -# [92. Reverse Linked List II](https://leetcode.com/problems/reverse-linked-list-ii/) - -## 题目 - - -Reverse a linked list from position m to n. Do it in-place and in one-pass. - - - -For example: -Given 1->2->3->4->5->NULL, m = 2 and n = 4, - - -return 1->4->3->2->5->NULL. - - -Note: -Given m, n satisfy the following condition: -1 ≤ m ≤ n ≤ length of list. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0092.reverse-linked-list-ii/reverse-linked-list-ii.go b/Algorithms/0092.reverse-linked-list-ii/reverse-linked-list-ii.go deleted file mode 100755 index b56185972..000000000 --- a/Algorithms/0092.reverse-linked-list-ii/reverse-linked-list-ii.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0092 - diff --git a/Algorithms/0092.reverse-linked-list-ii/reverse-linked-list-ii_test.go b/Algorithms/0092.reverse-linked-list-ii/reverse-linked-list-ii_test.go deleted file mode 100755 index 927267d26..000000000 --- a/Algorithms/0092.reverse-linked-list-ii/reverse-linked-list-ii_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0092 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0092(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0093.restore-ip-addresses/README.md b/Algorithms/0093.restore-ip-addresses/README.md deleted file mode 100755 index 96550193e..000000000 --- a/Algorithms/0093.restore-ip-addresses/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# [93. Restore IP Addresses](https://leetcode.com/problems/restore-ip-addresses/) - -## 题目 - - Given a string containing only digits, restore it by returning all possible valid IP address combinations. - - -For example: -Given "25525511135", - - -return ["255.255.11.135", "255.255.111.35"]. (Order does not matter) - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0093.restore-ip-addresses/restore-ip-addresses.go b/Algorithms/0093.restore-ip-addresses/restore-ip-addresses.go deleted file mode 100755 index b2afc8d38..000000000 --- a/Algorithms/0093.restore-ip-addresses/restore-ip-addresses.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0093 - diff --git a/Algorithms/0093.restore-ip-addresses/restore-ip-addresses_test.go b/Algorithms/0093.restore-ip-addresses/restore-ip-addresses_test.go deleted file mode 100755 index 44dff82aa..000000000 --- a/Algorithms/0093.restore-ip-addresses/restore-ip-addresses_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0093 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0093(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0094.binary-tree-inorder-traversal/README.md b/Algorithms/0094.binary-tree-inorder-traversal/README.md deleted file mode 100755 index a555ec37c..000000000 --- a/Algorithms/0094.binary-tree-inorder-traversal/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# [94. Binary Tree Inorder Traversal](https://leetcode.com/problems/binary-tree-inorder-traversal/) - -## 题目 - - Given a binary tree, return the inorder traversal of its nodes' values. - - -For example: -Given binary tree [1,null,2,3], - 1 - \ - 2 - / - 3 - - - -return [1,3,2]. - - -Note: Recursive solution is trivial, could you do it iteratively? - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0094.binary-tree-inorder-traversal/binary-tree-inorder-traversal.go b/Algorithms/0094.binary-tree-inorder-traversal/binary-tree-inorder-traversal.go deleted file mode 100755 index 4801f0a00..000000000 --- a/Algorithms/0094.binary-tree-inorder-traversal/binary-tree-inorder-traversal.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0094 - diff --git a/Algorithms/0094.binary-tree-inorder-traversal/binary-tree-inorder-traversal_test.go b/Algorithms/0094.binary-tree-inorder-traversal/binary-tree-inorder-traversal_test.go deleted file mode 100755 index 75c7161ff..000000000 --- a/Algorithms/0094.binary-tree-inorder-traversal/binary-tree-inorder-traversal_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0094 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0094(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0095.unique-binary-search-trees-ii/README.md b/Algorithms/0095.unique-binary-search-trees-ii/README.md deleted file mode 100755 index ecbe948a0..000000000 --- a/Algorithms/0095.unique-binary-search-trees-ii/README.md +++ /dev/null @@ -1,25 +0,0 @@ -# [95. Unique Binary Search Trees II](https://leetcode.com/problems/unique-binary-search-trees-ii/) - -## 题目 - - Given an integer n, generate all structurally unique BST's (binary search trees) that store values 1...n. - - -For example, -Given n = 3, your program should return all 5 unique BST's shown below. - - 1 3 3 2 1 - \ / / / \ \ - 3 2 1 1 3 2 - / / \ \ - 2 1 2 3 - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0095.unique-binary-search-trees-ii/unique-binary-search-trees-ii.go b/Algorithms/0095.unique-binary-search-trees-ii/unique-binary-search-trees-ii.go deleted file mode 100755 index 46e609a08..000000000 --- a/Algorithms/0095.unique-binary-search-trees-ii/unique-binary-search-trees-ii.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0095 - diff --git a/Algorithms/0095.unique-binary-search-trees-ii/unique-binary-search-trees-ii_test.go b/Algorithms/0095.unique-binary-search-trees-ii/unique-binary-search-trees-ii_test.go deleted file mode 100755 index 0af8b365c..000000000 --- a/Algorithms/0095.unique-binary-search-trees-ii/unique-binary-search-trees-ii_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0095 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0095(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0096.unique-binary-search-trees/README.md b/Algorithms/0096.unique-binary-search-trees/README.md deleted file mode 100755 index b53af8b80..000000000 --- a/Algorithms/0096.unique-binary-search-trees/README.md +++ /dev/null @@ -1,25 +0,0 @@ -# [96. Unique Binary Search Trees](https://leetcode.com/problems/unique-binary-search-trees/) - -## 题目 - - Given n, how many structurally unique BST's (binary search trees) that store values 1...n? - - -For example, -Given n = 3, there are a total of 5 unique BST's. - - 1 3 3 2 1 - \ / / / \ \ - 3 2 1 1 3 2 - / / \ \ - 2 1 2 3 - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0096.unique-binary-search-trees/unique-binary-search-trees.go b/Algorithms/0096.unique-binary-search-trees/unique-binary-search-trees.go deleted file mode 100755 index a950aaa46..000000000 --- a/Algorithms/0096.unique-binary-search-trees/unique-binary-search-trees.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0096 - diff --git a/Algorithms/0096.unique-binary-search-trees/unique-binary-search-trees_test.go b/Algorithms/0096.unique-binary-search-trees/unique-binary-search-trees_test.go deleted file mode 100755 index 7febc5aa9..000000000 --- a/Algorithms/0096.unique-binary-search-trees/unique-binary-search-trees_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0096 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0096(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0097.interleaving-string/README.md b/Algorithms/0097.interleaving-string/README.md deleted file mode 100755 index 898b30a9b..000000000 --- a/Algorithms/0097.interleaving-string/README.md +++ /dev/null @@ -1,26 +0,0 @@ -# [97. Interleaving String](https://leetcode.com/problems/interleaving-string/) - -## 题目 - - -Given s1, s2, s3, find whether s3 is formed by the interleaving of s1 and s2. - - - -For example, -Given: -s1 = "aabcc", -s2 = "dbbca", - - -When s3 = "aadbbcbcac", return true. -When s3 = "aadbbbaccc", return false. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0097.interleaving-string/interleaving-string.go b/Algorithms/0097.interleaving-string/interleaving-string.go deleted file mode 100755 index b21afeec2..000000000 --- a/Algorithms/0097.interleaving-string/interleaving-string.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0097 - diff --git a/Algorithms/0097.interleaving-string/interleaving-string_test.go b/Algorithms/0097.interleaving-string/interleaving-string_test.go deleted file mode 100755 index eb8ed5725..000000000 --- a/Algorithms/0097.interleaving-string/interleaving-string_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0097 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0097(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0098.validate-binary-search-tree/README.md b/Algorithms/0098.validate-binary-search-tree/README.md deleted file mode 100755 index 93bc8eaba..000000000 --- a/Algorithms/0098.validate-binary-search-tree/README.md +++ /dev/null @@ -1,40 +0,0 @@ -# [98. Validate Binary Search Tree](https://leetcode.com/problems/validate-binary-search-tree/) - -## 题目 - - -Given a binary tree, determine if it is a valid binary search tree (BST). - - - -Assume a BST is defined as follows: - -The left subtree of a node contains only nodes with keys less than the node's key. -The right subtree of a node contains only nodes with keys greater than the node's key. -Both the left and right subtrees must also be binary search trees. - - - -Example 1: - 2 - / \ - 1 3 - -Binary tree [2,1,3], return true. - - -Example 2: - 1 - / \ - 2 3 - -Binary tree [1,2,3], return false. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0098.validate-binary-search-tree/validate-binary-search-tree.go b/Algorithms/0098.validate-binary-search-tree/validate-binary-search-tree.go deleted file mode 100755 index c4e86a273..000000000 --- a/Algorithms/0098.validate-binary-search-tree/validate-binary-search-tree.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0098 - diff --git a/Algorithms/0098.validate-binary-search-tree/validate-binary-search-tree_test.go b/Algorithms/0098.validate-binary-search-tree/validate-binary-search-tree_test.go deleted file mode 100755 index 57c0798af..000000000 --- a/Algorithms/0098.validate-binary-search-tree/validate-binary-search-tree_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0098 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0098(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0099.recover-binary-search-tree/README.md b/Algorithms/0099.recover-binary-search-tree/README.md deleted file mode 100755 index 93c55bd20..000000000 --- a/Algorithms/0099.recover-binary-search-tree/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# [99. Recover Binary Search Tree](https://leetcode.com/problems/recover-binary-search-tree/) - -## 题目 - - -Two elements of a binary search tree (BST) are swapped by mistake. - -Recover the tree without changing its structure. - - -Note: -A solution using O(n) space is pretty straight forward. Could you devise a constant space solution? - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0099.recover-binary-search-tree/recover-binary-search-tree.go b/Algorithms/0099.recover-binary-search-tree/recover-binary-search-tree.go deleted file mode 100755 index 2f35b434e..000000000 --- a/Algorithms/0099.recover-binary-search-tree/recover-binary-search-tree.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0099 - diff --git a/Algorithms/0099.recover-binary-search-tree/recover-binary-search-tree_test.go b/Algorithms/0099.recover-binary-search-tree/recover-binary-search-tree_test.go deleted file mode 100755 index 377486837..000000000 --- a/Algorithms/0099.recover-binary-search-tree/recover-binary-search-tree_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0099 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0099(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0100.same-tree/README.md b/Algorithms/0100.same-tree/README.md deleted file mode 100755 index dd0071f30..000000000 --- a/Algorithms/0100.same-tree/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# [100. Same Tree](https://leetcode.com/problems/same-tree/) - -## 题目 - - -Given two binary trees, write a function to check if they are equal or not. - - -Two binary trees are considered equal if they are structurally identical and the nodes have the same value. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0100.same-tree/same-tree.go b/Algorithms/0100.same-tree/same-tree.go deleted file mode 100755 index 47127470b..000000000 --- a/Algorithms/0100.same-tree/same-tree.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0100 - diff --git a/Algorithms/0100.same-tree/same-tree_test.go b/Algorithms/0100.same-tree/same-tree_test.go deleted file mode 100755 index 8e7b47bb7..000000000 --- a/Algorithms/0100.same-tree/same-tree_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0100 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0100(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0101.symmetric-tree/README.md b/Algorithms/0101.symmetric-tree/README.md deleted file mode 100755 index eb84fb25b..000000000 --- a/Algorithms/0101.symmetric-tree/README.md +++ /dev/null @@ -1,37 +0,0 @@ -# [101. Symmetric Tree](https://leetcode.com/problems/symmetric-tree/) - -## 题目 - - Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center). - - -For example, this binary tree [1,2,2,3,4,4,3] is symmetric: - 1 - / \ - 2 2 - / \ / \ -3 4 4 3 - - - -But the following [1,2,2,null,3,null,3] is not: - 1 - / \ - 2 2 - \ \ - 3 3 - - - - -Note: -Bonus points if you could solve it both recursively and iteratively. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0101.symmetric-tree/symmetric-tree.go b/Algorithms/0101.symmetric-tree/symmetric-tree.go deleted file mode 100755 index ff1eeabb4..000000000 --- a/Algorithms/0101.symmetric-tree/symmetric-tree.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0101 - diff --git a/Algorithms/0101.symmetric-tree/symmetric-tree_test.go b/Algorithms/0101.symmetric-tree/symmetric-tree_test.go deleted file mode 100755 index 7f1d1b196..000000000 --- a/Algorithms/0101.symmetric-tree/symmetric-tree_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0101 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0101(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0102.binary-tree-level-order-traversal/README.md b/Algorithms/0102.binary-tree-level-order-traversal/README.md deleted file mode 100755 index 32a162605..000000000 --- a/Algorithms/0102.binary-tree-level-order-traversal/README.md +++ /dev/null @@ -1,33 +0,0 @@ -# [102. Binary Tree Level Order Traversal](https://leetcode.com/problems/binary-tree-level-order-traversal/) - -## 题目 - - Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level). - - -For example: -Given binary tree [3,9,20,null,null,15,7], - 3 - / \ - 9 20 - / \ - 15 7 - - - -return its level order traversal as: -[ - [3], - [9,20], - [15,7] -] - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0102.binary-tree-level-order-traversal/binary-tree-level-order-traversal.go b/Algorithms/0102.binary-tree-level-order-traversal/binary-tree-level-order-traversal.go deleted file mode 100755 index c3269f7fa..000000000 --- a/Algorithms/0102.binary-tree-level-order-traversal/binary-tree-level-order-traversal.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0102 - diff --git a/Algorithms/0102.binary-tree-level-order-traversal/binary-tree-level-order-traversal_test.go b/Algorithms/0102.binary-tree-level-order-traversal/binary-tree-level-order-traversal_test.go deleted file mode 100755 index 459cfaa5d..000000000 --- a/Algorithms/0102.binary-tree-level-order-traversal/binary-tree-level-order-traversal_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0102 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0102(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0103.binary-tree-zigzag-level-order-traversal/README.md b/Algorithms/0103.binary-tree-zigzag-level-order-traversal/README.md deleted file mode 100755 index 0b170165e..000000000 --- a/Algorithms/0103.binary-tree-zigzag-level-order-traversal/README.md +++ /dev/null @@ -1,33 +0,0 @@ -# [103. Binary Tree Zigzag Level Order Traversal](https://leetcode.com/problems/binary-tree-zigzag-level-order-traversal/) - -## 题目 - - Given a binary tree, return the zigzag level order traversal of its nodes' values. (ie, from left to right, then right to left for the next level and alternate between). - - -For example: -Given binary tree [3,9,20,null,null,15,7], - 3 - / \ - 9 20 - / \ - 15 7 - - - -return its zigzag level order traversal as: -[ - [3], - [20,9], - [15,7] -] - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0103.binary-tree-zigzag-level-order-traversal/binary-tree-zigzag-level-order-traversal.go b/Algorithms/0103.binary-tree-zigzag-level-order-traversal/binary-tree-zigzag-level-order-traversal.go deleted file mode 100755 index 31fc9f529..000000000 --- a/Algorithms/0103.binary-tree-zigzag-level-order-traversal/binary-tree-zigzag-level-order-traversal.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0103 - diff --git a/Algorithms/0103.binary-tree-zigzag-level-order-traversal/binary-tree-zigzag-level-order-traversal_test.go b/Algorithms/0103.binary-tree-zigzag-level-order-traversal/binary-tree-zigzag-level-order-traversal_test.go deleted file mode 100755 index 6b6990796..000000000 --- a/Algorithms/0103.binary-tree-zigzag-level-order-traversal/binary-tree-zigzag-level-order-traversal_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0103 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0103(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0104.maximum-depth-of-binary-tree/README.md b/Algorithms/0104.maximum-depth-of-binary-tree/README.md deleted file mode 100755 index b512299c1..000000000 --- a/Algorithms/0104.maximum-depth-of-binary-tree/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# [104. Maximum Depth of Binary Tree](https://leetcode.com/problems/maximum-depth-of-binary-tree/) - -## 题目 - - Given a binary tree, find its maximum depth. - -The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0104.maximum-depth-of-binary-tree/maximum-depth-of-binary-tree.go b/Algorithms/0104.maximum-depth-of-binary-tree/maximum-depth-of-binary-tree.go deleted file mode 100755 index ae3f0194f..000000000 --- a/Algorithms/0104.maximum-depth-of-binary-tree/maximum-depth-of-binary-tree.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0104 - diff --git a/Algorithms/0104.maximum-depth-of-binary-tree/maximum-depth-of-binary-tree_test.go b/Algorithms/0104.maximum-depth-of-binary-tree/maximum-depth-of-binary-tree_test.go deleted file mode 100755 index 919746628..000000000 --- a/Algorithms/0104.maximum-depth-of-binary-tree/maximum-depth-of-binary-tree_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0104 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0104(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0105.construct-binary-tree-from-preorder-and-inorder-traversal/README.md b/Algorithms/0105.construct-binary-tree-from-preorder-and-inorder-traversal/README.md deleted file mode 100755 index 63609f1f7..000000000 --- a/Algorithms/0105.construct-binary-tree-from-preorder-and-inorder-traversal/README.md +++ /dev/null @@ -1,17 +0,0 @@ -# [105. Construct Binary Tree from Preorder and Inorder Traversal](https://leetcode.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal/) - -## 题目 - - Given preorder and inorder traversal of a tree, construct the binary tree. - -Note: -You may assume that duplicates do not exist in the tree. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0105.construct-binary-tree-from-preorder-and-inorder-traversal/construct-binary-tree-from-preorder-and-inorder-traversal.go b/Algorithms/0105.construct-binary-tree-from-preorder-and-inorder-traversal/construct-binary-tree-from-preorder-and-inorder-traversal.go deleted file mode 100755 index 8f4263215..000000000 --- a/Algorithms/0105.construct-binary-tree-from-preorder-and-inorder-traversal/construct-binary-tree-from-preorder-and-inorder-traversal.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0105 - diff --git a/Algorithms/0105.construct-binary-tree-from-preorder-and-inorder-traversal/construct-binary-tree-from-preorder-and-inorder-traversal_test.go b/Algorithms/0105.construct-binary-tree-from-preorder-and-inorder-traversal/construct-binary-tree-from-preorder-and-inorder-traversal_test.go deleted file mode 100755 index fd2f9cf4c..000000000 --- a/Algorithms/0105.construct-binary-tree-from-preorder-and-inorder-traversal/construct-binary-tree-from-preorder-and-inorder-traversal_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0105 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0105(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0106.construct-binary-tree-from-inorder-and-postorder-traversal/README.md b/Algorithms/0106.construct-binary-tree-from-inorder-and-postorder-traversal/README.md deleted file mode 100755 index 28fffd51b..000000000 --- a/Algorithms/0106.construct-binary-tree-from-inorder-and-postorder-traversal/README.md +++ /dev/null @@ -1,17 +0,0 @@ -# [106. Construct Binary Tree from Inorder and Postorder Traversal](https://leetcode.com/problems/construct-binary-tree-from-inorder-and-postorder-traversal/) - -## 题目 - - Given inorder and postorder traversal of a tree, construct the binary tree. - -Note: -You may assume that duplicates do not exist in the tree. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0106.construct-binary-tree-from-inorder-and-postorder-traversal/construct-binary-tree-from-inorder-and-postorder-traversal.go b/Algorithms/0106.construct-binary-tree-from-inorder-and-postorder-traversal/construct-binary-tree-from-inorder-and-postorder-traversal.go deleted file mode 100755 index 0ce4fd2f4..000000000 --- a/Algorithms/0106.construct-binary-tree-from-inorder-and-postorder-traversal/construct-binary-tree-from-inorder-and-postorder-traversal.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0106 - diff --git a/Algorithms/0106.construct-binary-tree-from-inorder-and-postorder-traversal/construct-binary-tree-from-inorder-and-postorder-traversal_test.go b/Algorithms/0106.construct-binary-tree-from-inorder-and-postorder-traversal/construct-binary-tree-from-inorder-and-postorder-traversal_test.go deleted file mode 100755 index e8ebf35c3..000000000 --- a/Algorithms/0106.construct-binary-tree-from-inorder-and-postorder-traversal/construct-binary-tree-from-inorder-and-postorder-traversal_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0106 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0106(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0107.binary-tree-level-order-traversal-ii/README.md b/Algorithms/0107.binary-tree-level-order-traversal-ii/README.md deleted file mode 100755 index d81f3478a..000000000 --- a/Algorithms/0107.binary-tree-level-order-traversal-ii/README.md +++ /dev/null @@ -1,33 +0,0 @@ -# [107. Binary Tree Level Order Traversal II](https://leetcode.com/problems/binary-tree-level-order-traversal-ii/) - -## 题目 - - Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left to right, level by level from leaf to root). - - -For example: -Given binary tree [3,9,20,null,null,15,7], - 3 - / \ - 9 20 - / \ - 15 7 - - - -return its bottom-up level order traversal as: -[ - [15,7], - [9,20], - [3] -] - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0107.binary-tree-level-order-traversal-ii/binary-tree-level-order-traversal-ii.go b/Algorithms/0107.binary-tree-level-order-traversal-ii/binary-tree-level-order-traversal-ii.go deleted file mode 100755 index 9a01cf220..000000000 --- a/Algorithms/0107.binary-tree-level-order-traversal-ii/binary-tree-level-order-traversal-ii.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0107 - diff --git a/Algorithms/0107.binary-tree-level-order-traversal-ii/binary-tree-level-order-traversal-ii_test.go b/Algorithms/0107.binary-tree-level-order-traversal-ii/binary-tree-level-order-traversal-ii_test.go deleted file mode 100755 index 4d9ce652f..000000000 --- a/Algorithms/0107.binary-tree-level-order-traversal-ii/binary-tree-level-order-traversal-ii_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0107 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0107(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0108.convert-sorted-array-to-binary-search-tree/README.md b/Algorithms/0108.convert-sorted-array-to-binary-search-tree/README.md deleted file mode 100755 index 9856b625d..000000000 --- a/Algorithms/0108.convert-sorted-array-to-binary-search-tree/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# [108. Convert Sorted Array to Binary Search Tree](https://leetcode.com/problems/convert-sorted-array-to-binary-search-tree/) - -## 题目 - - Given an array where elements are sorted in ascending order, convert it to a height balanced BST. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0108.convert-sorted-array-to-binary-search-tree/convert-sorted-array-to-binary-search-tree.go b/Algorithms/0108.convert-sorted-array-to-binary-search-tree/convert-sorted-array-to-binary-search-tree.go deleted file mode 100755 index 6cf1ba96b..000000000 --- a/Algorithms/0108.convert-sorted-array-to-binary-search-tree/convert-sorted-array-to-binary-search-tree.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0108 - diff --git a/Algorithms/0108.convert-sorted-array-to-binary-search-tree/convert-sorted-array-to-binary-search-tree_test.go b/Algorithms/0108.convert-sorted-array-to-binary-search-tree/convert-sorted-array-to-binary-search-tree_test.go deleted file mode 100755 index 6b0e39162..000000000 --- a/Algorithms/0108.convert-sorted-array-to-binary-search-tree/convert-sorted-array-to-binary-search-tree_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0108 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0108(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0109.convert-sorted-list-to-binary-search-tree/README.md b/Algorithms/0109.convert-sorted-list-to-binary-search-tree/README.md deleted file mode 100755 index 11ea301bf..000000000 --- a/Algorithms/0109.convert-sorted-list-to-binary-search-tree/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# [109. Convert Sorted List to Binary Search Tree](https://leetcode.com/problems/convert-sorted-list-to-binary-search-tree/) - -## 题目 - - Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0109.convert-sorted-list-to-binary-search-tree/convert-sorted-list-to-binary-search-tree.go b/Algorithms/0109.convert-sorted-list-to-binary-search-tree/convert-sorted-list-to-binary-search-tree.go deleted file mode 100755 index 1e885cba7..000000000 --- a/Algorithms/0109.convert-sorted-list-to-binary-search-tree/convert-sorted-list-to-binary-search-tree.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0109 - diff --git a/Algorithms/0109.convert-sorted-list-to-binary-search-tree/convert-sorted-list-to-binary-search-tree_test.go b/Algorithms/0109.convert-sorted-list-to-binary-search-tree/convert-sorted-list-to-binary-search-tree_test.go deleted file mode 100755 index f26faa673..000000000 --- a/Algorithms/0109.convert-sorted-list-to-binary-search-tree/convert-sorted-list-to-binary-search-tree_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0109 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0109(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0110.balanced-binary-tree/README.md b/Algorithms/0110.balanced-binary-tree/README.md deleted file mode 100755 index 8055b1006..000000000 --- a/Algorithms/0110.balanced-binary-tree/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# [110. Balanced Binary Tree](https://leetcode.com/problems/balanced-binary-tree/) - -## 题目 - - Given a binary tree, determine if it is height-balanced. - - - -For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of every node never differ by more than 1. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0110.balanced-binary-tree/balanced-binary-tree.go b/Algorithms/0110.balanced-binary-tree/balanced-binary-tree.go deleted file mode 100755 index 106eaaeb8..000000000 --- a/Algorithms/0110.balanced-binary-tree/balanced-binary-tree.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0110 - diff --git a/Algorithms/0110.balanced-binary-tree/balanced-binary-tree_test.go b/Algorithms/0110.balanced-binary-tree/balanced-binary-tree_test.go deleted file mode 100755 index a331e5086..000000000 --- a/Algorithms/0110.balanced-binary-tree/balanced-binary-tree_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0110 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0110(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0111.minimum-depth-of-binary-tree/README.md b/Algorithms/0111.minimum-depth-of-binary-tree/README.md deleted file mode 100755 index fe0c9fb1f..000000000 --- a/Algorithms/0111.minimum-depth-of-binary-tree/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# [111. Minimum Depth of Binary Tree](https://leetcode.com/problems/minimum-depth-of-binary-tree/) - -## 题目 - - Given a binary tree, find its minimum depth. - -The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0111.minimum-depth-of-binary-tree/minimum-depth-of-binary-tree.go b/Algorithms/0111.minimum-depth-of-binary-tree/minimum-depth-of-binary-tree.go deleted file mode 100755 index cf53e8872..000000000 --- a/Algorithms/0111.minimum-depth-of-binary-tree/minimum-depth-of-binary-tree.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0111 - diff --git a/Algorithms/0111.minimum-depth-of-binary-tree/minimum-depth-of-binary-tree_test.go b/Algorithms/0111.minimum-depth-of-binary-tree/minimum-depth-of-binary-tree_test.go deleted file mode 100755 index dbdf2dfdc..000000000 --- a/Algorithms/0111.minimum-depth-of-binary-tree/minimum-depth-of-binary-tree_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0111 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0111(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0112.path-sum/README.md b/Algorithms/0112.path-sum/README.md deleted file mode 100755 index 389a1f68e..000000000 --- a/Algorithms/0112.path-sum/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# [112. Path Sum](https://leetcode.com/problems/path-sum/) - -## 题目 - - -Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all the values along the path equals the given sum. - - -For example: -Given the below binary tree and sum = 22, - 5 - / \ - 4 8 - / / \ - 11 13 4 - / \ \ - 7 2 1 - - - -return true, as there exist a root-to-leaf path 5->4->11->2 which sum is 22. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0112.path-sum/path-sum.go b/Algorithms/0112.path-sum/path-sum.go deleted file mode 100755 index b16b83155..000000000 --- a/Algorithms/0112.path-sum/path-sum.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0112 - diff --git a/Algorithms/0112.path-sum/path-sum_test.go b/Algorithms/0112.path-sum/path-sum_test.go deleted file mode 100755 index 7bbce60a1..000000000 --- a/Algorithms/0112.path-sum/path-sum_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0112 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0112(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0113.path-sum-ii/README.md b/Algorithms/0113.path-sum-ii/README.md deleted file mode 100755 index d5c68d4ad..000000000 --- a/Algorithms/0113.path-sum-ii/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# [113. Path Sum II](https://leetcode.com/problems/path-sum-ii/) - -## 题目 - - -Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the given sum. - - -For example: -Given the below binary tree and sum = 22, - 5 - / \ - 4 8 - / / \ - 11 13 4 - / \ / \ - 7 2 5 1 - - - -return -[ - [5,4,11,2], - [5,8,4,5] -] - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0113.path-sum-ii/path-sum-ii.go b/Algorithms/0113.path-sum-ii/path-sum-ii.go deleted file mode 100755 index fda244bbc..000000000 --- a/Algorithms/0113.path-sum-ii/path-sum-ii.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0113 - diff --git a/Algorithms/0113.path-sum-ii/path-sum-ii_test.go b/Algorithms/0113.path-sum-ii/path-sum-ii_test.go deleted file mode 100755 index 1f0eec63f..000000000 --- a/Algorithms/0113.path-sum-ii/path-sum-ii_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0113 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0113(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0114.flatten-binary-tree-to-linked-list/README.md b/Algorithms/0114.flatten-binary-tree-to-linked-list/README.md deleted file mode 100755 index 68f8085f9..000000000 --- a/Algorithms/0114.flatten-binary-tree-to-linked-list/README.md +++ /dev/null @@ -1,46 +0,0 @@ -# [114. Flatten Binary Tree to Linked List](https://leetcode.com/problems/flatten-binary-tree-to-linked-list/) - -## 题目 - - -Given a binary tree, flatten it to a linked list in-place. - - - -For example, -Given - 1 - / \ - 2 5 - / \ \ - 3 4 6 - - - -The flattened tree should look like: - 1 - \ - 2 - \ - 3 - \ - 4 - \ - 5 - \ - 6 - - -click to show hints. - -Hints: -If you notice carefully in the flattened tree, each node's right child points to the next node of a pre-order traversal. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0114.flatten-binary-tree-to-linked-list/flatten-binary-tree-to-linked-list.go b/Algorithms/0114.flatten-binary-tree-to-linked-list/flatten-binary-tree-to-linked-list.go deleted file mode 100755 index 9857bc473..000000000 --- a/Algorithms/0114.flatten-binary-tree-to-linked-list/flatten-binary-tree-to-linked-list.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0114 - diff --git a/Algorithms/0114.flatten-binary-tree-to-linked-list/flatten-binary-tree-to-linked-list_test.go b/Algorithms/0114.flatten-binary-tree-to-linked-list/flatten-binary-tree-to-linked-list_test.go deleted file mode 100755 index f6df70c3c..000000000 --- a/Algorithms/0114.flatten-binary-tree-to-linked-list/flatten-binary-tree-to-linked-list_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0114 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0114(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0115.distinct-subsequences/README.md b/Algorithms/0115.distinct-subsequences/README.md deleted file mode 100755 index 9330d4c35..000000000 --- a/Algorithms/0115.distinct-subsequences/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# [115. Distinct Subsequences](https://leetcode.com/problems/distinct-subsequences/) - -## 题目 - - -Given a string S and a string T, count the number of distinct subsequences of S which equals T. - - - -A subsequence of a string is a new string which is formed from the original string by deleting some (can be none) of the characters without disturbing the relative positions of the remaining characters. (ie, "ACE" is a subsequence of "ABCDE" while "AEC" is not). - - - -Here is an example: -S = "rabbbit", T = "rabbit" - - -Return 3. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0115.distinct-subsequences/distinct-subsequences.go b/Algorithms/0115.distinct-subsequences/distinct-subsequences.go deleted file mode 100755 index 7db997c94..000000000 --- a/Algorithms/0115.distinct-subsequences/distinct-subsequences.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0115 - diff --git a/Algorithms/0115.distinct-subsequences/distinct-subsequences_test.go b/Algorithms/0115.distinct-subsequences/distinct-subsequences_test.go deleted file mode 100755 index 6848d174f..000000000 --- a/Algorithms/0115.distinct-subsequences/distinct-subsequences_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0115 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0115(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0116.populating-next-right-pointers-in-each-node/README.md b/Algorithms/0116.populating-next-right-pointers-in-each-node/README.md deleted file mode 100755 index 605ebc444..000000000 --- a/Algorithms/0116.populating-next-right-pointers-in-each-node/README.md +++ /dev/null @@ -1,53 +0,0 @@ -# [116. Populating Next Right Pointers in Each Node](https://leetcode.com/problems/populating-next-right-pointers-in-each-node/) - -## 题目 - - -Given a binary tree - struct TreeLinkNode { - TreeLinkNode *left; - TreeLinkNode *right; - TreeLinkNode *next; - } - - - -Populate each next pointer to point to its next right node. If there is no next right node, the next pointer should be set to NULL. - -Initially, all next pointers are set to NULL. - - -Note: - -You may only use constant extra space. -You may assume that it is a perfect binary tree (ie, all leaves are at the same level, and every parent has two children). - - - - -For example, -Given the following perfect binary tree, - 1 - / \ - 2 3 - / \ / \ - 4 5 6 7 - - - -After calling your function, the tree should look like: - 1 -> NULL - / \ - 2 -> 3 -> NULL - / \ / \ - 4->5->6->7 -> NULL - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0116.populating-next-right-pointers-in-each-node/populating-next-right-pointers-in-each-node.go b/Algorithms/0116.populating-next-right-pointers-in-each-node/populating-next-right-pointers-in-each-node.go deleted file mode 100755 index bacee8474..000000000 --- a/Algorithms/0116.populating-next-right-pointers-in-each-node/populating-next-right-pointers-in-each-node.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0116 - diff --git a/Algorithms/0116.populating-next-right-pointers-in-each-node/populating-next-right-pointers-in-each-node_test.go b/Algorithms/0116.populating-next-right-pointers-in-each-node/populating-next-right-pointers-in-each-node_test.go deleted file mode 100755 index d8dde4050..000000000 --- a/Algorithms/0116.populating-next-right-pointers-in-each-node/populating-next-right-pointers-in-each-node_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0116 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0116(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0117.populating-next-right-pointers-in-each-node-ii/README.md b/Algorithms/0117.populating-next-right-pointers-in-each-node-ii/README.md deleted file mode 100755 index 5de294612..000000000 --- a/Algorithms/0117.populating-next-right-pointers-in-each-node-ii/README.md +++ /dev/null @@ -1,37 +0,0 @@ -# [117. Populating Next Right Pointers in Each Node II](https://leetcode.com/problems/populating-next-right-pointers-in-each-node-ii/) - -## 题目 - - Follow up for problem "Populating Next Right Pointers in Each Node". -What if the given tree could be any binary tree? Would your previous solution still work? - -Note: -You may only use constant extra space. - - -For example, -Given the following binary tree, - 1 - / \ - 2 3 - / \ \ - 4 5 7 - - - -After calling your function, the tree should look like: - 1 -> NULL - / \ - 2 -> 3 -> NULL - / \ \ - 4-> 5 -> 7 -> NULL - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0117.populating-next-right-pointers-in-each-node-ii/populating-next-right-pointers-in-each-node-ii.go b/Algorithms/0117.populating-next-right-pointers-in-each-node-ii/populating-next-right-pointers-in-each-node-ii.go deleted file mode 100755 index 6dc364612..000000000 --- a/Algorithms/0117.populating-next-right-pointers-in-each-node-ii/populating-next-right-pointers-in-each-node-ii.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0117 - diff --git a/Algorithms/0117.populating-next-right-pointers-in-each-node-ii/populating-next-right-pointers-in-each-node-ii_test.go b/Algorithms/0117.populating-next-right-pointers-in-each-node-ii/populating-next-right-pointers-in-each-node-ii_test.go deleted file mode 100755 index 227e44314..000000000 --- a/Algorithms/0117.populating-next-right-pointers-in-each-node-ii/populating-next-right-pointers-in-each-node-ii_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0117 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0117(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0119.pascals-triangle-ii/README.md b/Algorithms/0119.pascals-triangle-ii/README.md deleted file mode 100755 index ba5bc60d1..000000000 --- a/Algorithms/0119.pascals-triangle-ii/README.md +++ /dev/null @@ -1,23 +0,0 @@ -# [119. Pascal's Triangle II](https://leetcode.com/problems/pascals-triangle-ii/) - -## 题目 - - Given an index k, return the kth row of the Pascal's triangle. - - -For example, given k = 3, -Return [1,3,3,1]. - - - -Note: -Could you optimize your algorithm to use only O(k) extra space? - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0119.pascals-triangle-ii/pascals-triangle-ii.go b/Algorithms/0119.pascals-triangle-ii/pascals-triangle-ii.go deleted file mode 100755 index 42df0401d..000000000 --- a/Algorithms/0119.pascals-triangle-ii/pascals-triangle-ii.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0119 - diff --git a/Algorithms/0119.pascals-triangle-ii/pascals-triangle-ii_test.go b/Algorithms/0119.pascals-triangle-ii/pascals-triangle-ii_test.go deleted file mode 100755 index 5015898e4..000000000 --- a/Algorithms/0119.pascals-triangle-ii/pascals-triangle-ii_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0119 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0119(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0120.triangle/README.md b/Algorithms/0120.triangle/README.md deleted file mode 100755 index 88bd0b904..000000000 --- a/Algorithms/0120.triangle/README.md +++ /dev/null @@ -1,32 +0,0 @@ -# [120. Triangle](https://leetcode.com/problems/triangle/) - -## 题目 - - Given a triangle, find the minimum path sum from top to bottom. Each step you may move to adjacent numbers on the row below. - - -For example, given the following triangle -[ - [2], - [3,4], - [6,5,7], - [4,1,8,3] -] - - - -The minimum path sum from top to bottom is 11 (i.e., 2 + 3 + 5 + 1 = 11). - - - -Note: -Bonus point if you are able to do this using only O(n) extra space, where n is the total number of rows in the triangle. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0120.triangle/triangle.go b/Algorithms/0120.triangle/triangle.go deleted file mode 100755 index 690f642d5..000000000 --- a/Algorithms/0120.triangle/triangle.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0120 - diff --git a/Algorithms/0120.triangle/triangle_test.go b/Algorithms/0120.triangle/triangle_test.go deleted file mode 100755 index c179e65f7..000000000 --- a/Algorithms/0120.triangle/triangle_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0120 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0120(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0121.best-time-to-buy-and-sell-stock/README.md b/Algorithms/0121.best-time-to-buy-and-sell-stock/README.md deleted file mode 100755 index f0c855247..000000000 --- a/Algorithms/0121.best-time-to-buy-and-sell-stock/README.md +++ /dev/null @@ -1,31 +0,0 @@ -# [121. Best Time to Buy and Sell Stock](https://leetcode.com/problems/best-time-to-buy-and-sell-stock/) - -## 题目 - - Say you have an array for which the ith element is the price of a given stock on day i. - -If you were only permitted to complete at most one transaction (ie, buy one and sell one share of the stock), design an algorithm to find the maximum profit. - -Example 1: -Input: [7, 1, 5, 3, 6, 4] -Output: 5 - -max. difference = 6-1 = 5 (not 7-1 = 6, as selling price needs to be larger than buying price) - - - -Example 2: -Input: [7, 6, 4, 3, 1] -Output: 0 - -In this case, no transaction is done, i.e. max profit = 0. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0121.best-time-to-buy-and-sell-stock/best-time-to-buy-and-sell-stock.go b/Algorithms/0121.best-time-to-buy-and-sell-stock/best-time-to-buy-and-sell-stock.go deleted file mode 100755 index dfd1fd30c..000000000 --- a/Algorithms/0121.best-time-to-buy-and-sell-stock/best-time-to-buy-and-sell-stock.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0121 - diff --git a/Algorithms/0121.best-time-to-buy-and-sell-stock/best-time-to-buy-and-sell-stock_test.go b/Algorithms/0121.best-time-to-buy-and-sell-stock/best-time-to-buy-and-sell-stock_test.go deleted file mode 100755 index 490ca7080..000000000 --- a/Algorithms/0121.best-time-to-buy-and-sell-stock/best-time-to-buy-and-sell-stock_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0121 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0121(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0122.best-time-to-buy-and-sell-stock-ii/README.md b/Algorithms/0122.best-time-to-buy-and-sell-stock-ii/README.md deleted file mode 100755 index ab192f050..000000000 --- a/Algorithms/0122.best-time-to-buy-and-sell-stock-ii/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# [122. Best Time to Buy and Sell Stock II](https://leetcode.com/problems/best-time-to-buy-and-sell-stock-ii/) - -## 题目 - - Say you have an array for which the ith element is the price of a given stock on day i. - -Design an algorithm to find the maximum profit. You may complete as many transactions as you like (ie, buy one and sell one share of the stock multiple times). However, you may not engage in multiple transactions at the same time (ie, you must sell the stock before you buy again). - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0122.best-time-to-buy-and-sell-stock-ii/best-time-to-buy-and-sell-stock-ii.go b/Algorithms/0122.best-time-to-buy-and-sell-stock-ii/best-time-to-buy-and-sell-stock-ii.go deleted file mode 100755 index 7e0f6cfa1..000000000 --- a/Algorithms/0122.best-time-to-buy-and-sell-stock-ii/best-time-to-buy-and-sell-stock-ii.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0122 - diff --git a/Algorithms/0122.best-time-to-buy-and-sell-stock-ii/best-time-to-buy-and-sell-stock-ii_test.go b/Algorithms/0122.best-time-to-buy-and-sell-stock-ii/best-time-to-buy-and-sell-stock-ii_test.go deleted file mode 100755 index ae1713650..000000000 --- a/Algorithms/0122.best-time-to-buy-and-sell-stock-ii/best-time-to-buy-and-sell-stock-ii_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0122 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0122(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0123.best-time-to-buy-and-sell-stock-iii/README.md b/Algorithms/0123.best-time-to-buy-and-sell-stock-iii/README.md deleted file mode 100755 index 700bc0eba..000000000 --- a/Algorithms/0123.best-time-to-buy-and-sell-stock-iii/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# [123. Best Time to Buy and Sell Stock III](https://leetcode.com/problems/best-time-to-buy-and-sell-stock-iii/) - -## 题目 - - Say you have an array for which the ith element is the price of a given stock on day i. - -Design an algorithm to find the maximum profit. You may complete at most two transactions. - -Note: -You may not engage in multiple transactions at the same time (ie, you must sell the stock before you buy again). - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0123.best-time-to-buy-and-sell-stock-iii/best-time-to-buy-and-sell-stock-iii.go b/Algorithms/0123.best-time-to-buy-and-sell-stock-iii/best-time-to-buy-and-sell-stock-iii.go deleted file mode 100755 index 75b6d1a3a..000000000 --- a/Algorithms/0123.best-time-to-buy-and-sell-stock-iii/best-time-to-buy-and-sell-stock-iii.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0123 - diff --git a/Algorithms/0123.best-time-to-buy-and-sell-stock-iii/best-time-to-buy-and-sell-stock-iii_test.go b/Algorithms/0123.best-time-to-buy-and-sell-stock-iii/best-time-to-buy-and-sell-stock-iii_test.go deleted file mode 100755 index 851d35bb4..000000000 --- a/Algorithms/0123.best-time-to-buy-and-sell-stock-iii/best-time-to-buy-and-sell-stock-iii_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0123 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0123(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0124.binary-tree-maximum-path-sum/README.md b/Algorithms/0124.binary-tree-maximum-path-sum/README.md deleted file mode 100755 index f779e5cc9..000000000 --- a/Algorithms/0124.binary-tree-maximum-path-sum/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# [124. Binary Tree Maximum Path Sum](https://leetcode.com/problems/binary-tree-maximum-path-sum/) - -## 题目 - - -Given a binary tree, find the maximum path sum. - - -For this problem, a path is defined as any sequence of nodes from some starting node to any node in the tree along the parent-child connections. The path must contain at least one node and does not need to go through the root. - - -For example: -Given the below binary tree, - 1 - / \ - 2 3 - - - -Return 6. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0124.binary-tree-maximum-path-sum/binary-tree-maximum-path-sum.go b/Algorithms/0124.binary-tree-maximum-path-sum/binary-tree-maximum-path-sum.go deleted file mode 100755 index 0777e98e3..000000000 --- a/Algorithms/0124.binary-tree-maximum-path-sum/binary-tree-maximum-path-sum.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0124 - diff --git a/Algorithms/0124.binary-tree-maximum-path-sum/binary-tree-maximum-path-sum_test.go b/Algorithms/0124.binary-tree-maximum-path-sum/binary-tree-maximum-path-sum_test.go deleted file mode 100755 index 5a4c0271c..000000000 --- a/Algorithms/0124.binary-tree-maximum-path-sum/binary-tree-maximum-path-sum_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0124 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0124(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0125.valid-palindrome/README.md b/Algorithms/0125.valid-palindrome/README.md deleted file mode 100755 index b655121ed..000000000 --- a/Algorithms/0125.valid-palindrome/README.md +++ /dev/null @@ -1,28 +0,0 @@ -# [125. Valid Palindrome](https://leetcode.com/problems/valid-palindrome/) - -## 题目 - - -Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases. - - - -For example, -"A man, a plan, a canal: Panama" is a palindrome. -"race a car" is not a palindrome. - - - -Note: -Have you consider that the string might be empty? This is a good question to ask during an interview. - -For the purpose of this problem, we define empty string as valid palindrome. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0125.valid-palindrome/valid-palindrome.go b/Algorithms/0125.valid-palindrome/valid-palindrome.go deleted file mode 100755 index 9ba87e369..000000000 --- a/Algorithms/0125.valid-palindrome/valid-palindrome.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0125 - diff --git a/Algorithms/0125.valid-palindrome/valid-palindrome_test.go b/Algorithms/0125.valid-palindrome/valid-palindrome_test.go deleted file mode 100755 index 8010336ab..000000000 --- a/Algorithms/0125.valid-palindrome/valid-palindrome_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0125 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0125(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0126.word-ladder-ii/README.md b/Algorithms/0126.word-ladder-ii/README.md deleted file mode 100755 index 6406719a9..000000000 --- a/Algorithms/0126.word-ladder-ii/README.md +++ /dev/null @@ -1,53 +0,0 @@ -# [126. Word Ladder II](https://leetcode.com/problems/word-ladder-ii/) - -## 题目 - - -Given two words (beginWord and endWord), and a dictionary's word list, find all shortest transformation sequence(s) from beginWord to endWord, such that: - - -Only one letter can be changed at a time -Each transformed word must exist in the word list. Note that beginWord is not a transformed word. - - - -For example, - - -Given: -beginWord = "hit" -endWord = "cog" -wordList = ["hot","dot","dog","lot","log","cog"] - - -Return - [ - ["hit","hot","dot","dog","cog"], - ["hit","hot","lot","log","cog"] - ] - - - - -Note: - -Return an empty list if there is no such transformation sequence. -All words have the same length. -All words contain only lowercase alphabetic characters. -You may assume no duplicates in the word list. -You may assume beginWord and endWord are non-empty and are not the same. - - - - -UPDATE (2017/1/20): -The wordList parameter had been changed to a list of strings (instead of a set of strings). Please reload the code definition to get the latest changes. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0126.word-ladder-ii/word-ladder-ii.go b/Algorithms/0126.word-ladder-ii/word-ladder-ii.go deleted file mode 100755 index 79a6dd658..000000000 --- a/Algorithms/0126.word-ladder-ii/word-ladder-ii.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0126 - diff --git a/Algorithms/0126.word-ladder-ii/word-ladder-ii_test.go b/Algorithms/0126.word-ladder-ii/word-ladder-ii_test.go deleted file mode 100755 index 914ecd2d6..000000000 --- a/Algorithms/0126.word-ladder-ii/word-ladder-ii_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0126 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0126(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0127.word-ladder/README.md b/Algorithms/0127.word-ladder/README.md deleted file mode 100755 index 8b22dd902..000000000 --- a/Algorithms/0127.word-ladder/README.md +++ /dev/null @@ -1,49 +0,0 @@ -# [127. Word Ladder](https://leetcode.com/problems/word-ladder/) - -## 题目 - - -Given two words (beginWord and endWord), and a dictionary's word list, find the length of shortest transformation sequence from beginWord to endWord, such that: - - -Only one letter can be changed at a time. -Each transformed word must exist in the word list. Note that beginWord is not a transformed word. - - - -For example, - - -Given: -beginWord = "hit" -endWord = "cog" -wordList = ["hot","dot","dog","lot","log","cog"] - - -As one shortest transformation is "hit" -> "hot" -> "dot" -> "dog" -> "cog", -return its length 5. - - - -Note: - -Return 0 if there is no such transformation sequence. -All words have the same length. -All words contain only lowercase alphabetic characters. -You may assume no duplicates in the word list. -You may assume beginWord and endWord are non-empty and are not the same. - - - - -UPDATE (2017/1/20): -The wordList parameter had been changed to a list of strings (instead of a set of strings). Please reload the code definition to get the latest changes. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0127.word-ladder/word-ladder.go b/Algorithms/0127.word-ladder/word-ladder.go deleted file mode 100755 index 69194973a..000000000 --- a/Algorithms/0127.word-ladder/word-ladder.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0127 - diff --git a/Algorithms/0127.word-ladder/word-ladder_test.go b/Algorithms/0127.word-ladder/word-ladder_test.go deleted file mode 100755 index 67725c009..000000000 --- a/Algorithms/0127.word-ladder/word-ladder_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0127 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0127(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0128.longest-consecutive-sequence/README.md b/Algorithms/0128.longest-consecutive-sequence/README.md deleted file mode 100755 index a20f04459..000000000 --- a/Algorithms/0128.longest-consecutive-sequence/README.md +++ /dev/null @@ -1,23 +0,0 @@ -# [128. Longest Consecutive Sequence](https://leetcode.com/problems/longest-consecutive-sequence/) - -## 题目 - - -Given an unsorted array of integers, find the length of the longest consecutive elements sequence. - - -For example, -Given [100, 4, 200, 1, 3, 2], -The longest consecutive elements sequence is [1, 2, 3, 4]. Return its length: 4. - - -Your algorithm should run in O(n) complexity. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0128.longest-consecutive-sequence/longest-consecutive-sequence.go b/Algorithms/0128.longest-consecutive-sequence/longest-consecutive-sequence.go deleted file mode 100755 index 99b6a2807..000000000 --- a/Algorithms/0128.longest-consecutive-sequence/longest-consecutive-sequence.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0128 - diff --git a/Algorithms/0128.longest-consecutive-sequence/longest-consecutive-sequence_test.go b/Algorithms/0128.longest-consecutive-sequence/longest-consecutive-sequence_test.go deleted file mode 100755 index b297af7eb..000000000 --- a/Algorithms/0128.longest-consecutive-sequence/longest-consecutive-sequence_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0128 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0128(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0129.sum-root-to-leaf-numbers/README.md b/Algorithms/0129.sum-root-to-leaf-numbers/README.md deleted file mode 100755 index 3542bcdcf..000000000 --- a/Algorithms/0129.sum-root-to-leaf-numbers/README.md +++ /dev/null @@ -1,30 +0,0 @@ -# [129. Sum Root to Leaf Numbers](https://leetcode.com/problems/sum-root-to-leaf-numbers/) - -## 题目 - - Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a number. -An example is the root-to-leaf path 1->2->3 which represents the number 123. - -Find the total sum of all root-to-leaf numbers. - -For example, - 1 - / \ - 2 3 - - - -The root-to-leaf path 1->2 represents the number 12. -The root-to-leaf path 1->3 represents the number 13. - - -Return the sum = 12 + 13 = 25. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0129.sum-root-to-leaf-numbers/sum-root-to-leaf-numbers.go b/Algorithms/0129.sum-root-to-leaf-numbers/sum-root-to-leaf-numbers.go deleted file mode 100755 index eea64d3c3..000000000 --- a/Algorithms/0129.sum-root-to-leaf-numbers/sum-root-to-leaf-numbers.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0129 - diff --git a/Algorithms/0129.sum-root-to-leaf-numbers/sum-root-to-leaf-numbers_test.go b/Algorithms/0129.sum-root-to-leaf-numbers/sum-root-to-leaf-numbers_test.go deleted file mode 100755 index f6a1682a0..000000000 --- a/Algorithms/0129.sum-root-to-leaf-numbers/sum-root-to-leaf-numbers_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0129 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0129(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0130.surrounded-regions/README.md b/Algorithms/0130.surrounded-regions/README.md deleted file mode 100755 index 046d588d8..000000000 --- a/Algorithms/0130.surrounded-regions/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# [130. Surrounded Regions](https://leetcode.com/problems/surrounded-regions/) - -## 题目 - - -Given a 2D board containing 'X' and 'O' (the letter O), capture all regions surrounded by 'X'. - -A region is captured by flipping all 'O's into 'X's in that surrounded region. - - - -For example, -X X X X -X O O X -X X O X -X O X X - - - - -After running your function, the board should be: -X X X X -X X X X -X X X X -X O X X - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0130.surrounded-regions/surrounded-regions.go b/Algorithms/0130.surrounded-regions/surrounded-regions.go deleted file mode 100755 index 2c9591359..000000000 --- a/Algorithms/0130.surrounded-regions/surrounded-regions.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0130 - diff --git a/Algorithms/0130.surrounded-regions/surrounded-regions_test.go b/Algorithms/0130.surrounded-regions/surrounded-regions_test.go deleted file mode 100755 index 0bba85ec9..000000000 --- a/Algorithms/0130.surrounded-regions/surrounded-regions_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0130 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0130(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0131.palindrome-partitioning/README.md b/Algorithms/0131.palindrome-partitioning/README.md deleted file mode 100755 index 7684f2fac..000000000 --- a/Algorithms/0131.palindrome-partitioning/README.md +++ /dev/null @@ -1,28 +0,0 @@ -# [131. Palindrome Partitioning](https://leetcode.com/problems/palindrome-partitioning/) - -## 题目 - - -Given a string s, partition s such that every substring of the partition is a palindrome. - - -Return all possible palindrome partitioning of s. - - -For example, given s = "aab", - -Return -[ - ["aa","b"], - ["a","a","b"] -] - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0131.palindrome-partitioning/palindrome-partitioning.go b/Algorithms/0131.palindrome-partitioning/palindrome-partitioning.go deleted file mode 100755 index 99982ef29..000000000 --- a/Algorithms/0131.palindrome-partitioning/palindrome-partitioning.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0131 - diff --git a/Algorithms/0131.palindrome-partitioning/palindrome-partitioning_test.go b/Algorithms/0131.palindrome-partitioning/palindrome-partitioning_test.go deleted file mode 100755 index 0301dfd10..000000000 --- a/Algorithms/0131.palindrome-partitioning/palindrome-partitioning_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0131 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0131(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0132.palindrome-partitioning-ii/README.md b/Algorithms/0132.palindrome-partitioning-ii/README.md deleted file mode 100755 index 6070cd86b..000000000 --- a/Algorithms/0132.palindrome-partitioning-ii/README.md +++ /dev/null @@ -1,22 +0,0 @@ -# [132. Palindrome Partitioning II](https://leetcode.com/problems/palindrome-partitioning-ii/) - -## 题目 - - -Given a string s, partition s such that every substring of the partition is a palindrome. - - -Return the minimum cuts needed for a palindrome partitioning of s. - - -For example, given s = "aab", -Return 1 since the palindrome partitioning ["aa","b"] could be produced using 1 cut. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0132.palindrome-partitioning-ii/palindrome-partitioning-ii.go b/Algorithms/0132.palindrome-partitioning-ii/palindrome-partitioning-ii.go deleted file mode 100755 index 197f3068b..000000000 --- a/Algorithms/0132.palindrome-partitioning-ii/palindrome-partitioning-ii.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0132 - diff --git a/Algorithms/0132.palindrome-partitioning-ii/palindrome-partitioning-ii_test.go b/Algorithms/0132.palindrome-partitioning-ii/palindrome-partitioning-ii_test.go deleted file mode 100755 index 203639cc8..000000000 --- a/Algorithms/0132.palindrome-partitioning-ii/palindrome-partitioning-ii_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0132 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0132(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0133.clone-graph/README.md b/Algorithms/0133.clone-graph/README.md deleted file mode 100755 index b9da26e56..000000000 --- a/Algorithms/0133.clone-graph/README.md +++ /dev/null @@ -1,53 +0,0 @@ -# [133. Clone Graph](https://leetcode.com/problems/clone-graph/) - -## 题目 - - -Clone an undirected graph. Each node in the graph contains a label and a list of its neighbors. - - - - -OJ's undirected graph serialization: - - -Nodes are labeled uniquely. - - -We use # as a separator for each node, and , as a separator for node label and each neighbor of the node. - - - - -As an example, consider the serialized graph {0,1,2#1,2#2,2}. - - - -The graph has a total of three nodes, and therefore contains three parts as separated by #. - -First node is labeled as 0. Connect node 0 to both nodes 1 and 2. -Second node is labeled as 1. Connect node 1 to node 2. -Third node is labeled as 2. Connect node 2 to node 2 (itself), thus forming a self-cycle. - - - - -Visually, the graph looks like the following: - 1 - / \ - / \ - 0 --- 2 - / \ - \_/ - - - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0133.clone-graph/clone-graph.go b/Algorithms/0133.clone-graph/clone-graph.go deleted file mode 100755 index 0b029c4d7..000000000 --- a/Algorithms/0133.clone-graph/clone-graph.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0133 - diff --git a/Algorithms/0133.clone-graph/clone-graph_test.go b/Algorithms/0133.clone-graph/clone-graph_test.go deleted file mode 100755 index 74492a710..000000000 --- a/Algorithms/0133.clone-graph/clone-graph_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0133 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0133(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0134.gas-station/README.md b/Algorithms/0134.gas-station/README.md deleted file mode 100755 index 916eb0a42..000000000 --- a/Algorithms/0134.gas-station/README.md +++ /dev/null @@ -1,28 +0,0 @@ -# [134. Gas Station](https://leetcode.com/problems/gas-station/) - -## 题目 - - -There are N gas stations along a circular route, where the amount of gas at station i is gas[i]. - - - -You have a car with an unlimited gas tank and it costs cost[i] of gas to travel from station i to its next station (i+1). You begin the journey with an empty tank at one of the gas stations. - - - -Return the starting gas station's index if you can travel around the circuit once, otherwise return -1. - - - -Note: -The solution is guaranteed to be unique. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0134.gas-station/gas-station.go b/Algorithms/0134.gas-station/gas-station.go deleted file mode 100755 index ed9fc9dea..000000000 --- a/Algorithms/0134.gas-station/gas-station.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0134 - diff --git a/Algorithms/0134.gas-station/gas-station_test.go b/Algorithms/0134.gas-station/gas-station_test.go deleted file mode 100755 index 2339faf1e..000000000 --- a/Algorithms/0134.gas-station/gas-station_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0134 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0134(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0135.candy/README.md b/Algorithms/0135.candy/README.md deleted file mode 100755 index 14381d924..000000000 --- a/Algorithms/0135.candy/README.md +++ /dev/null @@ -1,25 +0,0 @@ -# [135. Candy](https://leetcode.com/problems/candy/) - -## 题目 - - -There are N children standing in a line. Each child is assigned a rating value. - - -You are giving candies to these children subjected to the following requirements: - - -Each child must have at least one candy. -Children with a higher rating get more candies than their neighbors. - - -What is the minimum candies you must give? - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0135.candy/candy.go b/Algorithms/0135.candy/candy.go deleted file mode 100755 index a72ff4c7e..000000000 --- a/Algorithms/0135.candy/candy.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0135 - diff --git a/Algorithms/0135.candy/candy_test.go b/Algorithms/0135.candy/candy_test.go deleted file mode 100755 index 8b5369d26..000000000 --- a/Algorithms/0135.candy/candy_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0135 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0135(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0136.single-number/README.md b/Algorithms/0136.single-number/README.md deleted file mode 100755 index 14ec7a009..000000000 --- a/Algorithms/0136.single-number/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# [136. Single Number](https://leetcode.com/problems/single-number/) - -## 题目 - - Given an array of integers, every element appears twice except for one. Find that single one. - - -Note: -Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory? - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0136.single-number/single-number.go b/Algorithms/0136.single-number/single-number.go deleted file mode 100755 index e702ee724..000000000 --- a/Algorithms/0136.single-number/single-number.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0136 - diff --git a/Algorithms/0136.single-number/single-number_test.go b/Algorithms/0136.single-number/single-number_test.go deleted file mode 100755 index 28cba4dc3..000000000 --- a/Algorithms/0136.single-number/single-number_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0136 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0136(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0137.single-number-ii/README.md b/Algorithms/0137.single-number-ii/README.md deleted file mode 100755 index 88b76a342..000000000 --- a/Algorithms/0137.single-number-ii/README.md +++ /dev/null @@ -1,20 +0,0 @@ -# [137. Single Number II](https://leetcode.com/problems/single-number-ii/) - -## 题目 - - -Given an array of integers, every element appears three times except for one, which appears exactly once. Find that single one. - - - -Note: -Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory? - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0137.single-number-ii/single-number-ii.go b/Algorithms/0137.single-number-ii/single-number-ii.go deleted file mode 100755 index 341ad6a6b..000000000 --- a/Algorithms/0137.single-number-ii/single-number-ii.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0137 - diff --git a/Algorithms/0137.single-number-ii/single-number-ii_test.go b/Algorithms/0137.single-number-ii/single-number-ii_test.go deleted file mode 100755 index 440f8fafe..000000000 --- a/Algorithms/0137.single-number-ii/single-number-ii_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0137 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0137(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0138.copy-list-with-random-pointer/README.md b/Algorithms/0138.copy-list-with-random-pointer/README.md deleted file mode 100755 index e726d8648..000000000 --- a/Algorithms/0138.copy-list-with-random-pointer/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# [138. Copy List with Random Pointer](https://leetcode.com/problems/copy-list-with-random-pointer/) - -## 题目 - - -A linked list is given such that each node contains an additional random pointer which could point to any node in the list or null. - - - -Return a deep copy of the list. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0138.copy-list-with-random-pointer/copy-list-with-random-pointer.go b/Algorithms/0138.copy-list-with-random-pointer/copy-list-with-random-pointer.go deleted file mode 100755 index 7c26ae333..000000000 --- a/Algorithms/0138.copy-list-with-random-pointer/copy-list-with-random-pointer.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0138 - diff --git a/Algorithms/0138.copy-list-with-random-pointer/copy-list-with-random-pointer_test.go b/Algorithms/0138.copy-list-with-random-pointer/copy-list-with-random-pointer_test.go deleted file mode 100755 index fcbb61e95..000000000 --- a/Algorithms/0138.copy-list-with-random-pointer/copy-list-with-random-pointer_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0138 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0138(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0139.word-break/README.md b/Algorithms/0139.word-break/README.md deleted file mode 100755 index 4b75a6311..000000000 --- a/Algorithms/0139.word-break/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# [139. Word Break](https://leetcode.com/problems/word-break/) - -## 题目 - - -Given a non-empty string s and a dictionary wordDict containing a list of non-empty words, determine if s can be segmented into a space-separated sequence of one or more dictionary words. You may assume the dictionary does not contain duplicate words. - - -For example, given -s = "leetcode", -dict = ["leet", "code"]. - - - -Return true because "leetcode" can be segmented as "leet code". - - - -UPDATE (2017/1/4): -The wordDict parameter had been changed to a list of strings (instead of a set of strings). Please reload the code definition to get the latest changes. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0139.word-break/word-break.go b/Algorithms/0139.word-break/word-break.go deleted file mode 100755 index c2f9b6b30..000000000 --- a/Algorithms/0139.word-break/word-break.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0139 - diff --git a/Algorithms/0139.word-break/word-break_test.go b/Algorithms/0139.word-break/word-break_test.go deleted file mode 100755 index bcf7d9ad0..000000000 --- a/Algorithms/0139.word-break/word-break_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0139 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0139(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0140.word-break-ii/README.md b/Algorithms/0140.word-break-ii/README.md deleted file mode 100755 index 2622053b6..000000000 --- a/Algorithms/0140.word-break-ii/README.md +++ /dev/null @@ -1,34 +0,0 @@ -# [140. Word Break II](https://leetcode.com/problems/word-break-ii/) - -## 题目 - - -Given a non-empty string s and a dictionary wordDict containing a list of non-empty words, add spaces in s to construct a sentence where each word is a valid dictionary word. You may assume the dictionary does not contain duplicate words. - - - -Return all such possible sentences. - - - -For example, given -s = "catsanddog", -dict = ["cat", "cats", "and", "sand", "dog"]. - - - -A solution is ["cats and dog", "cat sand dog"]. - - - -UPDATE (2017/1/4): -The wordDict parameter had been changed to a list of strings (instead of a set of strings). Please reload the code definition to get the latest changes. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0140.word-break-ii/word-break-ii.go b/Algorithms/0140.word-break-ii/word-break-ii.go deleted file mode 100755 index 854d97cab..000000000 --- a/Algorithms/0140.word-break-ii/word-break-ii.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0140 - diff --git a/Algorithms/0140.word-break-ii/word-break-ii_test.go b/Algorithms/0140.word-break-ii/word-break-ii_test.go deleted file mode 100755 index e41b168f1..000000000 --- a/Algorithms/0140.word-break-ii/word-break-ii_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0140 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0140(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0141.linked-list-cycle/README.md b/Algorithms/0141.linked-list-cycle/README.md deleted file mode 100755 index d3d5b93d3..000000000 --- a/Algorithms/0141.linked-list-cycle/README.md +++ /dev/null @@ -1,20 +0,0 @@ -# [141. Linked List Cycle](https://leetcode.com/problems/linked-list-cycle/) - -## 题目 - - -Given a linked list, determine if it has a cycle in it. - - - -Follow up: -Can you solve it without using extra space? - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0141.linked-list-cycle/linked-list-cycle.go b/Algorithms/0141.linked-list-cycle/linked-list-cycle.go deleted file mode 100755 index 665da6c21..000000000 --- a/Algorithms/0141.linked-list-cycle/linked-list-cycle.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0141 - diff --git a/Algorithms/0141.linked-list-cycle/linked-list-cycle_test.go b/Algorithms/0141.linked-list-cycle/linked-list-cycle_test.go deleted file mode 100755 index a24d39e6e..000000000 --- a/Algorithms/0141.linked-list-cycle/linked-list-cycle_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0141 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0141(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0142.linked-list-cycle-ii/README.md b/Algorithms/0142.linked-list-cycle-ii/README.md deleted file mode 100755 index bc15f4cf8..000000000 --- a/Algorithms/0142.linked-list-cycle-ii/README.md +++ /dev/null @@ -1,23 +0,0 @@ -# [142. Linked List Cycle II](https://leetcode.com/problems/linked-list-cycle-ii/) - -## 题目 - - -Given a linked list, return the node where the cycle begins. If there is no cycle, return null. - - - -Note: Do not modify the linked list. - - -Follow up: -Can you solve it without using extra space? - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0142.linked-list-cycle-ii/linked-list-cycle-ii.go b/Algorithms/0142.linked-list-cycle-ii/linked-list-cycle-ii.go deleted file mode 100755 index e573f7987..000000000 --- a/Algorithms/0142.linked-list-cycle-ii/linked-list-cycle-ii.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0142 - diff --git a/Algorithms/0142.linked-list-cycle-ii/linked-list-cycle-ii_test.go b/Algorithms/0142.linked-list-cycle-ii/linked-list-cycle-ii_test.go deleted file mode 100755 index 1780db8ed..000000000 --- a/Algorithms/0142.linked-list-cycle-ii/linked-list-cycle-ii_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0142 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0142(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0143.reorder-list/README.md b/Algorithms/0143.reorder-list/README.md deleted file mode 100755 index 6940b38c7..000000000 --- a/Algorithms/0143.reorder-list/README.md +++ /dev/null @@ -1,23 +0,0 @@ -# [143. Reorder List](https://leetcode.com/problems/reorder-list/) - -## 题目 - - -Given a singly linked list L: L0?L1?…?Ln-1?Ln, -reorder it to: L0?Ln?L1?Ln-1?L2?Ln-2?… - - -You must do this in-place without altering the nodes' values. - - -For example, -Given {1,2,3,4}, reorder it to {1,4,2,3}. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0143.reorder-list/reorder-list.go b/Algorithms/0143.reorder-list/reorder-list.go deleted file mode 100755 index c4d60aa51..000000000 --- a/Algorithms/0143.reorder-list/reorder-list.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0143 - diff --git a/Algorithms/0143.reorder-list/reorder-list_test.go b/Algorithms/0143.reorder-list/reorder-list_test.go deleted file mode 100755 index 8833a5db7..000000000 --- a/Algorithms/0143.reorder-list/reorder-list_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0143 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0143(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0144.binary-tree-preorder-traversal/README.md b/Algorithms/0144.binary-tree-preorder-traversal/README.md deleted file mode 100755 index 6ce1ca7a8..000000000 --- a/Algorithms/0144.binary-tree-preorder-traversal/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# [144. Binary Tree Preorder Traversal](https://leetcode.com/problems/binary-tree-preorder-traversal/) - -## 题目 - - Given a binary tree, return the preorder traversal of its nodes' values. - - -For example: -Given binary tree {1,#,2,3}, - 1 - \ - 2 - / - 3 - - - -return [1,2,3]. - - -Note: Recursive solution is trivial, could you do it iteratively? - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0144.binary-tree-preorder-traversal/binary-tree-preorder-traversal.go b/Algorithms/0144.binary-tree-preorder-traversal/binary-tree-preorder-traversal.go deleted file mode 100755 index 9cabedc0d..000000000 --- a/Algorithms/0144.binary-tree-preorder-traversal/binary-tree-preorder-traversal.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0144 - diff --git a/Algorithms/0144.binary-tree-preorder-traversal/binary-tree-preorder-traversal_test.go b/Algorithms/0144.binary-tree-preorder-traversal/binary-tree-preorder-traversal_test.go deleted file mode 100755 index 0b1fa2ea5..000000000 --- a/Algorithms/0144.binary-tree-preorder-traversal/binary-tree-preorder-traversal_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0144 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0144(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0145.binary-tree-postorder-traversal/README.md b/Algorithms/0145.binary-tree-postorder-traversal/README.md deleted file mode 100755 index e2943da70..000000000 --- a/Algorithms/0145.binary-tree-postorder-traversal/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# [145. Binary Tree Postorder Traversal](https://leetcode.com/problems/binary-tree-postorder-traversal/) - -## 题目 - - Given a binary tree, return the postorder traversal of its nodes' values. - - -For example: -Given binary tree {1,#,2,3}, - 1 - \ - 2 - / - 3 - - - -return [3,2,1]. - - -Note: Recursive solution is trivial, could you do it iteratively? - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0145.binary-tree-postorder-traversal/binary-tree-postorder-traversal.go b/Algorithms/0145.binary-tree-postorder-traversal/binary-tree-postorder-traversal.go deleted file mode 100755 index d6f222570..000000000 --- a/Algorithms/0145.binary-tree-postorder-traversal/binary-tree-postorder-traversal.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0145 - diff --git a/Algorithms/0145.binary-tree-postorder-traversal/binary-tree-postorder-traversal_test.go b/Algorithms/0145.binary-tree-postorder-traversal/binary-tree-postorder-traversal_test.go deleted file mode 100755 index 2ee2597b8..000000000 --- a/Algorithms/0145.binary-tree-postorder-traversal/binary-tree-postorder-traversal_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0145 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0145(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0146.lru-cache/README.md b/Algorithms/0146.lru-cache/README.md deleted file mode 100755 index ef607dfa0..000000000 --- a/Algorithms/0146.lru-cache/README.md +++ /dev/null @@ -1,38 +0,0 @@ -# [146. LRU Cache](https://leetcode.com/problems/lru-cache/) - -## 题目 - - -Design and implement a data structure for Least Recently Used (LRU) cache. It should support the following operations: get and put. - - - -get(key) - Get the value (will always be positive) of the key if the key exists in the cache, otherwise return -1. -put(key, value) - Set or insert the value if the key is not already present. When the cache reached its capacity, it should invalidate the least recently used item before inserting a new item. - - -Follow up: -Could you do both operations in O(1) time complexity? - -Example: -LRUCache cache = new LRUCache( 2 /* capacity */ ); - -cache.put(1, 1); -cache.put(2, 2); -cache.get(1); // returns 1 -cache.put(3, 3); // evicts key 2 -cache.get(2); // returns -1 (not found) -cache.put(4, 4); // evicts key 1 -cache.get(1); // returns -1 (not found) -cache.get(3); // returns 3 -cache.get(4); // returns 4 - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0146.lru-cache/lru-cache.go b/Algorithms/0146.lru-cache/lru-cache.go deleted file mode 100755 index b6d781a19..000000000 --- a/Algorithms/0146.lru-cache/lru-cache.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0146 - diff --git a/Algorithms/0146.lru-cache/lru-cache_test.go b/Algorithms/0146.lru-cache/lru-cache_test.go deleted file mode 100755 index 930665699..000000000 --- a/Algorithms/0146.lru-cache/lru-cache_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0146 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0146(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0147.insertion-sort-list/README.md b/Algorithms/0147.insertion-sort-list/README.md deleted file mode 100755 index 5784b450b..000000000 --- a/Algorithms/0147.insertion-sort-list/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# [147. Insertion Sort List](https://leetcode.com/problems/insertion-sort-list/) - -## 题目 - - Sort a linked list using insertion sort. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0147.insertion-sort-list/insertion-sort-list.go b/Algorithms/0147.insertion-sort-list/insertion-sort-list.go deleted file mode 100755 index 3f5664a33..000000000 --- a/Algorithms/0147.insertion-sort-list/insertion-sort-list.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0147 - diff --git a/Algorithms/0147.insertion-sort-list/insertion-sort-list_test.go b/Algorithms/0147.insertion-sort-list/insertion-sort-list_test.go deleted file mode 100755 index d28097e22..000000000 --- a/Algorithms/0147.insertion-sort-list/insertion-sort-list_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0147 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0147(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0148.sort-list/README.md b/Algorithms/0148.sort-list/README.md deleted file mode 100755 index 9a12836af..000000000 --- a/Algorithms/0148.sort-list/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# [148. Sort List](https://leetcode.com/problems/sort-list/) - -## 题目 - - Sort a linked list in O(n log n) time using constant space complexity. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0148.sort-list/sort-list.go b/Algorithms/0148.sort-list/sort-list.go deleted file mode 100755 index 7e4d06901..000000000 --- a/Algorithms/0148.sort-list/sort-list.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0148 - diff --git a/Algorithms/0148.sort-list/sort-list_test.go b/Algorithms/0148.sort-list/sort-list_test.go deleted file mode 100755 index c3f36e884..000000000 --- a/Algorithms/0148.sort-list/sort-list_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0148 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0148(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0149.max-points-on-a-line/README.md b/Algorithms/0149.max-points-on-a-line/README.md deleted file mode 100755 index 4c5633c38..000000000 --- a/Algorithms/0149.max-points-on-a-line/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# [149. Max Points on a Line](https://leetcode.com/problems/max-points-on-a-line/) - -## 题目 - - Given n points on a 2D plane, find the maximum number of points that lie on the same straight line. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0149.max-points-on-a-line/max-points-on-a-line.go b/Algorithms/0149.max-points-on-a-line/max-points-on-a-line.go deleted file mode 100755 index 48fa9c6b0..000000000 --- a/Algorithms/0149.max-points-on-a-line/max-points-on-a-line.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0149 - diff --git a/Algorithms/0149.max-points-on-a-line/max-points-on-a-line_test.go b/Algorithms/0149.max-points-on-a-line/max-points-on-a-line_test.go deleted file mode 100755 index 4497aa4ba..000000000 --- a/Algorithms/0149.max-points-on-a-line/max-points-on-a-line_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0149 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0149(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0150.evaluate-reverse-polish-notation/README.md b/Algorithms/0150.evaluate-reverse-polish-notation/README.md deleted file mode 100755 index 9fd82694a..000000000 --- a/Algorithms/0150.evaluate-reverse-polish-notation/README.md +++ /dev/null @@ -1,26 +0,0 @@ -# [150. Evaluate Reverse Polish Notation](https://leetcode.com/problems/evaluate-reverse-polish-notation/) - -## 题目 - - -Evaluate the value of an arithmetic expression in Reverse Polish Notation. - - - -Valid operators are +, -, *, /. Each operand may be an integer or another expression. - - - -Some examples: - ["2", "1", "+", "3", "*"] -> ((2 + 1) * 3) -> 9 - ["4", "13", "5", "/", "+"] -> (4 + (13 / 5)) -> 6 - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0150.evaluate-reverse-polish-notation/evaluate-reverse-polish-notation.go b/Algorithms/0150.evaluate-reverse-polish-notation/evaluate-reverse-polish-notation.go deleted file mode 100755 index 5ecdad359..000000000 --- a/Algorithms/0150.evaluate-reverse-polish-notation/evaluate-reverse-polish-notation.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0150 - diff --git a/Algorithms/0150.evaluate-reverse-polish-notation/evaluate-reverse-polish-notation_test.go b/Algorithms/0150.evaluate-reverse-polish-notation/evaluate-reverse-polish-notation_test.go deleted file mode 100755 index 82807450f..000000000 --- a/Algorithms/0150.evaluate-reverse-polish-notation/evaluate-reverse-polish-notation_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0150 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0150(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0151.reverse-words-in-a-string/README.md b/Algorithms/0151.reverse-words-in-a-string/README.md deleted file mode 100755 index 299c5432d..000000000 --- a/Algorithms/0151.reverse-words-in-a-string/README.md +++ /dev/null @@ -1,42 +0,0 @@ -# [151. Reverse Words in a String](https://leetcode.com/problems/reverse-words-in-a-string/) - -## 题目 - - -Given an input string, reverse the string word by word. - - - -For example, -Given s = "the sky is blue", -return "blue is sky the". - - - -Update (2015-02-12): -For C programmers: Try to solve it in-place in O(1) space. - - -click to show clarification. - -Clarification: - - - -What constitutes a word? -A sequence of non-space characters constitutes a word. -Could the input string contain leading or trailing spaces? -Yes. However, your reversed string should not contain leading or trailing spaces. -How about multiple spaces between two words? -Reduce them to a single space in the reversed string. - - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0151.reverse-words-in-a-string/reverse-words-in-a-string.go b/Algorithms/0151.reverse-words-in-a-string/reverse-words-in-a-string.go deleted file mode 100755 index 686439d26..000000000 --- a/Algorithms/0151.reverse-words-in-a-string/reverse-words-in-a-string.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0151 - diff --git a/Algorithms/0151.reverse-words-in-a-string/reverse-words-in-a-string_test.go b/Algorithms/0151.reverse-words-in-a-string/reverse-words-in-a-string_test.go deleted file mode 100755 index b0e41e35a..000000000 --- a/Algorithms/0151.reverse-words-in-a-string/reverse-words-in-a-string_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0151 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0151(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0152.maximum-product-subarray/README.md b/Algorithms/0152.maximum-product-subarray/README.md deleted file mode 100755 index d8acfe203..000000000 --- a/Algorithms/0152.maximum-product-subarray/README.md +++ /dev/null @@ -1,20 +0,0 @@ -# [152. Maximum Product Subarray](https://leetcode.com/problems/maximum-product-subarray/) - -## 题目 - - -Find the contiguous subarray within an array (containing at least one number) which has the largest product. - - - -For example, given the array [2,3,-2,4], -the contiguous subarray [2,3] has the largest product = 6. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0152.maximum-product-subarray/maximum-product-subarray.go b/Algorithms/0152.maximum-product-subarray/maximum-product-subarray.go deleted file mode 100755 index 9045b7a34..000000000 --- a/Algorithms/0152.maximum-product-subarray/maximum-product-subarray.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0152 - diff --git a/Algorithms/0152.maximum-product-subarray/maximum-product-subarray_test.go b/Algorithms/0152.maximum-product-subarray/maximum-product-subarray_test.go deleted file mode 100755 index 59c49fb4b..000000000 --- a/Algorithms/0152.maximum-product-subarray/maximum-product-subarray_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0152 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0152(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0153.find-minimum-in-rotated-sorted-array/README.md b/Algorithms/0153.find-minimum-in-rotated-sorted-array/README.md deleted file mode 100755 index cb701a082..000000000 --- a/Algorithms/0153.find-minimum-in-rotated-sorted-array/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# [153. Find Minimum in Rotated Sorted Array](https://leetcode.com/problems/find-minimum-in-rotated-sorted-array/) - -## 题目 - - Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand. - -(i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2). - -Find the minimum element. - -You may assume no duplicate exists in the array. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0153.find-minimum-in-rotated-sorted-array/find-minimum-in-rotated-sorted-array.go b/Algorithms/0153.find-minimum-in-rotated-sorted-array/find-minimum-in-rotated-sorted-array.go deleted file mode 100755 index 9e7def54a..000000000 --- a/Algorithms/0153.find-minimum-in-rotated-sorted-array/find-minimum-in-rotated-sorted-array.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0153 - diff --git a/Algorithms/0153.find-minimum-in-rotated-sorted-array/find-minimum-in-rotated-sorted-array_test.go b/Algorithms/0153.find-minimum-in-rotated-sorted-array/find-minimum-in-rotated-sorted-array_test.go deleted file mode 100755 index f09868166..000000000 --- a/Algorithms/0153.find-minimum-in-rotated-sorted-array/find-minimum-in-rotated-sorted-array_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0153 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0153(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0154.find-minimum-in-rotated-sorted-array-ii/README.md b/Algorithms/0154.find-minimum-in-rotated-sorted-array-ii/README.md deleted file mode 100755 index afe392c06..000000000 --- a/Algorithms/0154.find-minimum-in-rotated-sorted-array-ii/README.md +++ /dev/null @@ -1,26 +0,0 @@ -# [154. Find Minimum in Rotated Sorted Array II](https://leetcode.com/problems/find-minimum-in-rotated-sorted-array-ii/) - -## 题目 - - -Follow up for "Find Minimum in Rotated Sorted Array": -What if duplicates are allowed? - -Would this affect the run-time complexity? How and why? - - -Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand. - -(i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2). - -Find the minimum element. - -The array may contain duplicates. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0154.find-minimum-in-rotated-sorted-array-ii/find-minimum-in-rotated-sorted-array-ii.go b/Algorithms/0154.find-minimum-in-rotated-sorted-array-ii/find-minimum-in-rotated-sorted-array-ii.go deleted file mode 100755 index 7022db3a6..000000000 --- a/Algorithms/0154.find-minimum-in-rotated-sorted-array-ii/find-minimum-in-rotated-sorted-array-ii.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0154 - diff --git a/Algorithms/0154.find-minimum-in-rotated-sorted-array-ii/find-minimum-in-rotated-sorted-array-ii_test.go b/Algorithms/0154.find-minimum-in-rotated-sorted-array-ii/find-minimum-in-rotated-sorted-array-ii_test.go deleted file mode 100755 index 977497311..000000000 --- a/Algorithms/0154.find-minimum-in-rotated-sorted-array-ii/find-minimum-in-rotated-sorted-array-ii_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0154 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0154(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0155.min-stack/README.md b/Algorithms/0155.min-stack/README.md deleted file mode 100755 index c5243a68e..000000000 --- a/Algorithms/0155.min-stack/README.md +++ /dev/null @@ -1,41 +0,0 @@ -# [155. Min Stack](https://leetcode.com/problems/min-stack/) - -## 题目 - - -Design a stack that supports push, pop, top, and retrieving the minimum element in constant time. - - -push(x) -- Push element x onto stack. - - -pop() -- Removes the element on top of the stack. - - -top() -- Get the top element. - - -getMin() -- Retrieve the minimum element in the stack. - - - - -Example: -MinStack minStack = new MinStack(); -minStack.push(-2); -minStack.push(0); -minStack.push(-3); -minStack.getMin(); --> Returns -3. -minStack.pop(); -minStack.top(); --> Returns 0. -minStack.getMin(); --> Returns -2. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0155.min-stack/min-stack.go b/Algorithms/0155.min-stack/min-stack.go deleted file mode 100755 index a75851c7a..000000000 --- a/Algorithms/0155.min-stack/min-stack.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0155 - diff --git a/Algorithms/0155.min-stack/min-stack_test.go b/Algorithms/0155.min-stack/min-stack_test.go deleted file mode 100755 index 36f2a50fe..000000000 --- a/Algorithms/0155.min-stack/min-stack_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0155 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0155(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0160.intersection-of-two-linked-lists/README.md b/Algorithms/0160.intersection-of-two-linked-lists/README.md deleted file mode 100755 index c75dba7fb..000000000 --- a/Algorithms/0160.intersection-of-two-linked-lists/README.md +++ /dev/null @@ -1,33 +0,0 @@ -# [160. Intersection of Two Linked Lists](https://leetcode.com/problems/intersection-of-two-linked-lists/) - -## 题目 - - Write a program to find the node at which the intersection of two singly linked lists begins. - -For example, the following two linked lists: -A: a1 → a2 - ↘ - c1 → c2 → c3 - ↗ -B: b1 → b2 → b3 - -begin to intersect at node c1. - -Notes: - -If the two linked lists have no intersection at all, return null. -The linked lists must retain their original structure after the function returns. -You may assume there are no cycles anywhere in the entire linked structure. -Your code should preferably run in O(n) time and use only O(1) memory. - - - -Credits:Special thanks to @stellari for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0160.intersection-of-two-linked-lists/intersection-of-two-linked-lists.go b/Algorithms/0160.intersection-of-two-linked-lists/intersection-of-two-linked-lists.go deleted file mode 100755 index 6a377e5ef..000000000 --- a/Algorithms/0160.intersection-of-two-linked-lists/intersection-of-two-linked-lists.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0160 - diff --git a/Algorithms/0160.intersection-of-two-linked-lists/intersection-of-two-linked-lists_test.go b/Algorithms/0160.intersection-of-two-linked-lists/intersection-of-two-linked-lists_test.go deleted file mode 100755 index 0b4b1f62b..000000000 --- a/Algorithms/0160.intersection-of-two-linked-lists/intersection-of-two-linked-lists_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0160 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0160(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0162.find-peak-element/README.md b/Algorithms/0162.find-peak-element/README.md deleted file mode 100755 index bfe1c9dbd..000000000 --- a/Algorithms/0162.find-peak-element/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# [162. Find Peak Element](https://leetcode.com/problems/find-peak-element/) - -## 题目 - - A peak element is an element that is greater than its neighbors. - -Given an input array where num[i] ≠ num[i+1], find a peak element and return its index. - -The array may contain multiple peaks, in that case return the index to any one of the peaks is fine. - -You may imagine that num[-1] = num[n] = -∞. - -For example, in array [1, 2, 3, 1], 3 is a peak element and your function should return the index number 2. - -click to show spoilers. - -Note: -Your solution should be in logarithmic complexity. - - -Credits:Special thanks to @ts for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0162.find-peak-element/find-peak-element.go b/Algorithms/0162.find-peak-element/find-peak-element.go deleted file mode 100755 index 91d55da8c..000000000 --- a/Algorithms/0162.find-peak-element/find-peak-element.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0162 - diff --git a/Algorithms/0162.find-peak-element/find-peak-element_test.go b/Algorithms/0162.find-peak-element/find-peak-element_test.go deleted file mode 100755 index d1396d0ae..000000000 --- a/Algorithms/0162.find-peak-element/find-peak-element_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0162 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0162(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0164.maximum-gap/README.md b/Algorithms/0164.maximum-gap/README.md deleted file mode 100755 index 05c2889c9..000000000 --- a/Algorithms/0164.maximum-gap/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# [164. Maximum Gap](https://leetcode.com/problems/maximum-gap/) - -## 题目 - - Given an unsorted array, find the maximum difference between the successive elements in its sorted form. - -Try to solve it in linear time/space. - -Return 0 if the array contains less than 2 elements. - -You may assume all elements in the array are non-negative integers and fit in the 32-bit signed integer range. - -Credits:Special thanks to @porker2008 for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0164.maximum-gap/maximum-gap.go b/Algorithms/0164.maximum-gap/maximum-gap.go deleted file mode 100755 index e65d0bdba..000000000 --- a/Algorithms/0164.maximum-gap/maximum-gap.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0164 - diff --git a/Algorithms/0164.maximum-gap/maximum-gap_test.go b/Algorithms/0164.maximum-gap/maximum-gap_test.go deleted file mode 100755 index 31ea13de6..000000000 --- a/Algorithms/0164.maximum-gap/maximum-gap_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0164 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0164(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0165.compare-version-numbers/README.md b/Algorithms/0165.compare-version-numbers/README.md deleted file mode 100755 index 2c78a041f..000000000 --- a/Algorithms/0165.compare-version-numbers/README.md +++ /dev/null @@ -1,23 +0,0 @@ -# [165. Compare Version Numbers](https://leetcode.com/problems/compare-version-numbers/) - -## 题目 - - Compare two version numbers version1 and version2. -If version1 > version2 return 1, if version1 < version2 return -1, otherwise return 0. - -You may assume that the version strings are non-empty and contain only digits and the . character. -The . character does not represent a decimal point and is used to separate number sequences. -For instance, 2.5 is not "two and a half" or "half way to version three", it is the fifth second-level revision of the second first-level revision. - -Here is an example of version numbers ordering: -0.1 < 1.1 < 1.2 < 13.37 - -Credits:Special thanks to @ts for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0165.compare-version-numbers/compare-version-numbers.go b/Algorithms/0165.compare-version-numbers/compare-version-numbers.go deleted file mode 100755 index a2b877672..000000000 --- a/Algorithms/0165.compare-version-numbers/compare-version-numbers.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0165 - diff --git a/Algorithms/0165.compare-version-numbers/compare-version-numbers_test.go b/Algorithms/0165.compare-version-numbers/compare-version-numbers_test.go deleted file mode 100755 index a0cc2eb13..000000000 --- a/Algorithms/0165.compare-version-numbers/compare-version-numbers_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0165 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0165(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0166.fraction-to-recurring-decimal/README.md b/Algorithms/0166.fraction-to-recurring-decimal/README.md deleted file mode 100755 index 0f6909440..000000000 --- a/Algorithms/0166.fraction-to-recurring-decimal/README.md +++ /dev/null @@ -1,25 +0,0 @@ -# [166. Fraction to Recurring Decimal](https://leetcode.com/problems/fraction-to-recurring-decimal/) - -## 题目 - - Given two integers representing the numerator and denominator of a fraction, return the fraction in string format. - -If the fractional part is repeating, enclose the repeating part in parentheses. - -For example, - -Given numerator = 1, denominator = 2, return "0.5". -Given numerator = 2, denominator = 1, return "2". -Given numerator = 2, denominator = 3, return "0.(6)". - - - -Credits:Special thanks to @Shangrila for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0166.fraction-to-recurring-decimal/fraction-to-recurring-decimal.go b/Algorithms/0166.fraction-to-recurring-decimal/fraction-to-recurring-decimal.go deleted file mode 100755 index 70ae32db8..000000000 --- a/Algorithms/0166.fraction-to-recurring-decimal/fraction-to-recurring-decimal.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0166 - diff --git a/Algorithms/0166.fraction-to-recurring-decimal/fraction-to-recurring-decimal_test.go b/Algorithms/0166.fraction-to-recurring-decimal/fraction-to-recurring-decimal_test.go deleted file mode 100755 index 826e52ecc..000000000 --- a/Algorithms/0166.fraction-to-recurring-decimal/fraction-to-recurring-decimal_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0166 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0166(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0167.two-sum-ii-input-array-is-sorted/README.md b/Algorithms/0167.two-sum-ii-input-array-is-sorted/README.md deleted file mode 100755 index a88e02257..000000000 --- a/Algorithms/0167.two-sum-ii-input-array-is-sorted/README.md +++ /dev/null @@ -1,22 +0,0 @@ -# [167. Two Sum II - Input array is sorted](https://leetcode.com/problems/two-sum-ii-input-array-is-sorted/) - -## 题目 - - Given an array of integers that is already sorted in ascending order, find two numbers such that they add up to a specific target number. - -The function twoSum should return indices of the two numbers such that they add up to the target, where index1 must be less than index2. Please note that your returned answers (both index1 and index2) are not zero-based. - -You may assume that each input would have exactly one solution and you may not use the same element twice. - - -Input: numbers={2, 7, 11, 15}, target=9 -Output: index1=1, index2=2 - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0167.two-sum-ii-input-array-is-sorted/two-sum-ii-input-array-is-sorted.go b/Algorithms/0167.two-sum-ii-input-array-is-sorted/two-sum-ii-input-array-is-sorted.go deleted file mode 100755 index dca781179..000000000 --- a/Algorithms/0167.two-sum-ii-input-array-is-sorted/two-sum-ii-input-array-is-sorted.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0167 - diff --git a/Algorithms/0167.two-sum-ii-input-array-is-sorted/two-sum-ii-input-array-is-sorted_test.go b/Algorithms/0167.two-sum-ii-input-array-is-sorted/two-sum-ii-input-array-is-sorted_test.go deleted file mode 100755 index 0896d8c75..000000000 --- a/Algorithms/0167.two-sum-ii-input-array-is-sorted/two-sum-ii-input-array-is-sorted_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0167 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0167(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0168.excel-sheet-column-title/README.md b/Algorithms/0168.excel-sheet-column-title/README.md deleted file mode 100755 index 167a8562f..000000000 --- a/Algorithms/0168.excel-sheet-column-title/README.md +++ /dev/null @@ -1,24 +0,0 @@ -# [168. Excel Sheet Column Title](https://leetcode.com/problems/excel-sheet-column-title/) - -## 题目 - - Given a positive integer, return its corresponding column title as appear in an Excel sheet. - -For example: - 1 -> A - 2 -> B - 3 -> C - ... - 26 -> Z - 27 -> AA - 28 -> AB - -Credits:Special thanks to @ifanchu for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0168.excel-sheet-column-title/excel-sheet-column-title.go b/Algorithms/0168.excel-sheet-column-title/excel-sheet-column-title.go deleted file mode 100755 index 5358af617..000000000 --- a/Algorithms/0168.excel-sheet-column-title/excel-sheet-column-title.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0168 - diff --git a/Algorithms/0168.excel-sheet-column-title/excel-sheet-column-title_test.go b/Algorithms/0168.excel-sheet-column-title/excel-sheet-column-title_test.go deleted file mode 100755 index e0a053c02..000000000 --- a/Algorithms/0168.excel-sheet-column-title/excel-sheet-column-title_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0168 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0168(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0169.majority-element/README.md b/Algorithms/0169.majority-element/README.md deleted file mode 100755 index 16fb458d8..000000000 --- a/Algorithms/0169.majority-element/README.md +++ /dev/null @@ -1,17 +0,0 @@ -# [169. Majority Element](https://leetcode.com/problems/majority-element/) - -## 题目 - - Given an array of size n, find the majority element. The majority element is the element that appears more than ⌊ n/2 ⌋ times. - -You may assume that the array is non-empty and the majority element always exist in the array. - -Credits:Special thanks to @ts for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0169.majority-element/majority-element.go b/Algorithms/0169.majority-element/majority-element.go deleted file mode 100755 index c11c8ec93..000000000 --- a/Algorithms/0169.majority-element/majority-element.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0169 - diff --git a/Algorithms/0169.majority-element/majority-element_test.go b/Algorithms/0169.majority-element/majority-element_test.go deleted file mode 100755 index 4beb70549..000000000 --- a/Algorithms/0169.majority-element/majority-element_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0169 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0169(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0171.excel-sheet-column-number/README.md b/Algorithms/0171.excel-sheet-column-number/README.md deleted file mode 100755 index 7daaadd59..000000000 --- a/Algorithms/0171.excel-sheet-column-number/README.md +++ /dev/null @@ -1,25 +0,0 @@ -# [171. Excel Sheet Column Number](https://leetcode.com/problems/excel-sheet-column-number/) - -## 题目 - - Related to question Excel Sheet Column Title -Given a column title as appear in an Excel sheet, return its corresponding column number. - -For example: - A -> 1 - B -> 2 - C -> 3 - ... - Z -> 26 - AA -> 27 - AB -> 28 - -Credits:Special thanks to @ts for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0171.excel-sheet-column-number/excel-sheet-column-number.go b/Algorithms/0171.excel-sheet-column-number/excel-sheet-column-number.go deleted file mode 100755 index 292823092..000000000 --- a/Algorithms/0171.excel-sheet-column-number/excel-sheet-column-number.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0171 - diff --git a/Algorithms/0171.excel-sheet-column-number/excel-sheet-column-number_test.go b/Algorithms/0171.excel-sheet-column-number/excel-sheet-column-number_test.go deleted file mode 100755 index 52bc41db6..000000000 --- a/Algorithms/0171.excel-sheet-column-number/excel-sheet-column-number_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0171 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0171(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0172.factorial-trailing-zeroes/README.md b/Algorithms/0172.factorial-trailing-zeroes/README.md deleted file mode 100755 index c2cc8ea5c..000000000 --- a/Algorithms/0172.factorial-trailing-zeroes/README.md +++ /dev/null @@ -1,17 +0,0 @@ -# [172. Factorial Trailing Zeroes](https://leetcode.com/problems/factorial-trailing-zeroes/) - -## 题目 - - Given an integer n, return the number of trailing zeroes in n!. - -Note: Your solution should be in logarithmic time complexity. - -Credits:Special thanks to @ts for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0172.factorial-trailing-zeroes/factorial-trailing-zeroes.go b/Algorithms/0172.factorial-trailing-zeroes/factorial-trailing-zeroes.go deleted file mode 100755 index 032cd5f67..000000000 --- a/Algorithms/0172.factorial-trailing-zeroes/factorial-trailing-zeroes.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0172 - diff --git a/Algorithms/0172.factorial-trailing-zeroes/factorial-trailing-zeroes_test.go b/Algorithms/0172.factorial-trailing-zeroes/factorial-trailing-zeroes_test.go deleted file mode 100755 index 707fd2569..000000000 --- a/Algorithms/0172.factorial-trailing-zeroes/factorial-trailing-zeroes_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0172 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0172(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0173.binary-search-tree-iterator/README.md b/Algorithms/0173.binary-search-tree-iterator/README.md deleted file mode 100755 index 2a4f57243..000000000 --- a/Algorithms/0173.binary-search-tree-iterator/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# [173. Binary Search Tree Iterator](https://leetcode.com/problems/binary-search-tree-iterator/) - -## 题目 - - Implement an iterator over a binary search tree (BST). Your iterator will be initialized with the root node of a BST. - -Calling next() will return the next smallest number in the BST. - -Note: next() and hasNext() should run in average O(1) time and uses O(h) memory, where h is the height of the tree. - -Credits:Special thanks to @ts for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0173.binary-search-tree-iterator/binary-search-tree-iterator.go b/Algorithms/0173.binary-search-tree-iterator/binary-search-tree-iterator.go deleted file mode 100755 index cacb74751..000000000 --- a/Algorithms/0173.binary-search-tree-iterator/binary-search-tree-iterator.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0173 - diff --git a/Algorithms/0173.binary-search-tree-iterator/binary-search-tree-iterator_test.go b/Algorithms/0173.binary-search-tree-iterator/binary-search-tree-iterator_test.go deleted file mode 100755 index 882c2cf65..000000000 --- a/Algorithms/0173.binary-search-tree-iterator/binary-search-tree-iterator_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0173 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0173(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0174.dungeon-game/README.md b/Algorithms/0174.dungeon-game/README.md deleted file mode 100755 index 4a98a6e2c..000000000 --- a/Algorithms/0174.dungeon-game/README.md +++ /dev/null @@ -1,62 +0,0 @@ -# [174. Dungeon Game](https://leetcode.com/problems/dungeon-game/) - -## 题目 - - -table.dungeon, .dungeon th, .dungeon td { - border:3px solid black; -} - - .dungeon th, .dungeon td { - text-align: center; - height: 70px; - width: 70px; -} - - -The demons had captured the princess (P) and imprisoned her in the bottom-right corner of a dungeon. The dungeon consists of M x N rooms laid out in a 2D grid. Our valiant knight (K) was initially positioned in the top-left room and must fight his way through the dungeon to rescue the princess. -The knight has an initial health point represented by a positive integer. If at any point his health point drops to 0 or below, he dies immediately. -Some of the rooms are guarded by demons, so the knight loses health (negative integers) upon entering these rooms; -other rooms are either empty (0's) or contain magic orbs that increase the knight's health (positive integers). -In order to reach the princess as quickly as possible, the knight decides to move only rightward or downward in each step. - - -Write a function to determine the knight's minimum initial health so that he is able to rescue the princess. -For example, given the dungeon below, the initial health of the knight must be at least 7 if he follows the optimal path RIGHT-> RIGHT -> DOWN -> DOWN. - - - --2 (K) --3 -3 - - --5 --10 -1 - - -10 -30 --5 (P) - - - - - -Notes: - -The knight's health has no upper bound. -Any room can contain threats or power-ups, even the first room the knight enters and the bottom-right room where the princess is imprisoned. - - - -Credits:Special thanks to @stellari for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0174.dungeon-game/dungeon-game.go b/Algorithms/0174.dungeon-game/dungeon-game.go deleted file mode 100755 index a0ba9791b..000000000 --- a/Algorithms/0174.dungeon-game/dungeon-game.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0174 - diff --git a/Algorithms/0174.dungeon-game/dungeon-game_test.go b/Algorithms/0174.dungeon-game/dungeon-game_test.go deleted file mode 100755 index 6dda96a10..000000000 --- a/Algorithms/0174.dungeon-game/dungeon-game_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0174 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0174(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0179.largest-number/README.md b/Algorithms/0179.largest-number/README.md deleted file mode 100755 index a15451786..000000000 --- a/Algorithms/0179.largest-number/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# [179. Largest Number](https://leetcode.com/problems/largest-number/) - -## 题目 - - Given a list of non negative integers, arrange them such that they form the largest number. - -For example, given [3, 30, 34, 5, 9], the largest formed number is 9534330. - -Note: The result may be very large, so you need to return a string instead of an integer. - -Credits:Special thanks to @ts for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0179.largest-number/largest-number.go b/Algorithms/0179.largest-number/largest-number.go deleted file mode 100755 index 6f5b22cd1..000000000 --- a/Algorithms/0179.largest-number/largest-number.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0179 - diff --git a/Algorithms/0179.largest-number/largest-number_test.go b/Algorithms/0179.largest-number/largest-number_test.go deleted file mode 100755 index cd423cccb..000000000 --- a/Algorithms/0179.largest-number/largest-number_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0179 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0179(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0187.repeated-dna-sequences/README.md b/Algorithms/0187.repeated-dna-sequences/README.md deleted file mode 100755 index d801abfed..000000000 --- a/Algorithms/0187.repeated-dna-sequences/README.md +++ /dev/null @@ -1,24 +0,0 @@ -# [187. Repeated DNA Sequences](https://leetcode.com/problems/repeated-dna-sequences/) - -## 题目 - - -All DNA is composed of a series of nucleotides abbreviated as A, C, G, and T, for example: "ACGAATTCCG". When studying DNA, it is sometimes useful to identify repeated sequences within the DNA. - -Write a function to find all the 10-letter-long sequences (substrings) that occur more than once in a DNA molecule. - - -For example, -Given s = "AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT", - -Return: -["AAAAACCCCC", "CCCCCAAAAA"]. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0187.repeated-dna-sequences/repeated-dna-sequences.go b/Algorithms/0187.repeated-dna-sequences/repeated-dna-sequences.go deleted file mode 100755 index cf5e6bb8a..000000000 --- a/Algorithms/0187.repeated-dna-sequences/repeated-dna-sequences.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0187 - diff --git a/Algorithms/0187.repeated-dna-sequences/repeated-dna-sequences_test.go b/Algorithms/0187.repeated-dna-sequences/repeated-dna-sequences_test.go deleted file mode 100755 index 6c22dfa14..000000000 --- a/Algorithms/0187.repeated-dna-sequences/repeated-dna-sequences_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0187 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0187(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0188.best-time-to-buy-and-sell-stock-iv/README.md b/Algorithms/0188.best-time-to-buy-and-sell-stock-iv/README.md deleted file mode 100755 index 5768a84fd..000000000 --- a/Algorithms/0188.best-time-to-buy-and-sell-stock-iv/README.md +++ /dev/null @@ -1,20 +0,0 @@ -# [188. Best Time to Buy and Sell Stock IV](https://leetcode.com/problems/best-time-to-buy-and-sell-stock-iv/) - -## 题目 - - Say you have an array for which the ith element is the price of a given stock on day i. - -Design an algorithm to find the maximum profit. You may complete at most k transactions. - -Note: -You may not engage in multiple transactions at the same time (ie, you must sell the stock before you buy again). - -Credits:Special thanks to @Freezen for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0188.best-time-to-buy-and-sell-stock-iv/best-time-to-buy-and-sell-stock-iv.go b/Algorithms/0188.best-time-to-buy-and-sell-stock-iv/best-time-to-buy-and-sell-stock-iv.go deleted file mode 100755 index 88d89f7a2..000000000 --- a/Algorithms/0188.best-time-to-buy-and-sell-stock-iv/best-time-to-buy-and-sell-stock-iv.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0188 - diff --git a/Algorithms/0188.best-time-to-buy-and-sell-stock-iv/best-time-to-buy-and-sell-stock-iv_test.go b/Algorithms/0188.best-time-to-buy-and-sell-stock-iv/best-time-to-buy-and-sell-stock-iv_test.go deleted file mode 100755 index 3c34f605b..000000000 --- a/Algorithms/0188.best-time-to-buy-and-sell-stock-iv/best-time-to-buy-and-sell-stock-iv_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0188 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0188(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0189.rotate-array/README.md b/Algorithms/0189.rotate-array/README.md deleted file mode 100755 index a1056fdc6..000000000 --- a/Algorithms/0189.rotate-array/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# [189. Rotate Array](https://leetcode.com/problems/rotate-array/) - -## 题目 - - Rotate an array of n elements to the right by k steps. -For example, with n = 7 and k = 3, the array [1,2,3,4,5,6,7] is rotated to [5,6,7,1,2,3,4]. - -Note: -Try to come up as many solutions as you can, there are at least 3 different ways to solve this problem. - - -[show hint] -Hint: -Could you do it in-place with O(1) extra space? - - -Related problem: Reverse Words in a String II - -Credits:Special thanks to @Freezen for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0189.rotate-array/rotate-array.go b/Algorithms/0189.rotate-array/rotate-array.go deleted file mode 100755 index 9619a1fdc..000000000 --- a/Algorithms/0189.rotate-array/rotate-array.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0189 - diff --git a/Algorithms/0189.rotate-array/rotate-array_test.go b/Algorithms/0189.rotate-array/rotate-array_test.go deleted file mode 100755 index 5bcfc8ef6..000000000 --- a/Algorithms/0189.rotate-array/rotate-array_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0189 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0189(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0190.reverse-bits/README.md b/Algorithms/0190.reverse-bits/README.md deleted file mode 100755 index c5892c8d4..000000000 --- a/Algorithms/0190.reverse-bits/README.md +++ /dev/null @@ -1,24 +0,0 @@ -# [190. Reverse Bits](https://leetcode.com/problems/reverse-bits/) - -## 题目 - - Reverse bits of a given 32 bits unsigned integer. - -For example, given input 43261596 (represented in binary as 00000010100101000001111010011100), return 964176192 (represented in binary as 00111001011110000010100101000000). - - -Follow up: -If this function is called many times, how would you optimize it? - - -Related problem: Reverse Integer - -Credits:Special thanks to @ts for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0190.reverse-bits/reverse-bits.go b/Algorithms/0190.reverse-bits/reverse-bits.go deleted file mode 100755 index 08d2f0164..000000000 --- a/Algorithms/0190.reverse-bits/reverse-bits.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0190 - diff --git a/Algorithms/0190.reverse-bits/reverse-bits_test.go b/Algorithms/0190.reverse-bits/reverse-bits_test.go deleted file mode 100755 index ba2865659..000000000 --- a/Algorithms/0190.reverse-bits/reverse-bits_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0190 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0190(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0191.number-of-1-bits/README.md b/Algorithms/0191.number-of-1-bits/README.md deleted file mode 100755 index 4c252a2da..000000000 --- a/Algorithms/0191.number-of-1-bits/README.md +++ /dev/null @@ -1,17 +0,0 @@ -# [191. Number of 1 Bits](https://leetcode.com/problems/number-of-1-bits/) - -## 题目 - - Write a function that takes an unsigned integer and returns the number of ’1' bits it has (also known as the Hamming weight). - -For example, the 32-bit integer ’11' has binary representation 00000000000000000000000000001011, so the function should return 3. - -Credits:Special thanks to @ts for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0191.number-of-1-bits/number-of-1-bits.go b/Algorithms/0191.number-of-1-bits/number-of-1-bits.go deleted file mode 100755 index c37cfeb23..000000000 --- a/Algorithms/0191.number-of-1-bits/number-of-1-bits.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0191 - diff --git a/Algorithms/0191.number-of-1-bits/number-of-1-bits_test.go b/Algorithms/0191.number-of-1-bits/number-of-1-bits_test.go deleted file mode 100755 index 23b1faebb..000000000 --- a/Algorithms/0191.number-of-1-bits/number-of-1-bits_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0191 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0191(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0198.house-robber/README.md b/Algorithms/0198.house-robber/README.md deleted file mode 100755 index 93504290d..000000000 --- a/Algorithms/0198.house-robber/README.md +++ /dev/null @@ -1,17 +0,0 @@ -# [198. House Robber](https://leetcode.com/problems/house-robber/) - -## 题目 - - You are a professional robber planning to rob houses along a street. Each house has a certain amount of money stashed, the only constraint stopping you from robbing each of them is that adjacent houses have security system connected and it will automatically contact the police if two adjacent houses were broken into on the same night. - -Given a list of non-negative integers representing the amount of money of each house, determine the maximum amount of money you can rob tonight without alerting the police. - -Credits:Special thanks to @ifanchu for adding this problem and creating all test cases. Also thanks to @ts for adding additional test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0198.house-robber/house-robber.go b/Algorithms/0198.house-robber/house-robber.go deleted file mode 100755 index 6ae537f76..000000000 --- a/Algorithms/0198.house-robber/house-robber.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0198 - diff --git a/Algorithms/0198.house-robber/house-robber_test.go b/Algorithms/0198.house-robber/house-robber_test.go deleted file mode 100755 index 358efa9b7..000000000 --- a/Algorithms/0198.house-robber/house-robber_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0198 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0198(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0199.binary-tree-right-side-view/README.md b/Algorithms/0199.binary-tree-right-side-view/README.md deleted file mode 100755 index bec53d46d..000000000 --- a/Algorithms/0199.binary-tree-right-side-view/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# [199. Binary Tree Right Side View](https://leetcode.com/problems/binary-tree-right-side-view/) - -## 题目 - - Given a binary tree, imagine yourself standing on the right side of it, return the values of the nodes you can see ordered from top to bottom. - - -For example: -Given the following binary tree, - 1 <--- - / \ -2 3 <--- - \ \ - 5 4 <--- - - - -You should return [1, 3, 4]. - - -Credits:Special thanks to @amrsaqr for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0199.binary-tree-right-side-view/binary-tree-right-side-view.go b/Algorithms/0199.binary-tree-right-side-view/binary-tree-right-side-view.go deleted file mode 100755 index 76000f45d..000000000 --- a/Algorithms/0199.binary-tree-right-side-view/binary-tree-right-side-view.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0199 - diff --git a/Algorithms/0199.binary-tree-right-side-view/binary-tree-right-side-view_test.go b/Algorithms/0199.binary-tree-right-side-view/binary-tree-right-side-view_test.go deleted file mode 100755 index 64373f524..000000000 --- a/Algorithms/0199.binary-tree-right-side-view/binary-tree-right-side-view_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0199 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0199(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0200.number-of-islands/README.md b/Algorithms/0200.number-of-islands/README.md deleted file mode 100755 index 5cb8e5004..000000000 --- a/Algorithms/0200.number-of-islands/README.md +++ /dev/null @@ -1,22 +0,0 @@ -# [200. Number of Islands](https://leetcode.com/problems/number-of-islands/) - -## 题目 - - Given a 2d grid map of '1's (land) and '0's (water), count the number of islands. An island is surrounded by water and is formed by connecting adjacent lands horizontally or vertically. You may assume all four edges of the grid are all surrounded by water. - -Example 1: -11110110101100000000 -Answer: 1 -Example 2: -11000110000010000011 -Answer: 3 - -Credits:Special thanks to @mithmatt for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0200.number-of-islands/number-of-islands.go b/Algorithms/0200.number-of-islands/number-of-islands.go deleted file mode 100755 index 8f363fff3..000000000 --- a/Algorithms/0200.number-of-islands/number-of-islands.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0200 - diff --git a/Algorithms/0200.number-of-islands/number-of-islands_test.go b/Algorithms/0200.number-of-islands/number-of-islands_test.go deleted file mode 100755 index 9791d7256..000000000 --- a/Algorithms/0200.number-of-islands/number-of-islands_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0200 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0200(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0201.bitwise-and-of-numbers-range/README.md b/Algorithms/0201.bitwise-and-of-numbers-range/README.md deleted file mode 100755 index a7cdccf87..000000000 --- a/Algorithms/0201.bitwise-and-of-numbers-range/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# [201. Bitwise AND of Numbers Range](https://leetcode.com/problems/bitwise-and-of-numbers-range/) - -## 题目 - - Given a range [m, n] where 0 <= m <= n <= 2147483647, return the bitwise AND of all numbers in this range, inclusive. - - -For example, given the range [5, 7], you should return 4. - - -Credits:Special thanks to @amrsaqr for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0201.bitwise-and-of-numbers-range/bitwise-and-of-numbers-range.go b/Algorithms/0201.bitwise-and-of-numbers-range/bitwise-and-of-numbers-range.go deleted file mode 100755 index f584220e4..000000000 --- a/Algorithms/0201.bitwise-and-of-numbers-range/bitwise-and-of-numbers-range.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0201 - diff --git a/Algorithms/0201.bitwise-and-of-numbers-range/bitwise-and-of-numbers-range_test.go b/Algorithms/0201.bitwise-and-of-numbers-range/bitwise-and-of-numbers-range_test.go deleted file mode 100755 index 220ead594..000000000 --- a/Algorithms/0201.bitwise-and-of-numbers-range/bitwise-and-of-numbers-range_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0201 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0201(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0202.happy-number/README.md b/Algorithms/0202.happy-number/README.md deleted file mode 100755 index fe6aa847a..000000000 --- a/Algorithms/0202.happy-number/README.md +++ /dev/null @@ -1,26 +0,0 @@ -# [202. Happy Number](https://leetcode.com/problems/happy-number/) - -## 题目 - - Write an algorithm to determine if a number is "happy". - -A happy number is a number defined by the following process: Starting with any positive integer, replace the number by the sum of the squares of its digits, and repeat the process until the number equals 1 (where it will stay), or it loops endlessly in a cycle which does not include 1. Those numbers for which this process ends in 1 are happy numbers. - -Example: 19 is a happy number - - -12 + 92 = 82 -82 + 22 = 68 -62 + 82 = 100 -12 + 02 + 02 = 1 - - -Credits:Special thanks to @mithmatt and @ts for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0202.happy-number/happy-number.go b/Algorithms/0202.happy-number/happy-number.go deleted file mode 100755 index 0d2bb492f..000000000 --- a/Algorithms/0202.happy-number/happy-number.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0202 - diff --git a/Algorithms/0202.happy-number/happy-number_test.go b/Algorithms/0202.happy-number/happy-number_test.go deleted file mode 100755 index ba71c4ef3..000000000 --- a/Algorithms/0202.happy-number/happy-number_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0202 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0202(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0203.remove-linked-list-elements/README.md b/Algorithms/0203.remove-linked-list-elements/README.md deleted file mode 100755 index d65d01f11..000000000 --- a/Algorithms/0203.remove-linked-list-elements/README.md +++ /dev/null @@ -1,20 +0,0 @@ -# [203. Remove Linked List Elements](https://leetcode.com/problems/remove-linked-list-elements/) - -## 题目 - - Remove all elements from a linked list of integers that have value val. - -Example -Given: 1 --> 2 --> 6 --> 3 --> 4 --> 5 --> 6, val = 6 -Return: 1 --> 2 --> 3 --> 4 --> 5 - - -Credits:Special thanks to @mithmatt for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0203.remove-linked-list-elements/remove-linked-list-elements.go b/Algorithms/0203.remove-linked-list-elements/remove-linked-list-elements.go deleted file mode 100755 index ccb39f620..000000000 --- a/Algorithms/0203.remove-linked-list-elements/remove-linked-list-elements.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0203 - diff --git a/Algorithms/0203.remove-linked-list-elements/remove-linked-list-elements_test.go b/Algorithms/0203.remove-linked-list-elements/remove-linked-list-elements_test.go deleted file mode 100755 index 62f72a46c..000000000 --- a/Algorithms/0203.remove-linked-list-elements/remove-linked-list-elements_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0203 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0203(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0204.count-primes/README.md b/Algorithms/0204.count-primes/README.md deleted file mode 100755 index 04c41683a..000000000 --- a/Algorithms/0204.count-primes/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# [204. Count Primes](https://leetcode.com/problems/count-primes/) - -## 题目 - - Description: -Count the number of prime numbers less than a non-negative number, n. - -Credits:Special thanks to @mithmatt for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0204.count-primes/count-primes.go b/Algorithms/0204.count-primes/count-primes.go deleted file mode 100755 index ad03e0ec0..000000000 --- a/Algorithms/0204.count-primes/count-primes.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0204 - diff --git a/Algorithms/0204.count-primes/count-primes_test.go b/Algorithms/0204.count-primes/count-primes_test.go deleted file mode 100755 index 38bf520ea..000000000 --- a/Algorithms/0204.count-primes/count-primes_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0204 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0204(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0205.isomorphic-strings/README.md b/Algorithms/0205.isomorphic-strings/README.md deleted file mode 100755 index 11bf3e778..000000000 --- a/Algorithms/0205.isomorphic-strings/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# [205. Isomorphic Strings](https://leetcode.com/problems/isomorphic-strings/) - -## 题目 - - Given two strings s and t, determine if they are isomorphic. - -Two strings are isomorphic if the characters in s can be replaced to get t. - -All occurrences of a character must be replaced with another character while preserving the order of characters. No two characters may map to the same character but a character may map to itself. - -For example, -Given "egg", "add", return true. - -Given "foo", "bar", return false. - -Given "paper", "title", return true. - -Note: -You may assume both s and t have the same length. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0205.isomorphic-strings/isomorphic-strings.go b/Algorithms/0205.isomorphic-strings/isomorphic-strings.go deleted file mode 100755 index bfa5dd631..000000000 --- a/Algorithms/0205.isomorphic-strings/isomorphic-strings.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0205 - diff --git a/Algorithms/0205.isomorphic-strings/isomorphic-strings_test.go b/Algorithms/0205.isomorphic-strings/isomorphic-strings_test.go deleted file mode 100755 index 6bdc5e7fd..000000000 --- a/Algorithms/0205.isomorphic-strings/isomorphic-strings_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0205 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0205(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0207.course-schedule/README.md b/Algorithms/0207.course-schedule/README.md deleted file mode 100755 index 34376099a..000000000 --- a/Algorithms/0207.course-schedule/README.md +++ /dev/null @@ -1,44 +0,0 @@ -# [207. Course Schedule](https://leetcode.com/problems/course-schedule/) - -## 题目 - - -There are a total of n courses you have to take, labeled from 0 to n - 1. - -Some courses may have prerequisites, for example to take course 0 you have to first take course 1, which is expressed as a pair: [0,1] - - -Given the total number of courses and a list of prerequisite pairs, is it possible for you to finish all courses? - - -For example: -2, [[1,0]] -There are a total of 2 courses to take. To take course 1 you should have finished course 0. So it is possible. - -2, [[1,0],[0,1]] -There are a total of 2 courses to take. To take course 1 you should have finished course 0, and to take course 0 you should also have finished course 1. So it is impossible. - -Note: - -The input prerequisites is a graph represented by a list of edges, not adjacency matrices. Read more about how a graph is represented. -You may assume that there are no duplicate edges in the input prerequisites. - - - -click to show more hints. - -Hints: - -This problem is equivalent to finding if a cycle exists in a directed graph. If a cycle exists, no topological ordering exists and therefore it will be impossible to take all courses. -Topological Sort via DFS - A great video tutorial (21 minutes) on Coursera explaining the basic concepts of Topological Sort. -Topological sort could also be done via BFS. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0207.course-schedule/course-schedule.go b/Algorithms/0207.course-schedule/course-schedule.go deleted file mode 100755 index 8f2a48bd2..000000000 --- a/Algorithms/0207.course-schedule/course-schedule.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0207 - diff --git a/Algorithms/0207.course-schedule/course-schedule_test.go b/Algorithms/0207.course-schedule/course-schedule_test.go deleted file mode 100755 index 90db4860a..000000000 --- a/Algorithms/0207.course-schedule/course-schedule_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0207 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0207(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0208.implement-trie-prefix-tree/README.md b/Algorithms/0208.implement-trie-prefix-tree/README.md deleted file mode 100755 index 8a8257112..000000000 --- a/Algorithms/0208.implement-trie-prefix-tree/README.md +++ /dev/null @@ -1,20 +0,0 @@ -# [208. Implement Trie (Prefix Tree)](https://leetcode.com/problems/implement-trie-prefix-tree/) - -## 题目 - - -Implement a trie with insert, search, and startsWith methods. - - - -Note: -You may assume that all inputs are consist of lowercase letters a-z. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0208.implement-trie-prefix-tree/implement-trie-prefix-tree.go b/Algorithms/0208.implement-trie-prefix-tree/implement-trie-prefix-tree.go deleted file mode 100755 index 9a46f3403..000000000 --- a/Algorithms/0208.implement-trie-prefix-tree/implement-trie-prefix-tree.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0208 - diff --git a/Algorithms/0208.implement-trie-prefix-tree/implement-trie-prefix-tree_test.go b/Algorithms/0208.implement-trie-prefix-tree/implement-trie-prefix-tree_test.go deleted file mode 100755 index 6ef0c2153..000000000 --- a/Algorithms/0208.implement-trie-prefix-tree/implement-trie-prefix-tree_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0208 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0208(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0209.minimum-size-subarray-sum/README.md b/Algorithms/0209.minimum-size-subarray-sum/README.md deleted file mode 100755 index 07ad94432..000000000 --- a/Algorithms/0209.minimum-size-subarray-sum/README.md +++ /dev/null @@ -1,28 +0,0 @@ -# [209. Minimum Size Subarray Sum](https://leetcode.com/problems/minimum-size-subarray-sum/) - -## 题目 - - -Given an array of n positive integers and a positive integer s, find the minimal length of a contiguous subarray of which the sum ≥ s. If there isn't one, return 0 instead. - - -For example, given the array [2,3,1,2,4,3] and s = 7, -the subarray [4,3] has the minimal length under the problem constraint. - - -click to show more practice. - -More practice: - -If you have figured out the O(n) solution, try coding another solution of which the time complexity is O(n log n). - - -Credits:Special thanks to @Freezen for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0209.minimum-size-subarray-sum/minimum-size-subarray-sum.go b/Algorithms/0209.minimum-size-subarray-sum/minimum-size-subarray-sum.go deleted file mode 100755 index b3f902206..000000000 --- a/Algorithms/0209.minimum-size-subarray-sum/minimum-size-subarray-sum.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0209 - diff --git a/Algorithms/0209.minimum-size-subarray-sum/minimum-size-subarray-sum_test.go b/Algorithms/0209.minimum-size-subarray-sum/minimum-size-subarray-sum_test.go deleted file mode 100755 index 0b7bd4dd8..000000000 --- a/Algorithms/0209.minimum-size-subarray-sum/minimum-size-subarray-sum_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0209 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0209(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0210.course-schedule-ii/README.md b/Algorithms/0210.course-schedule-ii/README.md deleted file mode 100755 index 2b333d4b2..000000000 --- a/Algorithms/0210.course-schedule-ii/README.md +++ /dev/null @@ -1,46 +0,0 @@ -# [210. Course Schedule II](https://leetcode.com/problems/course-schedule-ii/) - -## 题目 - - -There are a total of n courses you have to take, labeled from 0 to n - 1. - -Some courses may have prerequisites, for example to take course 0 you have to first take course 1, which is expressed as a pair: [0,1] - - -Given the total number of courses and a list of prerequisite pairs, return the ordering of courses you should take to finish all courses. - -There may be multiple correct orders, you just need to return one of them. If it is impossible to finish all courses, return an empty array. - - -For example: -2, [[1,0]] -There are a total of 2 courses to take. To take course 1 you should have finished course 0. So the correct course order is [0,1] - -4, [[1,0],[2,0],[3,1],[3,2]] -There are a total of 4 courses to take. To take course 3 you should have finished both courses 1 and 2. Both courses 1 and 2 should be taken after you finished course 0. So one correct course order is [0,1,2,3]. Another correct ordering is[0,2,1,3]. - -Note: - -The input prerequisites is a graph represented by a list of edges, not adjacency matrices. Read more about how a graph is represented. -You may assume that there are no duplicate edges in the input prerequisites. - - - -click to show more hints. - -Hints: - -This problem is equivalent to finding the topological order in a directed graph. If a cycle exists, no topological ordering exists and therefore it will be impossible to take all courses. -Topological Sort via DFS - A great video tutorial (21 minutes) on Coursera explaining the basic concepts of Topological Sort. -Topological sort could also be done via BFS. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0210.course-schedule-ii/course-schedule-ii.go b/Algorithms/0210.course-schedule-ii/course-schedule-ii.go deleted file mode 100755 index 75d695877..000000000 --- a/Algorithms/0210.course-schedule-ii/course-schedule-ii.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0210 - diff --git a/Algorithms/0210.course-schedule-ii/course-schedule-ii_test.go b/Algorithms/0210.course-schedule-ii/course-schedule-ii_test.go deleted file mode 100755 index aaf452b6e..000000000 --- a/Algorithms/0210.course-schedule-ii/course-schedule-ii_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0210 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0210(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0211.add-and-search-word-data-structure-design/README.md b/Algorithms/0211.add-and-search-word-data-structure-design/README.md deleted file mode 100755 index 8dda3c760..000000000 --- a/Algorithms/0211.add-and-search-word-data-structure-design/README.md +++ /dev/null @@ -1,42 +0,0 @@ -# [211. Add and Search Word - Data structure design](https://leetcode.com/problems/add-and-search-word-data-structure-design/) - -## 题目 - - -Design a data structure that supports the following two operations: - -void addWord(word) -bool search(word) - - - -search(word) can search a literal word or a regular expression string containing only letters a-z or .. A . means it can represent any one letter. - - -For example: -addWord("bad") -addWord("dad") -addWord("mad") -search("pad") -> false -search("bad") -> true -search(".ad") -> true -search("b..") -> true - - - -Note: -You may assume that all words are consist of lowercase letters a-z. - - -click to show hint. - -You should be familiar with how a Trie works. If not, please work on this problem: Implement Trie (Prefix Tree) first. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0211.add-and-search-word-data-structure-design/add-and-search-word-data-structure-design.go b/Algorithms/0211.add-and-search-word-data-structure-design/add-and-search-word-data-structure-design.go deleted file mode 100755 index e1efd3586..000000000 --- a/Algorithms/0211.add-and-search-word-data-structure-design/add-and-search-word-data-structure-design.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0211 - diff --git a/Algorithms/0211.add-and-search-word-data-structure-design/add-and-search-word-data-structure-design_test.go b/Algorithms/0211.add-and-search-word-data-structure-design/add-and-search-word-data-structure-design_test.go deleted file mode 100755 index 4bf2d4612..000000000 --- a/Algorithms/0211.add-and-search-word-data-structure-design/add-and-search-word-data-structure-design_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0211 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0211(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0212.word-search-ii/README.md b/Algorithms/0212.word-search-ii/README.md deleted file mode 100755 index 1233efdf2..000000000 --- a/Algorithms/0212.word-search-ii/README.md +++ /dev/null @@ -1,44 +0,0 @@ -# [212. Word Search II](https://leetcode.com/problems/word-search-ii/) - -## 题目 - - -Given a 2D board and a list of words from the dictionary, find all words in the board. - - -Each word must be constructed from letters of sequentially adjacent cell, where "adjacent" cells are those horizontally or vertically neighboring. The same letter cell may not be used more than once in a word. - - - -For example, -Given words = ["oath","pea","eat","rain"] and board = -[ - ['o','a','a','n'], - ['e','t','a','e'], - ['i','h','k','r'], - ['i','f','l','v'] -] - - -Return ["eat","oath"]. - - - -Note: -You may assume that all inputs are consist of lowercase letters a-z. - - -click to show hint. - -You would need to optimize your backtracking to pass the larger test. Could you stop backtracking earlier? - -If the current candidate does not exist in all words' prefix, you could stop backtracking immediately. What kind of data structure could answer such query efficiently? Does a hash table work? Why or why not? How about a Trie? If you would like to learn how to implement a basic trie, please work on this problem: Implement Trie (Prefix Tree) first. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0212.word-search-ii/word-search-ii.go b/Algorithms/0212.word-search-ii/word-search-ii.go deleted file mode 100755 index a57d42ba7..000000000 --- a/Algorithms/0212.word-search-ii/word-search-ii.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0212 - diff --git a/Algorithms/0212.word-search-ii/word-search-ii_test.go b/Algorithms/0212.word-search-ii/word-search-ii_test.go deleted file mode 100755 index fcc7268e3..000000000 --- a/Algorithms/0212.word-search-ii/word-search-ii_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0212 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0212(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0213.house-robber-ii/README.md b/Algorithms/0213.house-robber-ii/README.md deleted file mode 100755 index a6977f8be..000000000 --- a/Algorithms/0213.house-robber-ii/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# [213. House Robber II](https://leetcode.com/problems/house-robber-ii/) - -## 题目 - - Note: This is an extension of House Robber. - -After robbing those houses on that street, the thief has found himself a new place for his thievery so that he will not get too much attention. This time, all houses at this place are arranged in a circle. That means the first house is the neighbor of the last one. Meanwhile, the security system for these houses remain the same as for those in the previous street. - -Given a list of non-negative integers representing the amount of money of each house, determine the maximum amount of money you can rob tonight without alerting the police. - -Credits:Special thanks to @Freezen for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0213.house-robber-ii/house-robber-ii.go b/Algorithms/0213.house-robber-ii/house-robber-ii.go deleted file mode 100755 index 226831e8a..000000000 --- a/Algorithms/0213.house-robber-ii/house-robber-ii.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0213 - diff --git a/Algorithms/0213.house-robber-ii/house-robber-ii_test.go b/Algorithms/0213.house-robber-ii/house-robber-ii_test.go deleted file mode 100755 index bdda42c3a..000000000 --- a/Algorithms/0213.house-robber-ii/house-robber-ii_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0213 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0213(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0214.shortest-palindrome/README.md b/Algorithms/0214.shortest-palindrome/README.md deleted file mode 100755 index 201ed70c9..000000000 --- a/Algorithms/0214.shortest-palindrome/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# [214. Shortest Palindrome](https://leetcode.com/problems/shortest-palindrome/) - -## 题目 - - -Given a string S, you are allowed to convert it to a palindrome by adding characters in front of it. Find and return the shortest palindrome you can find by performing this transformation. - - -For example: -Given "aacecaaa", return "aaacecaaa". -Given "abcd", return "dcbabcd". - -Credits:Special thanks to @ifanchu for adding this problem and creating all test cases. Thanks to @Freezen for additional test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0214.shortest-palindrome/shortest-palindrome.go b/Algorithms/0214.shortest-palindrome/shortest-palindrome.go deleted file mode 100755 index 5404c2d68..000000000 --- a/Algorithms/0214.shortest-palindrome/shortest-palindrome.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0214 - diff --git a/Algorithms/0214.shortest-palindrome/shortest-palindrome_test.go b/Algorithms/0214.shortest-palindrome/shortest-palindrome_test.go deleted file mode 100755 index 784647518..000000000 --- a/Algorithms/0214.shortest-palindrome/shortest-palindrome_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0214 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0214(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0215.kth-largest-element-in-an-array/README.md b/Algorithms/0215.kth-largest-element-in-an-array/README.md deleted file mode 100755 index 1d0e287de..000000000 --- a/Algorithms/0215.kth-largest-element-in-an-array/README.md +++ /dev/null @@ -1,22 +0,0 @@ -# [215. Kth Largest Element in an Array](https://leetcode.com/problems/kth-largest-element-in-an-array/) - -## 题目 - - Find the kth largest element in an unsorted array. Note that it is the kth largest element in the sorted order, not the kth distinct element. - -For example, -Given [3,2,1,5,6,4] and k = 2, return 5. - - -Note: -You may assume k is always valid, 1 ? k ? array's length. - -Credits:Special thanks to @mithmatt for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0215.kth-largest-element-in-an-array/kth-largest-element-in-an-array.go b/Algorithms/0215.kth-largest-element-in-an-array/kth-largest-element-in-an-array.go deleted file mode 100755 index 2c1f0ee22..000000000 --- a/Algorithms/0215.kth-largest-element-in-an-array/kth-largest-element-in-an-array.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0215 - diff --git a/Algorithms/0215.kth-largest-element-in-an-array/kth-largest-element-in-an-array_test.go b/Algorithms/0215.kth-largest-element-in-an-array/kth-largest-element-in-an-array_test.go deleted file mode 100755 index 21b48a0a1..000000000 --- a/Algorithms/0215.kth-largest-element-in-an-array/kth-largest-element-in-an-array_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0215 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0215(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0216.combination-sum-iii/README.md b/Algorithms/0216.combination-sum-iii/README.md deleted file mode 100755 index 8a3476adf..000000000 --- a/Algorithms/0216.combination-sum-iii/README.md +++ /dev/null @@ -1,31 +0,0 @@ -# [216. Combination Sum III](https://leetcode.com/problems/combination-sum-iii/) - -## 题目 - - -Find all possible combinations of k numbers that add up to a number n, given that only numbers from 1 to 9 can be used and each combination should be a unique set of numbers. - - - - Example 1: -Input: k = 3, n = 7 -Output: -[[1,2,4]] - - - Example 2: -Input: k = 3, n = 9 -Output: -[[1,2,6], [1,3,5], [2,3,4]] - - - -Credits:Special thanks to @mithmatt for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0216.combination-sum-iii/combination-sum-iii.go b/Algorithms/0216.combination-sum-iii/combination-sum-iii.go deleted file mode 100755 index 2db6fffe9..000000000 --- a/Algorithms/0216.combination-sum-iii/combination-sum-iii.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0216 - diff --git a/Algorithms/0216.combination-sum-iii/combination-sum-iii_test.go b/Algorithms/0216.combination-sum-iii/combination-sum-iii_test.go deleted file mode 100755 index 14874d7c5..000000000 --- a/Algorithms/0216.combination-sum-iii/combination-sum-iii_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0216 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0216(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0217.contains-duplicate/README.md b/Algorithms/0217.contains-duplicate/README.md deleted file mode 100755 index a1038fdbf..000000000 --- a/Algorithms/0217.contains-duplicate/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# [217. Contains Duplicate](https://leetcode.com/problems/contains-duplicate/) - -## 题目 - - -Given an array of integers, find if the array contains any duplicates. Your function should return true if any value appears at least twice in the array, and it should return false if every element is distinct. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0217.contains-duplicate/contains-duplicate.go b/Algorithms/0217.contains-duplicate/contains-duplicate.go deleted file mode 100755 index 1a1818a79..000000000 --- a/Algorithms/0217.contains-duplicate/contains-duplicate.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0217 - diff --git a/Algorithms/0217.contains-duplicate/contains-duplicate_test.go b/Algorithms/0217.contains-duplicate/contains-duplicate_test.go deleted file mode 100755 index 6ca115231..000000000 --- a/Algorithms/0217.contains-duplicate/contains-duplicate_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0217 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0217(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0218.the-skyline-problem/README.md b/Algorithms/0218.the-skyline-problem/README.md deleted file mode 100755 index bd3c505f8..000000000 --- a/Algorithms/0218.the-skyline-problem/README.md +++ /dev/null @@ -1,45 +0,0 @@ -# [218. The Skyline Problem](https://leetcode.com/problems/the-skyline-problem/) - -## 题目 - - A city's skyline is the outer contour of the silhouette formed by all the buildings in that city when viewed from a distance. Now suppose you are given the locations and height of all the buildings as shown on a cityscape photo (Figure A), write a program to output the skyline formed by these buildings collectively (Figure B). - - - - - - - - - - - - - - -The geometric information of each building is represented by a triplet of integers [Li, Ri, Hi], where Li and Ri are the x coordinates of the left and right edge of the ith building, respectively, and Hi is its height. It is guaranteed that 0 ? Li, Ri ? INT_MAX, 0 < Hi ? INT_MAX, and Ri - Li > 0. You may assume all buildings are perfect rectangles grounded on an absolutely flat surface at height 0. - -For instance, the dimensions of all buildings in Figure A are recorded as: [ [2 9 10], [3 7 15], [5 12 12], [15 20 10], [19 24 8] ] . - -The output is a list of "key points" (red dots in Figure B) in the format of [ [x1,y1], [x2, y2], [x3, y3], ... ] that uniquely defines a skyline. A key point is the left endpoint of a horizontal line segment. Note that the last key point, where the rightmost building ends, is merely used to mark the termination of the skyline, and always has zero height. Also, the ground in between any two adjacent buildings should be considered part of the skyline contour. - -For instance, the skyline in Figure B should be represented as:[ [2 10], [3 15], [7 12], [12 0], [15 10], [20 8], [24, 0] ]. - -Notes: - - The number of buildings in any input list is guaranteed to be in the range [0, 10000]. - The input list is already sorted in ascending order by the left x position Li. - The output list must be sorted by the x position. - There must be no consecutive horizontal lines of equal height in the output skyline. For instance, [...[2 3], [4 5], [7 5], [11 5], [12 7]...] is not acceptable; the three lines of height 5 should be merged into one in the final output as such: [...[2 3], [4 5], [12 7], ...] - - - -Credits:Special thanks to @stellari for adding this problem, creating these two awesome images and all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0218.the-skyline-problem/the-skyline-problem.go b/Algorithms/0218.the-skyline-problem/the-skyline-problem.go deleted file mode 100755 index 2deef9a78..000000000 --- a/Algorithms/0218.the-skyline-problem/the-skyline-problem.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0218 - diff --git a/Algorithms/0218.the-skyline-problem/the-skyline-problem_test.go b/Algorithms/0218.the-skyline-problem/the-skyline-problem_test.go deleted file mode 100755 index dd4459e8c..000000000 --- a/Algorithms/0218.the-skyline-problem/the-skyline-problem_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0218 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0218(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0219.contains-duplicate-ii/README.md b/Algorithms/0219.contains-duplicate-ii/README.md deleted file mode 100755 index 3d71c81ad..000000000 --- a/Algorithms/0219.contains-duplicate-ii/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# [219. Contains Duplicate II](https://leetcode.com/problems/contains-duplicate-ii/) - -## 题目 - - -Given an array of integers and an integer k, find out whether there are two distinct indices i and j in the array such that nums[i] = nums[j] and the absolute difference between i and j is at most k. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0219.contains-duplicate-ii/contains-duplicate-ii.go b/Algorithms/0219.contains-duplicate-ii/contains-duplicate-ii.go deleted file mode 100755 index c8c471464..000000000 --- a/Algorithms/0219.contains-duplicate-ii/contains-duplicate-ii.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0219 - diff --git a/Algorithms/0219.contains-duplicate-ii/contains-duplicate-ii_test.go b/Algorithms/0219.contains-duplicate-ii/contains-duplicate-ii_test.go deleted file mode 100755 index eb3528a42..000000000 --- a/Algorithms/0219.contains-duplicate-ii/contains-duplicate-ii_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0219 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0219(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0220.contains-duplicate-iii/README.md b/Algorithms/0220.contains-duplicate-iii/README.md deleted file mode 100755 index bd5bd430e..000000000 --- a/Algorithms/0220.contains-duplicate-iii/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# [220. Contains Duplicate III](https://leetcode.com/problems/contains-duplicate-iii/) - -## 题目 - - -Given an array of integers, find out whether there are two distinct indices i and j in the array such that the absolute difference between nums[i] and nums[j] is at most t and the absolute difference between i and j is at most k. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0220.contains-duplicate-iii/contains-duplicate-iii.go b/Algorithms/0220.contains-duplicate-iii/contains-duplicate-iii.go deleted file mode 100755 index 6cb804707..000000000 --- a/Algorithms/0220.contains-duplicate-iii/contains-duplicate-iii.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0220 - diff --git a/Algorithms/0220.contains-duplicate-iii/contains-duplicate-iii_test.go b/Algorithms/0220.contains-duplicate-iii/contains-duplicate-iii_test.go deleted file mode 100755 index 9d59da430..000000000 --- a/Algorithms/0220.contains-duplicate-iii/contains-duplicate-iii_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0220 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0220(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0221.maximal-square/README.md b/Algorithms/0221.maximal-square/README.md deleted file mode 100755 index 7c171a3b1..000000000 --- a/Algorithms/0221.maximal-square/README.md +++ /dev/null @@ -1,26 +0,0 @@ -# [221. Maximal Square](https://leetcode.com/problems/maximal-square/) - -## 题目 - - -Given a 2D binary matrix filled with 0's and 1's, find the largest square containing only 1's and return its area. - - -For example, given the following matrix: -1 0 1 0 0 -1 0 1 1 1 -1 1 1 1 1 -1 0 0 1 0 - -Return 4. - - -Credits:Special thanks to @Freezen for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0221.maximal-square/maximal-square.go b/Algorithms/0221.maximal-square/maximal-square.go deleted file mode 100755 index f035faf85..000000000 --- a/Algorithms/0221.maximal-square/maximal-square.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0221 - diff --git a/Algorithms/0221.maximal-square/maximal-square_test.go b/Algorithms/0221.maximal-square/maximal-square_test.go deleted file mode 100755 index 1688d2602..000000000 --- a/Algorithms/0221.maximal-square/maximal-square_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0221 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0221(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0222.count-complete-tree-nodes/README.md b/Algorithms/0222.count-complete-tree-nodes/README.md deleted file mode 100755 index eb4a63fde..000000000 --- a/Algorithms/0222.count-complete-tree-nodes/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# [222. Count Complete Tree Nodes](https://leetcode.com/problems/count-complete-tree-nodes/) - -## 题目 - - Given a complete binary tree, count the number of nodes. - -Definition of a complete binary tree from Wikipedia: -In a complete binary tree every level, except possibly the last, is completely filled, and all nodes in the last level are as far left as possible. It can have between 1 and 2h nodes inclusive at the last level h. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0222.count-complete-tree-nodes/count-complete-tree-nodes.go b/Algorithms/0222.count-complete-tree-nodes/count-complete-tree-nodes.go deleted file mode 100755 index f35f265db..000000000 --- a/Algorithms/0222.count-complete-tree-nodes/count-complete-tree-nodes.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0222 - diff --git a/Algorithms/0222.count-complete-tree-nodes/count-complete-tree-nodes_test.go b/Algorithms/0222.count-complete-tree-nodes/count-complete-tree-nodes_test.go deleted file mode 100755 index 53391f3c2..000000000 --- a/Algorithms/0222.count-complete-tree-nodes/count-complete-tree-nodes_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0222 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0222(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0223.rectangle-area/README.md b/Algorithms/0223.rectangle-area/README.md deleted file mode 100755 index c7f5750f4..000000000 --- a/Algorithms/0223.rectangle-area/README.md +++ /dev/null @@ -1,22 +0,0 @@ -# [223. Rectangle Area](https://leetcode.com/problems/rectangle-area/) - -## 题目 - - Find the total area covered by two rectilinear rectangles in a 2D plane. -Each rectangle is defined by its bottom left corner and top right corner as shown in the figure. - - - - -Assume that the total area is never beyond the maximum possible value of int. - - -Credits:Special thanks to @mithmatt for adding this problem, creating the above image and all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0223.rectangle-area/rectangle-area.go b/Algorithms/0223.rectangle-area/rectangle-area.go deleted file mode 100755 index ddc76bfc4..000000000 --- a/Algorithms/0223.rectangle-area/rectangle-area.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0223 - diff --git a/Algorithms/0223.rectangle-area/rectangle-area_test.go b/Algorithms/0223.rectangle-area/rectangle-area_test.go deleted file mode 100755 index 829bb32bc..000000000 --- a/Algorithms/0223.rectangle-area/rectangle-area_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0223 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0223(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0224.basic-calculator/README.md b/Algorithms/0224.basic-calculator/README.md deleted file mode 100755 index 5a606ba32..000000000 --- a/Algorithms/0224.basic-calculator/README.md +++ /dev/null @@ -1,28 +0,0 @@ -# [224. Basic Calculator](https://leetcode.com/problems/basic-calculator/) - -## 题目 - - Implement a basic calculator to evaluate a simple expression string. - -The expression string may contain open ( and closing parentheses ), the plus + or minus sign -, non-negative integers and empty spaces . - -You may assume that the given expression is always valid. - -Some examples: -"1 + 1" = 2 -" 2-1 + 2 " = 3 -"(1+(4+5+2)-3)+(6+8)" = 23 - - - - -Note: Do not use the eval built-in library function. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0224.basic-calculator/basic-calculator.go b/Algorithms/0224.basic-calculator/basic-calculator.go deleted file mode 100755 index e7adb3daf..000000000 --- a/Algorithms/0224.basic-calculator/basic-calculator.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0224 - diff --git a/Algorithms/0224.basic-calculator/basic-calculator_test.go b/Algorithms/0224.basic-calculator/basic-calculator_test.go deleted file mode 100755 index 8b2fcf33f..000000000 --- a/Algorithms/0224.basic-calculator/basic-calculator_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0224 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0224(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0225.implement-stack-using-queues/README.md b/Algorithms/0225.implement-stack-using-queues/README.md deleted file mode 100755 index 967ffea26..000000000 --- a/Algorithms/0225.implement-stack-using-queues/README.md +++ /dev/null @@ -1,37 +0,0 @@ -# [225. Implement Stack using Queues](https://leetcode.com/problems/implement-stack-using-queues/) - -## 题目 - - -Implement the following operations of a stack using queues. - - -push(x) -- Push element x onto stack. - - -pop() -- Removes the element on top of the stack. - - -top() -- Get the top element. - - -empty() -- Return whether the stack is empty. - - -Notes: - -You must use only standard operations of a queue -- which means only push to back, peek/pop from front, size, and is empty operations are valid. -Depending on your language, queue may not be supported natively. You may simulate a queue by using a list or deque (double-ended queue), as long as you use only standard operations of a queue. -You may assume that all operations are valid (for example, no pop or top operations will be called on an empty stack). - - - -Credits:Special thanks to @jianchao.li.fighter for adding this problem and all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0225.implement-stack-using-queues/implement-stack-using-queues.go b/Algorithms/0225.implement-stack-using-queues/implement-stack-using-queues.go deleted file mode 100755 index 4223ea31f..000000000 --- a/Algorithms/0225.implement-stack-using-queues/implement-stack-using-queues.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0225 - diff --git a/Algorithms/0225.implement-stack-using-queues/implement-stack-using-queues_test.go b/Algorithms/0225.implement-stack-using-queues/implement-stack-using-queues_test.go deleted file mode 100755 index 4cf755483..000000000 --- a/Algorithms/0225.implement-stack-using-queues/implement-stack-using-queues_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0225 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0225(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0226.invert-binary-tree/README.md b/Algorithms/0226.invert-binary-tree/README.md deleted file mode 100755 index e279830d4..000000000 --- a/Algorithms/0226.invert-binary-tree/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# [226. Invert Binary Tree](https://leetcode.com/problems/invert-binary-tree/) - -## 题目 - - Invert a binary tree. - 4 - / \ - 2 7 - / \ / \ -1 3 6 9 - -to - 4 - / \ - 7 2 - / \ / \ -9 6 3 1 - -Trivia: -This problem was inspired by this original tweet by Max Howell: -Google: 90% of our engineers use the software you wrote (Homebrew), but you can’t invert a binary tree on a whiteboard so fuck off. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0226.invert-binary-tree/invert-binary-tree.go b/Algorithms/0226.invert-binary-tree/invert-binary-tree.go deleted file mode 100755 index 343e23d14..000000000 --- a/Algorithms/0226.invert-binary-tree/invert-binary-tree.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0226 - diff --git a/Algorithms/0226.invert-binary-tree/invert-binary-tree_test.go b/Algorithms/0226.invert-binary-tree/invert-binary-tree_test.go deleted file mode 100755 index eef8b9179..000000000 --- a/Algorithms/0226.invert-binary-tree/invert-binary-tree_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0226 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0226(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0227.basic-calculator-ii/README.md b/Algorithms/0227.basic-calculator-ii/README.md deleted file mode 100755 index 325138b92..000000000 --- a/Algorithms/0227.basic-calculator-ii/README.md +++ /dev/null @@ -1,30 +0,0 @@ -# [227. Basic Calculator II](https://leetcode.com/problems/basic-calculator-ii/) - -## 题目 - - Implement a basic calculator to evaluate a simple expression string. - -The expression string contains only non-negative integers, +, -, *, / operators and empty spaces . The integer division should truncate toward zero. - -You may assume that the given expression is always valid. - -Some examples: -"3+2*2" = 7 -" 3/2 " = 1 -" 3+5 / 2 " = 5 - - - - -Note: Do not use the eval built-in library function. - - -Credits:Special thanks to @ts for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0227.basic-calculator-ii/basic-calculator-ii.go b/Algorithms/0227.basic-calculator-ii/basic-calculator-ii.go deleted file mode 100755 index 3c9e1cc86..000000000 --- a/Algorithms/0227.basic-calculator-ii/basic-calculator-ii.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0227 - diff --git a/Algorithms/0227.basic-calculator-ii/basic-calculator-ii_test.go b/Algorithms/0227.basic-calculator-ii/basic-calculator-ii_test.go deleted file mode 100755 index 41a3cc7c7..000000000 --- a/Algorithms/0227.basic-calculator-ii/basic-calculator-ii_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0227 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0227(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0228.summary-ranges/README.md b/Algorithms/0228.summary-ranges/README.md deleted file mode 100755 index c24175740..000000000 --- a/Algorithms/0228.summary-ranges/README.md +++ /dev/null @@ -1,20 +0,0 @@ -# [228. Summary Ranges](https://leetcode.com/problems/summary-ranges/) - -## 题目 - - -Given a sorted integer array without duplicates, return the summary of its ranges. - - -For example, given [0,1,2,4,5,7], return ["0->2","4->5","7"]. - - -Credits:Special thanks to @jianchao.li.fighter for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0228.summary-ranges/summary-ranges.go b/Algorithms/0228.summary-ranges/summary-ranges.go deleted file mode 100755 index 9016667fd..000000000 --- a/Algorithms/0228.summary-ranges/summary-ranges.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0228 - diff --git a/Algorithms/0228.summary-ranges/summary-ranges_test.go b/Algorithms/0228.summary-ranges/summary-ranges_test.go deleted file mode 100755 index 5da54c0b5..000000000 --- a/Algorithms/0228.summary-ranges/summary-ranges_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0228 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0228(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0229.majority-element-ii/README.md b/Algorithms/0229.majority-element-ii/README.md deleted file mode 100755 index a1aaab842..000000000 --- a/Algorithms/0229.majority-element-ii/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# [229. Majority Element II](https://leetcode.com/problems/majority-element-ii/) - -## 题目 - - Given an integer array of size n, find all elements that appear more than ⌊ n/3 ⌋ times. The algorithm should run in linear time and in O(1) space. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0229.majority-element-ii/majority-element-ii.go b/Algorithms/0229.majority-element-ii/majority-element-ii.go deleted file mode 100755 index f77b10d55..000000000 --- a/Algorithms/0229.majority-element-ii/majority-element-ii.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0229 - diff --git a/Algorithms/0229.majority-element-ii/majority-element-ii_test.go b/Algorithms/0229.majority-element-ii/majority-element-ii_test.go deleted file mode 100755 index dad4bbb34..000000000 --- a/Algorithms/0229.majority-element-ii/majority-element-ii_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0229 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0229(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0230.kth-smallest-element-in-a-bst/README.md b/Algorithms/0230.kth-smallest-element-in-a-bst/README.md deleted file mode 100755 index 2d734de08..000000000 --- a/Algorithms/0230.kth-smallest-element-in-a-bst/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# [230. Kth Smallest Element in a BST](https://leetcode.com/problems/kth-smallest-element-in-a-bst/) - -## 题目 - - Given a binary search tree, write a function kthSmallest to find the kth smallest element in it. - -Note: -You may assume k is always valid, 1 ? k ? BST's total elements. - -Follow up: -What if the BST is modified (insert/delete operations) often and you need to find the kth smallest frequently? How would you optimize the kthSmallest routine? - -Credits:Special thanks to @ts for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0230.kth-smallest-element-in-a-bst/kth-smallest-element-in-a-bst.go b/Algorithms/0230.kth-smallest-element-in-a-bst/kth-smallest-element-in-a-bst.go deleted file mode 100755 index c751ed5eb..000000000 --- a/Algorithms/0230.kth-smallest-element-in-a-bst/kth-smallest-element-in-a-bst.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0230 - diff --git a/Algorithms/0230.kth-smallest-element-in-a-bst/kth-smallest-element-in-a-bst_test.go b/Algorithms/0230.kth-smallest-element-in-a-bst/kth-smallest-element-in-a-bst_test.go deleted file mode 100755 index ba57d8d4d..000000000 --- a/Algorithms/0230.kth-smallest-element-in-a-bst/kth-smallest-element-in-a-bst_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0230 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0230(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0231.power-of-two/README.md b/Algorithms/0231.power-of-two/README.md deleted file mode 100755 index 8b0949508..000000000 --- a/Algorithms/0231.power-of-two/README.md +++ /dev/null @@ -1,17 +0,0 @@ -# [231. Power of Two](https://leetcode.com/problems/power-of-two/) - -## 题目 - - -Given an integer, write a function to determine if it is a power of two. - - -Credits:Special thanks to @jianchao.li.fighter for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0231.power-of-two/power-of-two.go b/Algorithms/0231.power-of-two/power-of-two.go deleted file mode 100755 index 3aa341cbe..000000000 --- a/Algorithms/0231.power-of-two/power-of-two.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0231 - diff --git a/Algorithms/0231.power-of-two/power-of-two_test.go b/Algorithms/0231.power-of-two/power-of-two_test.go deleted file mode 100755 index 43fc56166..000000000 --- a/Algorithms/0231.power-of-two/power-of-two_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0231 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0231(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0232.implement-queue-using-stacks/README.md b/Algorithms/0232.implement-queue-using-stacks/README.md deleted file mode 100755 index 8efad1921..000000000 --- a/Algorithms/0232.implement-queue-using-stacks/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# [232. Implement Queue using Stacks](https://leetcode.com/problems/implement-queue-using-stacks/) - -## 题目 - - -Implement the following operations of a queue using stacks. - - -push(x) -- Push element x to the back of queue. - - -pop() -- Removes the element from in front of queue. - - -peek() -- Get the front element. - - -empty() -- Return whether the queue is empty. - - -Notes: - -You must use only standard operations of a stack -- which means only push to top, peek/pop from top, size, and is empty operations are valid. -Depending on your language, stack may not be supported natively. You may simulate a stack by using a list or deque (double-ended queue), as long as you use only standard operations of a stack. -You may assume that all operations are valid (for example, no pop or peek operations will be called on an empty queue). - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0232.implement-queue-using-stacks/implement-queue-using-stacks.go b/Algorithms/0232.implement-queue-using-stacks/implement-queue-using-stacks.go deleted file mode 100755 index 83a8636db..000000000 --- a/Algorithms/0232.implement-queue-using-stacks/implement-queue-using-stacks.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0232 - diff --git a/Algorithms/0232.implement-queue-using-stacks/implement-queue-using-stacks_test.go b/Algorithms/0232.implement-queue-using-stacks/implement-queue-using-stacks_test.go deleted file mode 100755 index a8b0c5549..000000000 --- a/Algorithms/0232.implement-queue-using-stacks/implement-queue-using-stacks_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0232 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0232(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0233.number-of-digit-one/README.md b/Algorithms/0233.number-of-digit-one/README.md deleted file mode 100755 index 80cbb45c6..000000000 --- a/Algorithms/0233.number-of-digit-one/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# [233. Number of Digit One](https://leetcode.com/problems/number-of-digit-one/) - -## 题目 - - Given an integer n, count the total number of digit 1 appearing in all non-negative integers less than or equal to n. - - -For example: -Given n = 13, -Return 6, because digit 1 occurred in the following numbers: 1, 10, 11, 12, 13. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0233.number-of-digit-one/number-of-digit-one.go b/Algorithms/0233.number-of-digit-one/number-of-digit-one.go deleted file mode 100755 index 20427e4cf..000000000 --- a/Algorithms/0233.number-of-digit-one/number-of-digit-one.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0233 - diff --git a/Algorithms/0233.number-of-digit-one/number-of-digit-one_test.go b/Algorithms/0233.number-of-digit-one/number-of-digit-one_test.go deleted file mode 100755 index 21e891943..000000000 --- a/Algorithms/0233.number-of-digit-one/number-of-digit-one_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0233 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0233(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0234.palindrome-linked-list/README.md b/Algorithms/0234.palindrome-linked-list/README.md deleted file mode 100755 index 3ebf84691..000000000 --- a/Algorithms/0234.palindrome-linked-list/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# [234. Palindrome Linked List](https://leetcode.com/problems/palindrome-linked-list/) - -## 题目 - - Given a singly linked list, determine if it is a palindrome. - -Follow up: -Could you do it in O(n) time and O(1) space? - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0234.palindrome-linked-list/palindrome-linked-list.go b/Algorithms/0234.palindrome-linked-list/palindrome-linked-list.go deleted file mode 100755 index 738472c7a..000000000 --- a/Algorithms/0234.palindrome-linked-list/palindrome-linked-list.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0234 - diff --git a/Algorithms/0234.palindrome-linked-list/palindrome-linked-list_test.go b/Algorithms/0234.palindrome-linked-list/palindrome-linked-list_test.go deleted file mode 100755 index b4dd607eb..000000000 --- a/Algorithms/0234.palindrome-linked-list/palindrome-linked-list_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0234 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0234(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0235.lowest-common-ancestor-of-a-binary-search-tree/README.md b/Algorithms/0235.lowest-common-ancestor-of-a-binary-search-tree/README.md deleted file mode 100755 index 708574cba..000000000 --- a/Algorithms/0235.lowest-common-ancestor-of-a-binary-search-tree/README.md +++ /dev/null @@ -1,31 +0,0 @@ -# [235. Lowest Common Ancestor of a Binary Search Tree](https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-search-tree/) - -## 题目 - - -Given a binary search tree (BST), find the lowest common ancestor (LCA) of two given nodes in the BST. - - - -According to the definition of LCA on Wikipedia: “The lowest common ancestor is defined between two nodes v and w as the lowest node in T that has both v and w as descendants (where we allow a node to be a descendant of itself).” - - - _______6______ - / \ - ___2__ ___8__ - / \ / \ - 0 _4 7 9 - / \ - 3 5 - - - -For example, the lowest common ancestor (LCA) of nodes 2 and 8 is 6. Another example is LCA of nodes 2 and 4 is 2, since a node can be a descendant of itself according to the LCA definition. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0235.lowest-common-ancestor-of-a-binary-search-tree/lowest-common-ancestor-of-a-binary-search-tree.go b/Algorithms/0235.lowest-common-ancestor-of-a-binary-search-tree/lowest-common-ancestor-of-a-binary-search-tree.go deleted file mode 100755 index c001db4b4..000000000 --- a/Algorithms/0235.lowest-common-ancestor-of-a-binary-search-tree/lowest-common-ancestor-of-a-binary-search-tree.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0235 - diff --git a/Algorithms/0235.lowest-common-ancestor-of-a-binary-search-tree/lowest-common-ancestor-of-a-binary-search-tree_test.go b/Algorithms/0235.lowest-common-ancestor-of-a-binary-search-tree/lowest-common-ancestor-of-a-binary-search-tree_test.go deleted file mode 100755 index bd73a116b..000000000 --- a/Algorithms/0235.lowest-common-ancestor-of-a-binary-search-tree/lowest-common-ancestor-of-a-binary-search-tree_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0235 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0235(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0236.lowest-common-ancestor-of-a-binary-tree/README.md b/Algorithms/0236.lowest-common-ancestor-of-a-binary-tree/README.md deleted file mode 100755 index 3918d1a18..000000000 --- a/Algorithms/0236.lowest-common-ancestor-of-a-binary-tree/README.md +++ /dev/null @@ -1,31 +0,0 @@ -# [236. Lowest Common Ancestor of a Binary Tree](https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-tree/) - -## 题目 - - -Given a binary tree, find the lowest common ancestor (LCA) of two given nodes in the tree. - - - -According to the definition of LCA on Wikipedia: “The lowest common ancestor is defined between two nodes v and w as the lowest node in T that has both v and w as descendants (where we allow a node to be a descendant of itself).” - - - _______3______ - / \ - ___5__ ___1__ - / \ / \ - 6 _2 0 8 - / \ - 7 4 - - - -For example, the lowest common ancestor (LCA) of nodes 5 and 1 is 3. Another example is LCA of nodes 5 and 4 is 5, since a node can be a descendant of itself according to the LCA definition. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0236.lowest-common-ancestor-of-a-binary-tree/lowest-common-ancestor-of-a-binary-tree.go b/Algorithms/0236.lowest-common-ancestor-of-a-binary-tree/lowest-common-ancestor-of-a-binary-tree.go deleted file mode 100755 index a6231c6ae..000000000 --- a/Algorithms/0236.lowest-common-ancestor-of-a-binary-tree/lowest-common-ancestor-of-a-binary-tree.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0236 - diff --git a/Algorithms/0236.lowest-common-ancestor-of-a-binary-tree/lowest-common-ancestor-of-a-binary-tree_test.go b/Algorithms/0236.lowest-common-ancestor-of-a-binary-tree/lowest-common-ancestor-of-a-binary-tree_test.go deleted file mode 100755 index 54fabe846..000000000 --- a/Algorithms/0236.lowest-common-ancestor-of-a-binary-tree/lowest-common-ancestor-of-a-binary-tree_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0236 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0236(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0237.delete-node-in-a-linked-list/README.md b/Algorithms/0237.delete-node-in-a-linked-list/README.md deleted file mode 100755 index fbb23ed80..000000000 --- a/Algorithms/0237.delete-node-in-a-linked-list/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# [237. Delete Node in a Linked List](https://leetcode.com/problems/delete-node-in-a-linked-list/) - -## 题目 - - -Write a function to delete a node (except the tail) in a singly linked list, given only access to that node. - - - -Supposed the linked list is 1 -> 2 -> 3 -> 4 and you are given the third node with value 3, the linked list should become 1 -> 2 -> 4 after calling your function. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0237.delete-node-in-a-linked-list/delete-node-in-a-linked-list.go b/Algorithms/0237.delete-node-in-a-linked-list/delete-node-in-a-linked-list.go deleted file mode 100755 index e616cb37d..000000000 --- a/Algorithms/0237.delete-node-in-a-linked-list/delete-node-in-a-linked-list.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0237 - diff --git a/Algorithms/0237.delete-node-in-a-linked-list/delete-node-in-a-linked-list_test.go b/Algorithms/0237.delete-node-in-a-linked-list/delete-node-in-a-linked-list_test.go deleted file mode 100755 index 2241db032..000000000 --- a/Algorithms/0237.delete-node-in-a-linked-list/delete-node-in-a-linked-list_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0237 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0237(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0238.product-of-array-except-self/README.md b/Algorithms/0238.product-of-array-except-self/README.md deleted file mode 100755 index 1446d0796..000000000 --- a/Algorithms/0238.product-of-array-except-self/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# [238. Product of Array Except Self](https://leetcode.com/problems/product-of-array-except-self/) - -## 题目 - - -Given an array of n integers where n > 1, nums, return an array output such that output[i] is equal to the product of all the elements of nums except nums[i]. - -Solve it without division and in O(n). - -For example, given [1,2,3,4], return [24,12,8,6]. - -Follow up: -Could you solve it with constant space complexity? (Note: The output array does not count as extra space for the purpose of space complexity analysis.) - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0238.product-of-array-except-self/product-of-array-except-self.go b/Algorithms/0238.product-of-array-except-self/product-of-array-except-self.go deleted file mode 100755 index 98f080a0d..000000000 --- a/Algorithms/0238.product-of-array-except-self/product-of-array-except-self.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0238 - diff --git a/Algorithms/0238.product-of-array-except-self/product-of-array-except-self_test.go b/Algorithms/0238.product-of-array-except-self/product-of-array-except-self_test.go deleted file mode 100755 index 8c50b09bd..000000000 --- a/Algorithms/0238.product-of-array-except-self/product-of-array-except-self_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0238 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0238(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0239.sliding-window-maximum/README.md b/Algorithms/0239.sliding-window-maximum/README.md deleted file mode 100755 index 123e8eb02..000000000 --- a/Algorithms/0239.sliding-window-maximum/README.md +++ /dev/null @@ -1,34 +0,0 @@ -# [239. Sliding Window Maximum](https://leetcode.com/problems/sliding-window-maximum/) - -## 题目 - - Given an array nums, there is a sliding window of size k which is moving from the very left of the array to the very right. You can only see the k numbers in the window. Each time the sliding window moves right by one position. - -For example, -Given nums = [1,3,-1,-3,5,3,6,7], and k = 3. - -Window position Max ---------------- ----- -[1 3 -1] -3 5 3 6 7 3 - 1 [3 -1 -3] 5 3 6 7 3 - 1 3 [-1 -3 5] 3 6 7 5 - 1 3 -1 [-3 5 3] 6 7 5 - 1 3 -1 -3 [5 3 6] 7 6 - 1 3 -1 -3 5 [3 6 7] 7 - - -Therefore, return the max sliding window as [3,3,5,5,6,7]. - -Note: -You may assume k is always valid, ie: 1 ≤ k ≤ input array's size for non-empty array. - -Follow up: -Could you solve it in linear time? - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0239.sliding-window-maximum/sliding-window-maximum.go b/Algorithms/0239.sliding-window-maximum/sliding-window-maximum.go deleted file mode 100755 index cbf5e9dbb..000000000 --- a/Algorithms/0239.sliding-window-maximum/sliding-window-maximum.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0239 - diff --git a/Algorithms/0239.sliding-window-maximum/sliding-window-maximum_test.go b/Algorithms/0239.sliding-window-maximum/sliding-window-maximum_test.go deleted file mode 100755 index 28bce3809..000000000 --- a/Algorithms/0239.sliding-window-maximum/sliding-window-maximum_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0239 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0239(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0240.search-a-2d-matrix-ii/README.md b/Algorithms/0240.search-a-2d-matrix-ii/README.md deleted file mode 100755 index 775d8ebb3..000000000 --- a/Algorithms/0240.search-a-2d-matrix-ii/README.md +++ /dev/null @@ -1,37 +0,0 @@ -# [240. Search a 2D Matrix II](https://leetcode.com/problems/search-a-2d-matrix-ii/) - -## 题目 - - Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the following properties: - - - -Integers in each row are sorted in ascending from left to right. -Integers in each column are sorted in ascending from top to bottom. - - - - -For example, - -Consider the following matrix: - -[ - [1, 4, 7, 11, 15], - [2, 5, 8, 12, 19], - [3, 6, 9, 16, 22], - [10, 13, 14, 17, 24], - [18, 21, 23, 26, 30] -] - - -Given target = 5, return true. -Given target = 20, return false. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0240.search-a-2d-matrix-ii/search-a-2d-matrix-ii.go b/Algorithms/0240.search-a-2d-matrix-ii/search-a-2d-matrix-ii.go deleted file mode 100755 index 01932f2d7..000000000 --- a/Algorithms/0240.search-a-2d-matrix-ii/search-a-2d-matrix-ii.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0240 - diff --git a/Algorithms/0240.search-a-2d-matrix-ii/search-a-2d-matrix-ii_test.go b/Algorithms/0240.search-a-2d-matrix-ii/search-a-2d-matrix-ii_test.go deleted file mode 100755 index 5dff914b0..000000000 --- a/Algorithms/0240.search-a-2d-matrix-ii/search-a-2d-matrix-ii_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0240 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0240(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0241.different-ways-to-add-parentheses/README.md b/Algorithms/0241.different-ways-to-add-parentheses/README.md deleted file mode 100755 index 48bb20209..000000000 --- a/Algorithms/0241.different-ways-to-add-parentheses/README.md +++ /dev/null @@ -1,30 +0,0 @@ -# [241. Different Ways to Add Parentheses](https://leetcode.com/problems/different-ways-to-add-parentheses/) - -## 题目 - - Given a string of numbers and operators, return all possible results from computing all the different possible ways to group numbers and operators. The valid operators are +, - and *. - -Example 1 -Input: "2-1-1". -((2-1)-1) = 0 -(2-(1-1)) = 2 -Output: [0, 2] - -Example 2 -Input: "2*3-4*5" -(2*(3-(4*5))) = -34 -((2*3)-(4*5)) = -14 -((2*(3-4))*5) = -10 -(2*((3-4)*5)) = -10 -(((2*3)-4)*5) = 10 -Output: [-34, -14, -10, -10, 10] - -Credits:Special thanks to @mithmatt for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0241.different-ways-to-add-parentheses/different-ways-to-add-parentheses.go b/Algorithms/0241.different-ways-to-add-parentheses/different-ways-to-add-parentheses.go deleted file mode 100755 index aca0a92d5..000000000 --- a/Algorithms/0241.different-ways-to-add-parentheses/different-ways-to-add-parentheses.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0241 - diff --git a/Algorithms/0241.different-ways-to-add-parentheses/different-ways-to-add-parentheses_test.go b/Algorithms/0241.different-ways-to-add-parentheses/different-ways-to-add-parentheses_test.go deleted file mode 100755 index eea18b345..000000000 --- a/Algorithms/0241.different-ways-to-add-parentheses/different-ways-to-add-parentheses_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0241 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0241(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0242.valid-anagram/README.md b/Algorithms/0242.valid-anagram/README.md deleted file mode 100755 index 9e4a7ab07..000000000 --- a/Algorithms/0242.valid-anagram/README.md +++ /dev/null @@ -1,24 +0,0 @@ -# [242. Valid Anagram](https://leetcode.com/problems/valid-anagram/) - -## 题目 - - Given two strings s and t, write a function to determine if t is an anagram of s. - -For example, -s = "anagram", t = "nagaram", return true. -s = "rat", t = "car", return false. - - -Note: -You may assume the string contains only lowercase alphabets. - -Follow up: -What if the inputs contain unicode characters? How would you adapt your solution to such case? - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0242.valid-anagram/valid-anagram.go b/Algorithms/0242.valid-anagram/valid-anagram.go deleted file mode 100755 index 8f99db3d9..000000000 --- a/Algorithms/0242.valid-anagram/valid-anagram.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0242 - diff --git a/Algorithms/0242.valid-anagram/valid-anagram_test.go b/Algorithms/0242.valid-anagram/valid-anagram_test.go deleted file mode 100755 index 5d394be1f..000000000 --- a/Algorithms/0242.valid-anagram/valid-anagram_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0242 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0242(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0257.binary-tree-paths/README.md b/Algorithms/0257.binary-tree-paths/README.md deleted file mode 100755 index 723d5c21f..000000000 --- a/Algorithms/0257.binary-tree-paths/README.md +++ /dev/null @@ -1,32 +0,0 @@ -# [257. Binary Tree Paths](https://leetcode.com/problems/binary-tree-paths/) - -## 题目 - - -Given a binary tree, return all root-to-leaf paths. - - -For example, given the following binary tree: - - - 1 - / \ -2 3 - \ - 5 - - - -All root-to-leaf paths are: -["1->2->5", "1->3"] - - -Credits:Special thanks to @jianchao.li.fighter for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0257.binary-tree-paths/binary-tree-paths.go b/Algorithms/0257.binary-tree-paths/binary-tree-paths.go deleted file mode 100755 index ed46555ae..000000000 --- a/Algorithms/0257.binary-tree-paths/binary-tree-paths.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0257 - diff --git a/Algorithms/0257.binary-tree-paths/binary-tree-paths_test.go b/Algorithms/0257.binary-tree-paths/binary-tree-paths_test.go deleted file mode 100755 index fd1a7be5c..000000000 --- a/Algorithms/0257.binary-tree-paths/binary-tree-paths_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0257 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0257(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0258.add-digits/README.md b/Algorithms/0258.add-digits/README.md deleted file mode 100755 index 0105f4c8e..000000000 --- a/Algorithms/0258.add-digits/README.md +++ /dev/null @@ -1,28 +0,0 @@ -# [258. Add Digits](https://leetcode.com/problems/add-digits/) - -## 题目 - - -Given a non-negative integer num, repeatedly add all its digits until the result has only one digit. - - - -For example: - - -Given num = 38, the process is like: 3 + 8 = 11, 1 + 1 = 2. Since 2 has only one digit, return it. - - -Follow up: -Could you do it without any loop/recursion in O(1) runtime? - - -Credits:Special thanks to @jianchao.li.fighter for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0258.add-digits/add-digits.go b/Algorithms/0258.add-digits/add-digits.go deleted file mode 100755 index ab5a3489c..000000000 --- a/Algorithms/0258.add-digits/add-digits.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0258 - diff --git a/Algorithms/0258.add-digits/add-digits_test.go b/Algorithms/0258.add-digits/add-digits_test.go deleted file mode 100755 index b03a29d03..000000000 --- a/Algorithms/0258.add-digits/add-digits_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0258 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0258(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0260.single-number-iii/README.md b/Algorithms/0260.single-number-iii/README.md deleted file mode 100755 index 45299ba2c..000000000 --- a/Algorithms/0260.single-number-iii/README.md +++ /dev/null @@ -1,30 +0,0 @@ -# [260. Single Number III](https://leetcode.com/problems/single-number-iii/) - -## 题目 - - -Given an array of numbers nums, in which exactly two elements appear only once and all the other elements appear exactly twice. Find the two elements that appear only once. - - -For example: - - -Given nums = [1, 2, 1, 3, 2, 5], return [3, 5]. - - -Note: - -The order of the result is not important. So in the above example, [5, 3] is also correct. -Your algorithm should run in linear runtime complexity. Could you implement it using only constant space complexity? - - - -Credits:Special thanks to @jianchao.li.fighter for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0260.single-number-iii/single-number-iii.go b/Algorithms/0260.single-number-iii/single-number-iii.go deleted file mode 100755 index 973d8dae1..000000000 --- a/Algorithms/0260.single-number-iii/single-number-iii.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0260 - diff --git a/Algorithms/0260.single-number-iii/single-number-iii_test.go b/Algorithms/0260.single-number-iii/single-number-iii_test.go deleted file mode 100755 index d641617c3..000000000 --- a/Algorithms/0260.single-number-iii/single-number-iii_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0260 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0260(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0263.ugly-number/README.md b/Algorithms/0263.ugly-number/README.md deleted file mode 100755 index 0dd91763a..000000000 --- a/Algorithms/0263.ugly-number/README.md +++ /dev/null @@ -1,25 +0,0 @@ -# [263. Ugly Number](https://leetcode.com/problems/ugly-number/) - -## 题目 - - -Write a program to check whether a given number is an ugly number. - - - -Ugly numbers are positive numbers whose prime factors only include 2, 3, 5. For example, 6, 8 are ugly while 14 is not ugly since it includes another prime factor 7. - - - -Note that 1 is typically treated as an ugly number. - - -Credits:Special thanks to @jianchao.li.fighter for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0263.ugly-number/ugly-number.go b/Algorithms/0263.ugly-number/ugly-number.go deleted file mode 100755 index 26407113b..000000000 --- a/Algorithms/0263.ugly-number/ugly-number.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0263 - diff --git a/Algorithms/0263.ugly-number/ugly-number_test.go b/Algorithms/0263.ugly-number/ugly-number_test.go deleted file mode 100755 index bfa4c386c..000000000 --- a/Algorithms/0263.ugly-number/ugly-number_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0263 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0263(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0264.ugly-number-ii/README.md b/Algorithms/0264.ugly-number-ii/README.md deleted file mode 100755 index 067c51bde..000000000 --- a/Algorithms/0264.ugly-number-ii/README.md +++ /dev/null @@ -1,25 +0,0 @@ -# [264. Ugly Number II](https://leetcode.com/problems/ugly-number-ii/) - -## 题目 - - -Write a program to find the n-th ugly number. - - - -Ugly numbers are positive numbers whose prime factors only include 2, 3, 5. For example, 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 is the sequence of the first 10 ugly numbers. - - - -Note that 1 is typically treated as an ugly number, and n does not exceed 1690. - - -Credits:Special thanks to @jianchao.li.fighter for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0264.ugly-number-ii/ugly-number-ii.go b/Algorithms/0264.ugly-number-ii/ugly-number-ii.go deleted file mode 100755 index a2bfee82a..000000000 --- a/Algorithms/0264.ugly-number-ii/ugly-number-ii.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0264 - diff --git a/Algorithms/0264.ugly-number-ii/ugly-number-ii_test.go b/Algorithms/0264.ugly-number-ii/ugly-number-ii_test.go deleted file mode 100755 index e975b4a6b..000000000 --- a/Algorithms/0264.ugly-number-ii/ugly-number-ii_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0264 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0264(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0268.missing-number/README.md b/Algorithms/0268.missing-number/README.md deleted file mode 100755 index 1db0b0dfa..000000000 --- a/Algorithms/0268.missing-number/README.md +++ /dev/null @@ -1,26 +0,0 @@ -# [268. Missing Number](https://leetcode.com/problems/missing-number/) - -## 题目 - - -Given an array containing n distinct numbers taken from 0, 1, 2, ..., n, find the one that is missing from the array. - - -For example, -Given nums = [0, 1, 3] return 2. - - - -Note: -Your algorithm should run in linear runtime complexity. Could you implement it using only constant extra space complexity? - - -Credits:Special thanks to @jianchao.li.fighter for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0268.missing-number/missing-number.go b/Algorithms/0268.missing-number/missing-number.go deleted file mode 100755 index 197f9754c..000000000 --- a/Algorithms/0268.missing-number/missing-number.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0268 - diff --git a/Algorithms/0268.missing-number/missing-number_test.go b/Algorithms/0268.missing-number/missing-number_test.go deleted file mode 100755 index 2d19c3e85..000000000 --- a/Algorithms/0268.missing-number/missing-number_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0268 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0268(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0273.integer-to-english-words/README.md b/Algorithms/0273.integer-to-english-words/README.md deleted file mode 100755 index 015b2c08f..000000000 --- a/Algorithms/0273.integer-to-english-words/README.md +++ /dev/null @@ -1,20 +0,0 @@ -# [273. Integer to English Words](https://leetcode.com/problems/integer-to-english-words/) - -## 题目 - - -Convert a non-negative integer to its english words representation. Given input is guaranteed to be less than 231 - 1. - - -For example, -123 -> "One Hundred Twenty Three" -12345 -> "Twelve Thousand Three Hundred Forty Five" -1234567 -> "One Million Two Hundred Thirty Four Thousand Five Hundred Sixty Seven" - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0273.integer-to-english-words/integer-to-english-words.go b/Algorithms/0273.integer-to-english-words/integer-to-english-words.go deleted file mode 100755 index eeb1cd810..000000000 --- a/Algorithms/0273.integer-to-english-words/integer-to-english-words.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0273 - diff --git a/Algorithms/0273.integer-to-english-words/integer-to-english-words_test.go b/Algorithms/0273.integer-to-english-words/integer-to-english-words_test.go deleted file mode 100755 index e9ddbbc7f..000000000 --- a/Algorithms/0273.integer-to-english-words/integer-to-english-words_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0273 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0273(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0274.h-index/README.md b/Algorithms/0274.h-index/README.md deleted file mode 100755 index 2f5091d2f..000000000 --- a/Algorithms/0274.h-index/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# [274. H-Index](https://leetcode.com/problems/h-index/) - -## 题目 - - -Given an array of citations (each citation is a non-negative integer) of a researcher, write a function to compute the researcher's h-index. - - - -According to the definition of h-index on Wikipedia: "A scientist has index h if h of his/her N papers have at least h citations each, and the other N − h papers have no more than h citations each." - - - -For example, given citations = [3, 0, 6, 1, 5], which means the researcher has 5 papers in total and each of them had received 3, 0, 6, 1, 5 citations respectively. Since the researcher has 3 papers with at least 3 citations each and the remaining two with no more than 3 citations each, his h-index is 3. - - - -Note: If there are several possible values for h, the maximum one is taken as the h-index. - - -Credits:Special thanks to @jianchao.li.fighter for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0274.h-index/h-index.go b/Algorithms/0274.h-index/h-index.go deleted file mode 100755 index 19c0a6982..000000000 --- a/Algorithms/0274.h-index/h-index.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0274 - diff --git a/Algorithms/0274.h-index/h-index_test.go b/Algorithms/0274.h-index/h-index_test.go deleted file mode 100755 index 4370e534f..000000000 --- a/Algorithms/0274.h-index/h-index_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0274 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0274(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0275.h-index-ii/README.md b/Algorithms/0275.h-index-ii/README.md deleted file mode 100755 index 85c07cebd..000000000 --- a/Algorithms/0275.h-index-ii/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# [275. H-Index II](https://leetcode.com/problems/h-index-ii/) - -## 题目 - - -Follow up for H-Index: What if the citations array is sorted in ascending order? Could you optimize your algorithm? - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0275.h-index-ii/h-index-ii.go b/Algorithms/0275.h-index-ii/h-index-ii.go deleted file mode 100755 index dd9f62c22..000000000 --- a/Algorithms/0275.h-index-ii/h-index-ii.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0275 - diff --git a/Algorithms/0275.h-index-ii/h-index-ii_test.go b/Algorithms/0275.h-index-ii/h-index-ii_test.go deleted file mode 100755 index 473e1a0e4..000000000 --- a/Algorithms/0275.h-index-ii/h-index-ii_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0275 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0275(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0278.first-bad-version/README.md b/Algorithms/0278.first-bad-version/README.md deleted file mode 100755 index 8a43c08f3..000000000 --- a/Algorithms/0278.first-bad-version/README.md +++ /dev/null @@ -1,25 +0,0 @@ -# [278. First Bad Version](https://leetcode.com/problems/first-bad-version/) - -## 题目 - - -You are a product manager and currently leading a team to develop a new product. Unfortunately, the latest version of your product fails the quality check. Since each version is developed based on the previous version, all the versions after a bad version are also bad. - - - -Suppose you have n versions [1, 2, ..., n] and you want to find out the first bad one, which causes all the following ones to be bad. - - - -You are given an API bool isBadVersion(version) which will return whether version is bad. Implement a function to find the first bad version. You should minimize the number of calls to the API. - - -Credits:Special thanks to @jianchao.li.fighter for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0278.first-bad-version/first-bad-version.go b/Algorithms/0278.first-bad-version/first-bad-version.go deleted file mode 100755 index b7e7a2c30..000000000 --- a/Algorithms/0278.first-bad-version/first-bad-version.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0278 - diff --git a/Algorithms/0278.first-bad-version/first-bad-version_test.go b/Algorithms/0278.first-bad-version/first-bad-version_test.go deleted file mode 100755 index 568992696..000000000 --- a/Algorithms/0278.first-bad-version/first-bad-version_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0278 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0278(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0279.perfect-squares/README.md b/Algorithms/0279.perfect-squares/README.md deleted file mode 100755 index 89c9f7c44..000000000 --- a/Algorithms/0279.perfect-squares/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# [279. Perfect Squares](https://leetcode.com/problems/perfect-squares/) - -## 题目 - - -Given a positive integer n, find the least number of perfect square numbers (for example, 1, 4, 9, 16, ...) which sum to n. - - - -For example, given n = 12, return 3 because 12 = 4 + 4 + 4; given n = 13, return 2 because 13 = 4 + 9. - - -Credits:Special thanks to @jianchao.li.fighter for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0279.perfect-squares/perfect-squares.go b/Algorithms/0279.perfect-squares/perfect-squares.go deleted file mode 100755 index 5f5d1b1ed..000000000 --- a/Algorithms/0279.perfect-squares/perfect-squares.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0279 - diff --git a/Algorithms/0279.perfect-squares/perfect-squares_test.go b/Algorithms/0279.perfect-squares/perfect-squares_test.go deleted file mode 100755 index 3122b1caa..000000000 --- a/Algorithms/0279.perfect-squares/perfect-squares_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0279 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0279(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0282.expression-add-operators/README.md b/Algorithms/0282.expression-add-operators/README.md deleted file mode 100755 index 97d811be4..000000000 --- a/Algorithms/0282.expression-add-operators/README.md +++ /dev/null @@ -1,25 +0,0 @@ -# [282. Expression Add Operators](https://leetcode.com/problems/expression-add-operators/) - -## 题目 - - -Given a string that contains only digits 0-9 and a target value, return all possibilities to add binary operators (not unary) +, -, or * between the digits so they evaluate to the target value. - - -Examples: -"123", 6 -> ["1+2+3", "1*2*3"] -"232", 8 -> ["2*3+2", "2+3*2"] -"105", 5 -> ["1*0+5","10-5"] -"00", 0 -> ["0+0", "0-0", "0*0"] -"3456237490", 9191 -> [] - - -Credits:Special thanks to @davidtan1890 for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0282.expression-add-operators/expression-add-operators.go b/Algorithms/0282.expression-add-operators/expression-add-operators.go deleted file mode 100755 index 6782c181b..000000000 --- a/Algorithms/0282.expression-add-operators/expression-add-operators.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0282 - diff --git a/Algorithms/0282.expression-add-operators/expression-add-operators_test.go b/Algorithms/0282.expression-add-operators/expression-add-operators_test.go deleted file mode 100755 index 837b29bf0..000000000 --- a/Algorithms/0282.expression-add-operators/expression-add-operators_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0282 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0282(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0283.move-zeroes/README.md b/Algorithms/0283.move-zeroes/README.md deleted file mode 100755 index 65cac0a02..000000000 --- a/Algorithms/0283.move-zeroes/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# [283. Move Zeroes](https://leetcode.com/problems/move-zeroes/) - -## 题目 - - -Given an array nums, write a function to move all 0's to the end of it while maintaining the relative order of the non-zero elements. - - - -For example, given nums = [0, 1, 0, 3, 12], after calling your function, nums should be [1, 3, 12, 0, 0]. - - - -Note: - -You must do this in-place without making a copy of the array. -Minimize the total number of operations. - - - -Credits:Special thanks to @jianchao.li.fighter for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0283.move-zeroes/move-zeroes.go b/Algorithms/0283.move-zeroes/move-zeroes.go deleted file mode 100755 index e9721ccfd..000000000 --- a/Algorithms/0283.move-zeroes/move-zeroes.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0283 - diff --git a/Algorithms/0283.move-zeroes/move-zeroes_test.go b/Algorithms/0283.move-zeroes/move-zeroes_test.go deleted file mode 100755 index 9f18723b3..000000000 --- a/Algorithms/0283.move-zeroes/move-zeroes_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0283 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0283(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0284.peeking-iterator/README.md b/Algorithms/0284.peeking-iterator/README.md deleted file mode 100755 index 014122dca..000000000 --- a/Algorithms/0284.peeking-iterator/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# [284. Peeking Iterator](https://leetcode.com/problems/peeking-iterator/) - -## 题目 - - Given an Iterator class interface with methods: next() and hasNext(), design and implement a PeekingIterator that support the peek() operation -- it essentially peek() at the element that will be returned by the next call to next(). - - -Here is an example. Assume that the iterator is initialized to the beginning of the list: [1, 2, 3]. - -Call next() gets you 1, the first element in the list. - -Now you call peek() and it returns 2, the next element. Calling next() after that still return 2. - -You call next() the final time and it returns 3, the last element. Calling hasNext() after that should return false. - - -Follow up: How would you extend your design to be generic and work with all types, not just integer? - -Credits:Special thanks to @porker2008 for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0284.peeking-iterator/peeking-iterator.go b/Algorithms/0284.peeking-iterator/peeking-iterator.go deleted file mode 100755 index c50ccf546..000000000 --- a/Algorithms/0284.peeking-iterator/peeking-iterator.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0284 - diff --git a/Algorithms/0284.peeking-iterator/peeking-iterator_test.go b/Algorithms/0284.peeking-iterator/peeking-iterator_test.go deleted file mode 100755 index e6b135da0..000000000 --- a/Algorithms/0284.peeking-iterator/peeking-iterator_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0284 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0284(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0287.find-the-duplicate-number/README.md b/Algorithms/0287.find-the-duplicate-number/README.md deleted file mode 100755 index de681ad54..000000000 --- a/Algorithms/0287.find-the-duplicate-number/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# [287. Find the Duplicate Number](https://leetcode.com/problems/find-the-duplicate-number/) - -## 题目 - - -Given an array nums containing n + 1 integers where each integer is between 1 and n (inclusive), prove that at least one duplicate number must exist. Assume that there is only one duplicate number, find the duplicate one. - - - -Note: - -You must not modify the array (assume the array is read only). -You must use only constant, O(1) extra space. -Your runtime complexity should be less than O(n2). -There is only one duplicate number in the array, but it could be repeated more than once. - - - -Credits:Special thanks to @jianchao.li.fighter for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0287.find-the-duplicate-number/find-the-duplicate-number.go b/Algorithms/0287.find-the-duplicate-number/find-the-duplicate-number.go deleted file mode 100755 index c59d07a4d..000000000 --- a/Algorithms/0287.find-the-duplicate-number/find-the-duplicate-number.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0287 - diff --git a/Algorithms/0287.find-the-duplicate-number/find-the-duplicate-number_test.go b/Algorithms/0287.find-the-duplicate-number/find-the-duplicate-number_test.go deleted file mode 100755 index 96674dca8..000000000 --- a/Algorithms/0287.find-the-duplicate-number/find-the-duplicate-number_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0287 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0287(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0289.game-of-life/README.md b/Algorithms/0289.game-of-life/README.md deleted file mode 100755 index 3300ec7c4..000000000 --- a/Algorithms/0289.game-of-life/README.md +++ /dev/null @@ -1,41 +0,0 @@ -# [289. Game of Life](https://leetcode.com/problems/game-of-life/) - -## 题目 - - -According to the Wikipedia's article: "The Game of Life, also known simply as Life, is a cellular automaton devised by the British mathematician John Horton Conway in 1970." - - - -Given a board with m by n cells, each cell has an initial state live (1) or dead (0). Each cell interacts with its eight neighbors (horizontal, vertical, diagonal) using the following four rules (taken from the above Wikipedia article): - - - - -Any live cell with fewer than two live neighbors dies, as if caused by under-population. -Any live cell with two or three live neighbors lives on to the next generation. -Any live cell with more than three live neighbors dies, as if by over-population.. -Any dead cell with exactly three live neighbors becomes a live cell, as if by reproduction. - - - - -Write a function to compute the next state (after one update) of the board given its current state. - - -Follow up: - -Could you solve it in-place? Remember that the board needs to be updated at the same time: You cannot update some cells first and then use their updated values to update other cells. -In this question, we represent the board using a 2D array. In principle, the board is infinite, which would cause problems when the active area encroaches the border of the array. How would you address these problems? - - - -Credits:Special thanks to @jianchao.li.fighter for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0289.game-of-life/game-of-life.go b/Algorithms/0289.game-of-life/game-of-life.go deleted file mode 100755 index 3921cc79f..000000000 --- a/Algorithms/0289.game-of-life/game-of-life.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0289 - diff --git a/Algorithms/0289.game-of-life/game-of-life_test.go b/Algorithms/0289.game-of-life/game-of-life_test.go deleted file mode 100755 index 83820a4e4..000000000 --- a/Algorithms/0289.game-of-life/game-of-life_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0289 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0289(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0290.word-pattern/README.md b/Algorithms/0290.word-pattern/README.md deleted file mode 100755 index da5c2c792..000000000 --- a/Algorithms/0290.word-pattern/README.md +++ /dev/null @@ -1,30 +0,0 @@ -# [290. Word Pattern](https://leetcode.com/problems/word-pattern/) - -## 题目 - - Given a pattern and a string str, find if str follows the same pattern. - Here follow means a full match, such that there is a bijection between a letter in pattern and a non-empty word in str. - -Examples: - -pattern = "abba", str = "dog cat cat dog" should return true. -pattern = "abba", str = "dog cat cat fish" should return false. -pattern = "aaaa", str = "dog cat cat dog" should return false. -pattern = "abba", str = "dog dog dog dog" should return false. - - - - -Notes: -You may assume pattern contains only lowercase letters, and str contains lowercase letters separated by a single space. - - -Credits:Special thanks to @minglotus6 for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0290.word-pattern/word-pattern.go b/Algorithms/0290.word-pattern/word-pattern.go deleted file mode 100755 index c284b428e..000000000 --- a/Algorithms/0290.word-pattern/word-pattern.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0290 - diff --git a/Algorithms/0290.word-pattern/word-pattern_test.go b/Algorithms/0290.word-pattern/word-pattern_test.go deleted file mode 100755 index 733a7d4be..000000000 --- a/Algorithms/0290.word-pattern/word-pattern_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0290 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0290(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0292.nim-game/README.md b/Algorithms/0292.nim-game/README.md deleted file mode 100755 index b6ca1238a..000000000 --- a/Algorithms/0292.nim-game/README.md +++ /dev/null @@ -1,25 +0,0 @@ -# [292. Nim Game](https://leetcode.com/problems/nim-game/) - -## 题目 - - -You are playing the following Nim Game with your friend: There is a heap of stones on the table, each time one of you take turns to remove 1 to 3 stones. The one who removes the last stone will be the winner. You will take the first turn to remove the stones. - - - -Both of you are very clever and have optimal strategies for the game. Write a function to determine whether you can win the game given the number of stones in the heap. - - - -For example, if there are 4 stones in the heap, then you will never win the game: no matter 1, 2, or 3 stones you remove, the last stone will always be removed by your friend. - - -Credits:Special thanks to @jianchao.li.fighter for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0292.nim-game/nim-game.go b/Algorithms/0292.nim-game/nim-game.go deleted file mode 100755 index fec32970d..000000000 --- a/Algorithms/0292.nim-game/nim-game.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0292 - diff --git a/Algorithms/0292.nim-game/nim-game_test.go b/Algorithms/0292.nim-game/nim-game_test.go deleted file mode 100755 index 45e4b7b2c..000000000 --- a/Algorithms/0292.nim-game/nim-game_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0292 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0292(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0295.find-median-from-data-stream/README.md b/Algorithms/0295.find-median-from-data-stream/README.md deleted file mode 100755 index 350c6679d..000000000 --- a/Algorithms/0295.find-median-from-data-stream/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# [295. Find Median from Data Stream](https://leetcode.com/problems/find-median-from-data-stream/) - -## 题目 - - Median is the middle value in an ordered integer list. If the size of the list is even, there is no middle value. So the median is the mean of the two middle value. -Examples: -[2,3,4] , the median is 3 -[2,3], the median is (2 + 3) / 2 = 2.5 - - -Design a data structure that supports the following two operations: - - -void addNum(int num) - Add a integer number from the data stream to the data structure. -double findMedian() - Return the median of all elements so far. - - - -For example: -addNum(1) -addNum(2) -findMedian() -> 1.5 -addNum(3) -findMedian() -> 2 - - -Credits:Special thanks to @Louis1992 for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0295.find-median-from-data-stream/find-median-from-data-stream.go b/Algorithms/0295.find-median-from-data-stream/find-median-from-data-stream.go deleted file mode 100755 index 8dfe6e4e3..000000000 --- a/Algorithms/0295.find-median-from-data-stream/find-median-from-data-stream.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0295 - diff --git a/Algorithms/0295.find-median-from-data-stream/find-median-from-data-stream_test.go b/Algorithms/0295.find-median-from-data-stream/find-median-from-data-stream_test.go deleted file mode 100755 index 9f7d6bf26..000000000 --- a/Algorithms/0295.find-median-from-data-stream/find-median-from-data-stream_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0295 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0295(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0297.serialize-and-deserialize-binary-tree/README.md b/Algorithms/0297.serialize-and-deserialize-binary-tree/README.md deleted file mode 100755 index 556938e9e..000000000 --- a/Algorithms/0297.serialize-and-deserialize-binary-tree/README.md +++ /dev/null @@ -1,32 +0,0 @@ -# [297. Serialize and Deserialize Binary Tree](https://leetcode.com/problems/serialize-and-deserialize-binary-tree/) - -## 题目 - - Serialization is the process of converting a data structure or object into a sequence of bits so that it can be stored in a file or memory buffer, or transmitted across a network connection link to be reconstructed later in the same or another computer environment. - -Design an algorithm to serialize and deserialize a binary tree. There is no restriction on how your serialization/deserialization algorithm should work. You just need to ensure that a binary tree can be serialized to a string and this string can be deserialized to the original tree structure. - - -For example, you may serialize the following tree - 1 - / \ - 2 3 - / \ - 4 5 - -as "[1,2,3,null,null,4,5]", just the same as how LeetCode OJ serializes a binary tree. You do not necessarily need to follow this format, so please be creative and come up with different approaches yourself. - - - -Note: Do not use class member/global/static variables to store states. Your serialize and deserialize algorithms should be stateless. - - -Credits:Special thanks to @Louis1992 for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0297.serialize-and-deserialize-binary-tree/serialize-and-deserialize-binary-tree.go b/Algorithms/0297.serialize-and-deserialize-binary-tree/serialize-and-deserialize-binary-tree.go deleted file mode 100755 index 8b79efa9d..000000000 --- a/Algorithms/0297.serialize-and-deserialize-binary-tree/serialize-and-deserialize-binary-tree.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0297 - diff --git a/Algorithms/0297.serialize-and-deserialize-binary-tree/serialize-and-deserialize-binary-tree_test.go b/Algorithms/0297.serialize-and-deserialize-binary-tree/serialize-and-deserialize-binary-tree_test.go deleted file mode 100755 index 684899b63..000000000 --- a/Algorithms/0297.serialize-and-deserialize-binary-tree/serialize-and-deserialize-binary-tree_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0297 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0297(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0299.bulls-and-cows/README.md b/Algorithms/0299.bulls-and-cows/README.md deleted file mode 100755 index 9017c1781..000000000 --- a/Algorithms/0299.bulls-and-cows/README.md +++ /dev/null @@ -1,34 +0,0 @@ -# [299. Bulls and Cows](https://leetcode.com/problems/bulls-and-cows/) - -## 题目 - - You are playing the following Bulls and Cows game with your friend: You write down a number and ask your friend to guess what the number is. Each time your friend makes a guess, you provide a hint that indicates how many digits in said guess match your secret number exactly in both digit and position (called "bulls") and how many digits match the secret number but locate in the wrong position (called "cows"). Your friend will use successive guesses and hints to eventually derive the secret number. - - -For example: -Secret number: "1807" -Friend's guess: "7810" - -Hint: 1 bull and 3 cows. (The bull is 8, the cows are 0, 1 and 7.) - - -Write a function to return a hint according to the secret number and friend's guess, use A to indicate the bulls and B to indicate the cows. In the above example, your function should return "1A3B". - -Please note that both secret number and friend's guess may contain duplicate digits, for example: -Secret number: "1123" -Friend's guess: "0111" - -In this case, the 1st 1 in friend's guess is a bull, the 2nd or 3rd 1 is a cow, and your function should return "1A1B". - - -You may assume that the secret number and your friend's guess only contain digits, and their lengths are always equal. - -Credits:Special thanks to @jeantimex for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0299.bulls-and-cows/bulls-and-cows.go b/Algorithms/0299.bulls-and-cows/bulls-and-cows.go deleted file mode 100755 index d1b743175..000000000 --- a/Algorithms/0299.bulls-and-cows/bulls-and-cows.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0299 - diff --git a/Algorithms/0299.bulls-and-cows/bulls-and-cows_test.go b/Algorithms/0299.bulls-and-cows/bulls-and-cows_test.go deleted file mode 100755 index 62906d2b9..000000000 --- a/Algorithms/0299.bulls-and-cows/bulls-and-cows_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0299 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0299(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0300.longest-increasing-subsequence/README.md b/Algorithms/0300.longest-increasing-subsequence/README.md deleted file mode 100755 index 99d9f99e1..000000000 --- a/Algorithms/0300.longest-increasing-subsequence/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# [300. Longest Increasing Subsequence](https://leetcode.com/problems/longest-increasing-subsequence/) - -## 题目 - - -Given an unsorted array of integers, find the length of longest increasing subsequence. - - -For example, -Given [10, 9, 2, 5, 3, 7, 101, 18], -The longest increasing subsequence is [2, 3, 7, 101], therefore the length is 4. Note that there may be more than one LIS combination, it is only necessary for you to return the length. - - -Your algorithm should run in O(n2) complexity. - - -Follow up: Could you improve it to O(n log n) time complexity? - -Credits:Special thanks to @pbrother for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0300.longest-increasing-subsequence/longest-increasing-subsequence.go b/Algorithms/0300.longest-increasing-subsequence/longest-increasing-subsequence.go deleted file mode 100755 index f02216b40..000000000 --- a/Algorithms/0300.longest-increasing-subsequence/longest-increasing-subsequence.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0300 - diff --git a/Algorithms/0300.longest-increasing-subsequence/longest-increasing-subsequence_test.go b/Algorithms/0300.longest-increasing-subsequence/longest-increasing-subsequence_test.go deleted file mode 100755 index eda42381c..000000000 --- a/Algorithms/0300.longest-increasing-subsequence/longest-increasing-subsequence_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0300 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0300(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0301.remove-invalid-parentheses/README.md b/Algorithms/0301.remove-invalid-parentheses/README.md deleted file mode 100755 index 7ba230f0a..000000000 --- a/Algorithms/0301.remove-invalid-parentheses/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# [301. Remove Invalid Parentheses](https://leetcode.com/problems/remove-invalid-parentheses/) - -## 题目 - - -Remove the minimum number of invalid parentheses in order to make the input string valid. Return all possible results. - -Note: The input string may contain letters other than the parentheses ( and ). - - - -Examples: -"()())()" -> ["()()()", "(())()"] -"(a)())()" -> ["(a)()()", "(a())()"] -")(" -> [""] - - - -Credits:Special thanks to @hpplayer for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0301.remove-invalid-parentheses/remove-invalid-parentheses.go b/Algorithms/0301.remove-invalid-parentheses/remove-invalid-parentheses.go deleted file mode 100755 index e7666f681..000000000 --- a/Algorithms/0301.remove-invalid-parentheses/remove-invalid-parentheses.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0301 - diff --git a/Algorithms/0301.remove-invalid-parentheses/remove-invalid-parentheses_test.go b/Algorithms/0301.remove-invalid-parentheses/remove-invalid-parentheses_test.go deleted file mode 100755 index d615d5bb0..000000000 --- a/Algorithms/0301.remove-invalid-parentheses/remove-invalid-parentheses_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0301 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0301(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0303.range-sum-query-immutable/README.md b/Algorithms/0303.range-sum-query-immutable/README.md deleted file mode 100755 index 2ac7462fa..000000000 --- a/Algorithms/0303.range-sum-query-immutable/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# [303. Range Sum Query - Immutable](https://leetcode.com/problems/range-sum-query-immutable/) - -## 题目 - - Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j), inclusive. - -Example: -Given nums = [-2, 0, 3, -5, 2, -1] - -sumRange(0, 2) -> 1 -sumRange(2, 5) -> -1 -sumRange(0, 5) -> -3 - - - -Note: - -You may assume that the array does not change. -There are many calls to sumRange function. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0303.range-sum-query-immutable/range-sum-query-immutable.go b/Algorithms/0303.range-sum-query-immutable/range-sum-query-immutable.go deleted file mode 100755 index 03a88bb67..000000000 --- a/Algorithms/0303.range-sum-query-immutable/range-sum-query-immutable.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0303 - diff --git a/Algorithms/0303.range-sum-query-immutable/range-sum-query-immutable_test.go b/Algorithms/0303.range-sum-query-immutable/range-sum-query-immutable_test.go deleted file mode 100755 index 812f4f58d..000000000 --- a/Algorithms/0303.range-sum-query-immutable/range-sum-query-immutable_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0303 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0303(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0304.range-sum-query-2d-immutable/README.md b/Algorithms/0304.range-sum-query-2d-immutable/README.md deleted file mode 100755 index f2a71bc5c..000000000 --- a/Algorithms/0304.range-sum-query-2d-immutable/README.md +++ /dev/null @@ -1,41 +0,0 @@ -# [304. Range Sum Query 2D - Immutable](https://leetcode.com/problems/range-sum-query-2d-immutable/) - -## 题目 - - Given a 2D matrix matrix, find the sum of the elements inside the rectangle defined by its upper left corner (row1, col1) and lower right corner (row2, col2). - - - -The above rectangle (with the red border) is defined by (row1, col1) = (2, 1) and (row2, col2) = (4, 3), which contains sum = 8. - - -Example: -Given matrix = [ - [3, 0, 1, 4, 2], - [5, 6, 3, 2, 1], - [1, 2, 0, 1, 5], - [4, 1, 0, 1, 7], - [1, 0, 3, 0, 5] -] - -sumRegion(2, 1, 4, 3) -> 8 -sumRegion(1, 1, 2, 2) -> 11 -sumRegion(1, 2, 2, 4) -> 12 - - - -Note: - -You may assume that the matrix does not change. -There are many calls to sumRegion function. -You may assume that row1 ≤ row2 and col1 ≤ col2. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0304.range-sum-query-2d-immutable/range-sum-query-2d-immutable.go b/Algorithms/0304.range-sum-query-2d-immutable/range-sum-query-2d-immutable.go deleted file mode 100755 index aeac778ed..000000000 --- a/Algorithms/0304.range-sum-query-2d-immutable/range-sum-query-2d-immutable.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0304 - diff --git a/Algorithms/0304.range-sum-query-2d-immutable/range-sum-query-2d-immutable_test.go b/Algorithms/0304.range-sum-query-2d-immutable/range-sum-query-2d-immutable_test.go deleted file mode 100755 index 4387dc201..000000000 --- a/Algorithms/0304.range-sum-query-2d-immutable/range-sum-query-2d-immutable_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0304 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0304(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0306.additive-number/README.md b/Algorithms/0306.additive-number/README.md deleted file mode 100755 index 5e7a669a0..000000000 --- a/Algorithms/0306.additive-number/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# [306. Additive Number](https://leetcode.com/problems/additive-number/) - -## 题目 - - Additive number is a string whose digits can form additive sequence. - -A valid additive sequence should contain at least three numbers. Except for the first two numbers, each subsequent number in the sequence must be the sum of the preceding two. - - -For example: -"112358" is an additive number because the digits can form an additive sequence: 1, 1, 2, 3, 5, 8. -1 + 1 = 2, 1 + 2 = 3, 2 + 3 = 5, 3 + 5 = 8 -"199100199" is also an additive number, the additive sequence is: 1, 99, 100, 199. -1 + 99 = 100, 99 + 100 = 199 - - - -Note: Numbers in the additive sequence cannot have leading zeros, so sequence 1, 2, 03 or 1, 02, 3 is invalid. - - -Given a string containing only digits '0'-'9', write a function to determine if it's an additive number. - - -Follow up: -How would you handle overflow for very large input integers? - - -Credits:Special thanks to @jeantimex for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0306.additive-number/additive-number.go b/Algorithms/0306.additive-number/additive-number.go deleted file mode 100755 index 8d05ad66d..000000000 --- a/Algorithms/0306.additive-number/additive-number.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0306 - diff --git a/Algorithms/0306.additive-number/additive-number_test.go b/Algorithms/0306.additive-number/additive-number_test.go deleted file mode 100755 index 969b9c47b..000000000 --- a/Algorithms/0306.additive-number/additive-number_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0306 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0306(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0307.range-sum-query-mutable/README.md b/Algorithms/0307.range-sum-query-mutable/README.md deleted file mode 100755 index 1657ed914..000000000 --- a/Algorithms/0307.range-sum-query-mutable/README.md +++ /dev/null @@ -1,31 +0,0 @@ -# [307. Range Sum Query - Mutable](https://leetcode.com/problems/range-sum-query-mutable/) - -## 题目 - - Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j), inclusive. - -The update(i, val) function modifies nums by updating the element at index i to val. - -Example: -Given nums = [1, 3, 5] - -sumRange(0, 2) -> 9 -update(1, 2) -sumRange(0, 2) -> 8 - - - -Note: - -The array is only modifiable by the update function. -You may assume the number of calls to update and sumRange function is distributed evenly. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0307.range-sum-query-mutable/range-sum-query-mutable.go b/Algorithms/0307.range-sum-query-mutable/range-sum-query-mutable.go deleted file mode 100755 index aa20af6bf..000000000 --- a/Algorithms/0307.range-sum-query-mutable/range-sum-query-mutable.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0307 - diff --git a/Algorithms/0307.range-sum-query-mutable/range-sum-query-mutable_test.go b/Algorithms/0307.range-sum-query-mutable/range-sum-query-mutable_test.go deleted file mode 100755 index 5b8e7fa14..000000000 --- a/Algorithms/0307.range-sum-query-mutable/range-sum-query-mutable_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0307 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0307(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0309.best-time-to-buy-and-sell-stock-with-cooldown/README.md b/Algorithms/0309.best-time-to-buy-and-sell-stock-with-cooldown/README.md deleted file mode 100755 index 39063d63b..000000000 --- a/Algorithms/0309.best-time-to-buy-and-sell-stock-with-cooldown/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# [309. Best Time to Buy and Sell Stock with Cooldown](https://leetcode.com/problems/best-time-to-buy-and-sell-stock-with-cooldown/) - -## 题目 - - Say you have an array for which the ith element is the price of a given stock on day i. - -Design an algorithm to find the maximum profit. You may complete as many transactions as you like -(ie, buy one and sell one share of the stock multiple times) with the following restrictions: - - - You may not engage in multiple transactions at the same time (ie, you must sell the stock before you buy again). - After you sell your stock, you cannot buy stock on next day. (ie, cooldown 1 day) - - -Example: -prices = [1, 2, 3, 0, 2] -maxProfit = 3 -transactions = [buy, sell, cooldown, buy, sell] - - -Credits:Special thanks to @dietpepsi for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0309.best-time-to-buy-and-sell-stock-with-cooldown/best-time-to-buy-and-sell-stock-with-cooldown.go b/Algorithms/0309.best-time-to-buy-and-sell-stock-with-cooldown/best-time-to-buy-and-sell-stock-with-cooldown.go deleted file mode 100755 index 777b4f87b..000000000 --- a/Algorithms/0309.best-time-to-buy-and-sell-stock-with-cooldown/best-time-to-buy-and-sell-stock-with-cooldown.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0309 - diff --git a/Algorithms/0309.best-time-to-buy-and-sell-stock-with-cooldown/best-time-to-buy-and-sell-stock-with-cooldown_test.go b/Algorithms/0309.best-time-to-buy-and-sell-stock-with-cooldown/best-time-to-buy-and-sell-stock-with-cooldown_test.go deleted file mode 100755 index 14c6c55f8..000000000 --- a/Algorithms/0309.best-time-to-buy-and-sell-stock-with-cooldown/best-time-to-buy-and-sell-stock-with-cooldown_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0309 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0309(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0310.minimum-height-trees/README.md b/Algorithms/0310.minimum-height-trees/README.md deleted file mode 100755 index 54fe9ee2c..000000000 --- a/Algorithms/0310.minimum-height-trees/README.md +++ /dev/null @@ -1,76 +0,0 @@ -# [310. Minimum Height Trees](https://leetcode.com/problems/minimum-height-trees/) - -## 题目 - - - For a undirected graph with tree characteristics, we can choose any node as the root. The result graph is then a rooted tree. Among all possible rooted trees, those with minimum height are called minimum height trees (MHTs). - Given such a graph, write a function to find all the MHTs and return a list of their root labels. - - - - Format - The graph contains n nodes which are labeled from 0 to n - 1. - You will be given the number n and a list of undirected edges (each edge is a pair of labels). - - -You can assume that no duplicate edges will appear in edges. Since all edges are - undirected, [0, 1] is the same as [1, 0] and thus will not appear together in - edges. - - - Example 1: - - - Given n = 4, edges = [[1, 0], [1, 2], [1, 3]] - - - 0 - | - 1 - / \ - 2 3 - - - return [1] - - - - Example 2: - - - Given n = 6, edges = [[0, 3], [1, 3], [2, 3], [4, 3], [5, 4]] - - 0 1 2 - \ | / - 3 - | - 4 - | - 5 - - - return [3, 4] - - - - Note: - - - (1) According to the definition - of tree on Wikipedia: “a tree is an undirected graph in which any two vertices are connected by - exactly one path. In other words, any connected graph without simple cycles is a tree.” - - - (2) The height of a rooted tree is the number of edges on the longest downward path between the root and a - leaf. - - -Credits:Special thanks to @dietpepsi for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0310.minimum-height-trees/minimum-height-trees.go b/Algorithms/0310.minimum-height-trees/minimum-height-trees.go deleted file mode 100755 index 0d3e8441e..000000000 --- a/Algorithms/0310.minimum-height-trees/minimum-height-trees.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0310 - diff --git a/Algorithms/0310.minimum-height-trees/minimum-height-trees_test.go b/Algorithms/0310.minimum-height-trees/minimum-height-trees_test.go deleted file mode 100755 index 016b94f0d..000000000 --- a/Algorithms/0310.minimum-height-trees/minimum-height-trees_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0310 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0310(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0312.burst-balloons/README.md b/Algorithms/0312.burst-balloons/README.md deleted file mode 100755 index 82e6c30e8..000000000 --- a/Algorithms/0312.burst-balloons/README.md +++ /dev/null @@ -1,45 +0,0 @@ -# [312. Burst Balloons](https://leetcode.com/problems/burst-balloons/) - -## 题目 - - - Given n balloons, indexed from 0 to n-1. Each balloon is painted with a - number on it represented by array nums. - - You are asked to burst all the balloons. If the you burst - balloon i you will get nums[left] * nums[i] * nums[right] coins. Here left - and right are adjacent indices of i. After the burst, the left and right - then becomes adjacent. - - - Find the maximum coins you can collect by bursting the balloons wisely. - - - Note: - (1) You may imagine nums[-1] = nums[n] = 1. They are not real therefore you can not burst them. - (2) 0 ≤ n ≤ 500, 0 ≤ nums[i] ≤ 100 - - - - - Example: - - - Given [3, 1, 5, 8] - - - Return 167 - - nums = [3,1,5,8] --> [3,5,8] --> [3,8] --> [8] --> [] - coins = 3*1*5 + 3*5*8 + 1*3*8 + 1*8*1 = 167 - - -Credits:Special thanks to @dietpepsi for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0312.burst-balloons/burst-balloons.go b/Algorithms/0312.burst-balloons/burst-balloons.go deleted file mode 100755 index 6d92eb09c..000000000 --- a/Algorithms/0312.burst-balloons/burst-balloons.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0312 - diff --git a/Algorithms/0312.burst-balloons/burst-balloons_test.go b/Algorithms/0312.burst-balloons/burst-balloons_test.go deleted file mode 100755 index 86cad86a1..000000000 --- a/Algorithms/0312.burst-balloons/burst-balloons_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0312 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0312(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0313.super-ugly-number/README.md b/Algorithms/0313.super-ugly-number/README.md deleted file mode 100755 index 111b18dd6..000000000 --- a/Algorithms/0313.super-ugly-number/README.md +++ /dev/null @@ -1,32 +0,0 @@ -# [313. Super Ugly Number](https://leetcode.com/problems/super-ugly-number/) - -## 题目 - - - Write a program to find the nth super ugly number. - - - - Super ugly numbers are positive numbers whose all prime factors are in the given prime list - primes of size k. For example, [1, 2, 4, 7, 8, 13, 14, 16, 19, 26, 28, 32] - is the sequence of the first 12 super ugly numbers given primes - = [2, 7, 13, 19] of size 4. - - - - Note: - (1) 1 is a super ugly number for any given primes. - (2) The given numbers in primes are in ascending order. - (3) 0 < k ≤ 100, 0 < n ≤ 106, 0 < primes[i] < 1000. - (4) The nth super ugly number is guaranteed to fit in a 32-bit signed integer. - - -Credits:Special thanks to @dietpepsi for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0313.super-ugly-number/super-ugly-number.go b/Algorithms/0313.super-ugly-number/super-ugly-number.go deleted file mode 100755 index 9e1df5afb..000000000 --- a/Algorithms/0313.super-ugly-number/super-ugly-number.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0313 - diff --git a/Algorithms/0313.super-ugly-number/super-ugly-number_test.go b/Algorithms/0313.super-ugly-number/super-ugly-number_test.go deleted file mode 100755 index 5ed6649f7..000000000 --- a/Algorithms/0313.super-ugly-number/super-ugly-number_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0313 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0313(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0315.count-of-smaller-numbers-after-self/README.md b/Algorithms/0315.count-of-smaller-numbers-after-self/README.md deleted file mode 100755 index 1816979f7..000000000 --- a/Algorithms/0315.count-of-smaller-numbers-after-self/README.md +++ /dev/null @@ -1,31 +0,0 @@ -# [315. Count of Smaller Numbers After Self](https://leetcode.com/problems/count-of-smaller-numbers-after-self/) - -## 题目 - - -You are given an integer array nums and you have to return a new counts array. -The counts array has the property where counts[i] is -the number of smaller elements to the right of nums[i]. - - -Example: - -Given nums = [5, 2, 6, 1] - -To the right of 5 there are 2 smaller elements (2 and 1). -To the right of 2 there is only 1 smaller element (1). -To the right of 6 there is 1 smaller element (1). -To the right of 1 there is 0 smaller element. - - - -Return the array [2, 1, 1, 0]. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0315.count-of-smaller-numbers-after-self/count-of-smaller-numbers-after-self.go b/Algorithms/0315.count-of-smaller-numbers-after-self/count-of-smaller-numbers-after-self.go deleted file mode 100755 index 3a466ccfe..000000000 --- a/Algorithms/0315.count-of-smaller-numbers-after-self/count-of-smaller-numbers-after-self.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0315 - diff --git a/Algorithms/0315.count-of-smaller-numbers-after-self/count-of-smaller-numbers-after-self_test.go b/Algorithms/0315.count-of-smaller-numbers-after-self/count-of-smaller-numbers-after-self_test.go deleted file mode 100755 index a79ddca3a..000000000 --- a/Algorithms/0315.count-of-smaller-numbers-after-self/count-of-smaller-numbers-after-self_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0315 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0315(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0316.remove-duplicate-letters/README.md b/Algorithms/0316.remove-duplicate-letters/README.md deleted file mode 100755 index e98572339..000000000 --- a/Algorithms/0316.remove-duplicate-letters/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# [316. Remove Duplicate Letters](https://leetcode.com/problems/remove-duplicate-letters/) - -## 题目 - - -Given a string which contains only lowercase letters, remove duplicate letters so that every letter appear once and only once. You must make sure your result is the smallest in lexicographical order among all possible results. - - - -Example: - - -Given "bcabc" -Return "abc" - - -Given "cbacdcbc" -Return "acdb" - - -Credits:Special thanks to @dietpepsi for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0316.remove-duplicate-letters/remove-duplicate-letters.go b/Algorithms/0316.remove-duplicate-letters/remove-duplicate-letters.go deleted file mode 100755 index cd8ed2ad1..000000000 --- a/Algorithms/0316.remove-duplicate-letters/remove-duplicate-letters.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0316 - diff --git a/Algorithms/0316.remove-duplicate-letters/remove-duplicate-letters_test.go b/Algorithms/0316.remove-duplicate-letters/remove-duplicate-letters_test.go deleted file mode 100755 index b35e21aa0..000000000 --- a/Algorithms/0316.remove-duplicate-letters/remove-duplicate-letters_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0316 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0316(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0318.maximum-product-of-word-lengths/README.md b/Algorithms/0318.maximum-product-of-word-lengths/README.md deleted file mode 100755 index 514d1cc5b..000000000 --- a/Algorithms/0318.maximum-product-of-word-lengths/README.md +++ /dev/null @@ -1,44 +0,0 @@ -# [318. Maximum Product of Word Lengths](https://leetcode.com/problems/maximum-product-of-word-lengths/) - -## 题目 - - - Given a string array words, find the maximum value of length(word[i]) * length(word[j]) where the two words do not share common letters. - You may assume that each word will contain only lower case letters. - If no such two words exist, return 0. - - - - Example 1: - - - Given ["abcw", "baz", "foo", "bar", "xtfn", "abcdef"] - Return 16 - The two words can be "abcw", "xtfn". - - - Example 2: - - - Given ["a", "ab", "abc", "d", "cd", "bcd", "abcd"] - Return 4 - The two words can be "ab", "cd". - - - Example 3: - - - Given ["a", "aa", "aaa", "aaaa"] - Return 0 - No such pair of words. - - -Credits:Special thanks to @dietpepsi for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0318.maximum-product-of-word-lengths/maximum-product-of-word-lengths.go b/Algorithms/0318.maximum-product-of-word-lengths/maximum-product-of-word-lengths.go deleted file mode 100755 index 2aab8f7ca..000000000 --- a/Algorithms/0318.maximum-product-of-word-lengths/maximum-product-of-word-lengths.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0318 - diff --git a/Algorithms/0318.maximum-product-of-word-lengths/maximum-product-of-word-lengths_test.go b/Algorithms/0318.maximum-product-of-word-lengths/maximum-product-of-word-lengths_test.go deleted file mode 100755 index 425029d35..000000000 --- a/Algorithms/0318.maximum-product-of-word-lengths/maximum-product-of-word-lengths_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0318 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0318(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0319.bulb-switcher/README.md b/Algorithms/0319.bulb-switcher/README.md deleted file mode 100755 index 7985f6dbc..000000000 --- a/Algorithms/0319.bulb-switcher/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# [319. Bulb Switcher](https://leetcode.com/problems/bulb-switcher/) - -## 题目 - - -There are n bulbs that are initially off. You first turn on all the bulbs. Then, you turn off every second bulb. On the third round, you toggle every third bulb (turning on if it's off or turning off if it's on). For the ith round, you toggle every i bulb. For the nth round, you only toggle the last bulb. - -Find how many bulbs are on after n rounds. - - - -Example: -Given n = 3. -At first, the three bulbs are [off, off, off]. -After first round, the three bulbs are [on, on, on]. -After second round, the three bulbs are [on, off, on]. -After third round, the three bulbs are [on, off, off]. -So you should return 1, because there is only one bulb is on. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0319.bulb-switcher/bulb-switcher.go b/Algorithms/0319.bulb-switcher/bulb-switcher.go deleted file mode 100755 index 3b54e505c..000000000 --- a/Algorithms/0319.bulb-switcher/bulb-switcher.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0319 - diff --git a/Algorithms/0319.bulb-switcher/bulb-switcher_test.go b/Algorithms/0319.bulb-switcher/bulb-switcher_test.go deleted file mode 100755 index d875972b6..000000000 --- a/Algorithms/0319.bulb-switcher/bulb-switcher_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0319 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0319(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0321.create-maximum-number/README.md b/Algorithms/0321.create-maximum-number/README.md deleted file mode 100755 index 74d6bca45..000000000 --- a/Algorithms/0321.create-maximum-number/README.md +++ /dev/null @@ -1,47 +0,0 @@ -# [321. Create Maximum Number](https://leetcode.com/problems/create-maximum-number/) - -## 题目 - - - Given two arrays of length m and n with digits 0-9 representing two numbers. - Create the maximum number of length k <= m + n from digits of the two. The relative order of the digits - from the same array must be preserved. Return an array of the k digits. You should try to optimize your time and space complexity. - - - - Example 1: - - - nums1 = [3, 4, 6, 5] - nums2 = [9, 1, 2, 5, 8, 3] - k = 5 - return [9, 8, 6, 5, 3] - - - Example 2: - - - nums1 = [6, 7] - nums2 = [6, 0, 4] - k = 5 - return [6, 7, 6, 0, 4] - - - Example 3: - - - nums1 = [3, 9] - nums2 = [8, 9] - k = 3 - return [9, 8, 9] - - -Credits:Special thanks to @dietpepsi for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0321.create-maximum-number/create-maximum-number.go b/Algorithms/0321.create-maximum-number/create-maximum-number.go deleted file mode 100755 index d0eb205ef..000000000 --- a/Algorithms/0321.create-maximum-number/create-maximum-number.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0321 - diff --git a/Algorithms/0321.create-maximum-number/create-maximum-number_test.go b/Algorithms/0321.create-maximum-number/create-maximum-number_test.go deleted file mode 100755 index 9d2ee988d..000000000 --- a/Algorithms/0321.create-maximum-number/create-maximum-number_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0321 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0321(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0322.coin-change/README.md b/Algorithms/0322.coin-change/README.md deleted file mode 100755 index d8ba92154..000000000 --- a/Algorithms/0322.coin-change/README.md +++ /dev/null @@ -1,34 +0,0 @@ -# [322. Coin Change](https://leetcode.com/problems/coin-change/) - -## 题目 - - -You are given coins of different denominations and a total amount of money amount. Write a function to compute the fewest number of coins that you need to make up that amount. If that amount of money cannot be made up by any combination of the coins, return -1. - - - -Example 1: -coins = [1, 2, 5], amount = 11 -return 3 (11 = 5 + 5 + 1) - - - -Example 2: -coins = [2], amount = 3 -return -1. - - - -Note: -You may assume that you have an infinite number of each kind of coin. - - -Credits:Special thanks to @jianchao.li.fighter for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0322.coin-change/coin-change.go b/Algorithms/0322.coin-change/coin-change.go deleted file mode 100755 index 470dc1cda..000000000 --- a/Algorithms/0322.coin-change/coin-change.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0322 - diff --git a/Algorithms/0322.coin-change/coin-change_test.go b/Algorithms/0322.coin-change/coin-change_test.go deleted file mode 100755 index d5642db1a..000000000 --- a/Algorithms/0322.coin-change/coin-change_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0322 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0322(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0324.wiggle-sort-ii/README.md b/Algorithms/0324.wiggle-sort-ii/README.md deleted file mode 100755 index a5a462ed6..000000000 --- a/Algorithms/0324.wiggle-sort-ii/README.md +++ /dev/null @@ -1,34 +0,0 @@ -# [324. Wiggle Sort II](https://leetcode.com/problems/wiggle-sort-ii/) - -## 题目 - - - Given an unsorted array nums, reorder it such that - nums[0] < nums[1] > nums[2] < nums[3].... - - - - Example: - (1) Given nums = [1, 5, 1, 1, 6, 4], one possible answer is [1, 4, 1, 5, 1, 6]. - (2) Given nums = [1, 3, 2, 2, 3, 1], one possible answer is [2, 3, 1, 3, 1, 2]. - - - - Note: - You may assume all input has valid answer. - - - - Follow Up: - Can you do it in O(n) time and/or in-place with O(1) extra space? - - -Credits:Special thanks to @dietpepsi for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0324.wiggle-sort-ii/wiggle-sort-ii.go b/Algorithms/0324.wiggle-sort-ii/wiggle-sort-ii.go deleted file mode 100755 index 01e28e611..000000000 --- a/Algorithms/0324.wiggle-sort-ii/wiggle-sort-ii.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0324 - diff --git a/Algorithms/0324.wiggle-sort-ii/wiggle-sort-ii_test.go b/Algorithms/0324.wiggle-sort-ii/wiggle-sort-ii_test.go deleted file mode 100755 index 521b7eab4..000000000 --- a/Algorithms/0324.wiggle-sort-ii/wiggle-sort-ii_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0324 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0324(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0326.power-of-three/README.md b/Algorithms/0326.power-of-three/README.md deleted file mode 100755 index 0588204c8..000000000 --- a/Algorithms/0326.power-of-three/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# [326. Power of Three](https://leetcode.com/problems/power-of-three/) - -## 题目 - - - Given an integer, write a function to determine if it is a power of three. - - - Follow up: - Could you do it without using any loop / recursion? - - -Credits:Special thanks to @dietpepsi for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0326.power-of-three/power-of-three.go b/Algorithms/0326.power-of-three/power-of-three.go deleted file mode 100755 index 6989c95d4..000000000 --- a/Algorithms/0326.power-of-three/power-of-three.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0326 - diff --git a/Algorithms/0326.power-of-three/power-of-three_test.go b/Algorithms/0326.power-of-three/power-of-three_test.go deleted file mode 100755 index 0084050fe..000000000 --- a/Algorithms/0326.power-of-three/power-of-three_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0326 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0326(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0327.count-of-range-sum/README.md b/Algorithms/0327.count-of-range-sum/README.md deleted file mode 100755 index 07077e471..000000000 --- a/Algorithms/0327.count-of-range-sum/README.md +++ /dev/null @@ -1,31 +0,0 @@ -# [327. Count of Range Sum](https://leetcode.com/problems/count-of-range-sum/) - -## 题目 - - - Given an integer array nums, return the number of range sums that lie in [lower, upper] inclusive. - - Range sum S(i, j) is defined as the sum of the elements in nums between indices i and - j (i ? j), inclusive. - - - - Note: - A naive algorithm of O(n2) is trivial. You MUST do better than that. - - - Example: - Given nums = [-2, 5, -1], lower = -2, upper = 2, - Return 3. - The three ranges are : [0, 0], [2, 2], [0, 2] and their respective sums are: -2, -1, 2. - - -Credits:Special thanks to @dietpepsi for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0327.count-of-range-sum/count-of-range-sum.go b/Algorithms/0327.count-of-range-sum/count-of-range-sum.go deleted file mode 100755 index 645116fc5..000000000 --- a/Algorithms/0327.count-of-range-sum/count-of-range-sum.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0327 - diff --git a/Algorithms/0327.count-of-range-sum/count-of-range-sum_test.go b/Algorithms/0327.count-of-range-sum/count-of-range-sum_test.go deleted file mode 100755 index 28c356835..000000000 --- a/Algorithms/0327.count-of-range-sum/count-of-range-sum_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0327 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0327(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0328.odd-even-linked-list/README.md b/Algorithms/0328.odd-even-linked-list/README.md deleted file mode 100755 index 137a7c194..000000000 --- a/Algorithms/0328.odd-even-linked-list/README.md +++ /dev/null @@ -1,28 +0,0 @@ -# [328. Odd Even Linked List](https://leetcode.com/problems/odd-even-linked-list/) - -## 题目 - - Given a singly linked list, group all odd nodes together followed by the even nodes. Please note here we are talking about the node number and not the value in the nodes. - -You should try to do it in place. The program should run in O(1) space complexity and O(nodes) time complexity. - - -Example: -Given 1->2->3->4->5->NULL, -return 1->3->5->2->4->NULL. - - -Note: -The relative order inside both the even and odd groups should remain as it was in the input. -The first node is considered odd, the second node even and so on ... - - -Credits:Special thanks to @DjangoUnchained for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0328.odd-even-linked-list/odd-even-linked-list.go b/Algorithms/0328.odd-even-linked-list/odd-even-linked-list.go deleted file mode 100755 index e8fbcbb4f..000000000 --- a/Algorithms/0328.odd-even-linked-list/odd-even-linked-list.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0328 - diff --git a/Algorithms/0328.odd-even-linked-list/odd-even-linked-list_test.go b/Algorithms/0328.odd-even-linked-list/odd-even-linked-list_test.go deleted file mode 100755 index 6c0c4574c..000000000 --- a/Algorithms/0328.odd-even-linked-list/odd-even-linked-list_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0328 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0328(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0329.longest-increasing-path-in-a-matrix/README.md b/Algorithms/0329.longest-increasing-path-in-a-matrix/README.md deleted file mode 100755 index c4dc8dc6c..000000000 --- a/Algorithms/0329.longest-increasing-path-in-a-matrix/README.md +++ /dev/null @@ -1,48 +0,0 @@ -# [329. Longest Increasing Path in a Matrix](https://leetcode.com/problems/longest-increasing-path-in-a-matrix/) - -## 题目 - - Given an integer matrix, find the length of the longest increasing path. - - -From each cell, you can either move to four directions: left, right, up or down. You may NOT move diagonally or move outside of the boundary (i.e. wrap-around is not allowed). - - -Example 1: -nums = [ - [9,9,4], - [6,6,8], - [2,1,1] -] - - - - -Return 4 - -The longest increasing path is [1, 2, 6, 9]. - - -Example 2: -nums = [ - [3,4,5], - [3,2,6], - [2,2,1] -] - - - - -Return 4 - -The longest increasing path is [3, 4, 5, 6]. Moving diagonally is not allowed. - -Credits:Special thanks to @dietpepsi for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0329.longest-increasing-path-in-a-matrix/longest-increasing-path-in-a-matrix.go b/Algorithms/0329.longest-increasing-path-in-a-matrix/longest-increasing-path-in-a-matrix.go deleted file mode 100755 index 9e05d7bc6..000000000 --- a/Algorithms/0329.longest-increasing-path-in-a-matrix/longest-increasing-path-in-a-matrix.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0329 - diff --git a/Algorithms/0329.longest-increasing-path-in-a-matrix/longest-increasing-path-in-a-matrix_test.go b/Algorithms/0329.longest-increasing-path-in-a-matrix/longest-increasing-path-in-a-matrix_test.go deleted file mode 100755 index 9af3c6439..000000000 --- a/Algorithms/0329.longest-increasing-path-in-a-matrix/longest-increasing-path-in-a-matrix_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0329 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0329(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0330.patching-array/README.md b/Algorithms/0330.patching-array/README.md deleted file mode 100755 index ed6f4181d..000000000 --- a/Algorithms/0330.patching-array/README.md +++ /dev/null @@ -1,34 +0,0 @@ -# [330. Patching Array](https://leetcode.com/problems/patching-array/) - -## 题目 - - Given a sorted positive integer array nums and an integer n, add/patch elements to the array such that any number in range [1, n] inclusive can be formed by the sum of some elements in the array. Return the minimum number of patches required. - - -Example 1: -nums = [1, 3], n = 6 -Return 1. - -Combinations of nums are [1], [3], [1,3], which form possible sums of: 1, 3, 4. -Now if we add/patch 2 to nums, the combinations are: [1], [2], [3], [1,3], [2,3], [1,2,3]. -Possible sums are 1, 2, 3, 4, 5, 6, which now covers the range [1, 6]. -So we only need 1 patch. - -Example 2: -nums = [1, 5, 10], n = 20 -Return 2. -The two patches can be [2, 4]. - -Example 3: -nums = [1, 2, 2], n = 5 -Return 0. - -Credits:Special thanks to @dietpepsi for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0330.patching-array/patching-array.go b/Algorithms/0330.patching-array/patching-array.go deleted file mode 100755 index fd1bba924..000000000 --- a/Algorithms/0330.patching-array/patching-array.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0330 - diff --git a/Algorithms/0330.patching-array/patching-array_test.go b/Algorithms/0330.patching-array/patching-array_test.go deleted file mode 100755 index 8aa82f31c..000000000 --- a/Algorithms/0330.patching-array/patching-array_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0330 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0330(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0331.verify-preorder-serialization-of-a-binary-tree/README.md b/Algorithms/0331.verify-preorder-serialization-of-a-binary-tree/README.md deleted file mode 100755 index 5a55c987f..000000000 --- a/Algorithms/0331.verify-preorder-serialization-of-a-binary-tree/README.md +++ /dev/null @@ -1,43 +0,0 @@ -# [331. Verify Preorder Serialization of a Binary Tree](https://leetcode.com/problems/verify-preorder-serialization-of-a-binary-tree/) - -## 题目 - - One way to serialize a binary tree is to use pre-order traversal. When we encounter a non-null node, we record the node's value. If it is a null node, we record using a sentinel value such as #. - - _9_ - / \ - 3 2 - / \ / \ - 4 1 # 6 -/ \ / \ / \ -# # # # # # - - -For example, the above binary tree can be serialized to the string "9,3,4,#,#,1,#,#,2,#,6,#,#", where # represents a null node. - - -Given a string of comma separated values, verify whether it is a correct preorder traversal serialization of a binary tree. Find an algorithm without reconstructing the tree. - -Each comma separated value in the string must be either an integer or a character '#' representing null pointer. - -You may assume that the input format is always valid, for example it could never contain two consecutive commas such as "1,,3". - -Example 1: -"9,3,4,#,#,1,#,#,2,#,6,#,#" -Return true -Example 2: -"1,#" -Return false -Example 3: -"9,#,#,1" -Return false - -Credits:Special thanks to @dietpepsi for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0331.verify-preorder-serialization-of-a-binary-tree/verify-preorder-serialization-of-a-binary-tree.go b/Algorithms/0331.verify-preorder-serialization-of-a-binary-tree/verify-preorder-serialization-of-a-binary-tree.go deleted file mode 100755 index 495962d9c..000000000 --- a/Algorithms/0331.verify-preorder-serialization-of-a-binary-tree/verify-preorder-serialization-of-a-binary-tree.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0331 - diff --git a/Algorithms/0331.verify-preorder-serialization-of-a-binary-tree/verify-preorder-serialization-of-a-binary-tree_test.go b/Algorithms/0331.verify-preorder-serialization-of-a-binary-tree/verify-preorder-serialization-of-a-binary-tree_test.go deleted file mode 100755 index 3d2a77a36..000000000 --- a/Algorithms/0331.verify-preorder-serialization-of-a-binary-tree/verify-preorder-serialization-of-a-binary-tree_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0331 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0331(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0332.reconstruct-itinerary/README.md b/Algorithms/0332.reconstruct-itinerary/README.md deleted file mode 100755 index 7dba6ba8c..000000000 --- a/Algorithms/0332.reconstruct-itinerary/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# [332. Reconstruct Itinerary](https://leetcode.com/problems/reconstruct-itinerary/) - -## 题目 - - Given a list of airline tickets represented by pairs of departure and arrival airports [from, to], reconstruct the itinerary in order. All of the tickets belong to a man who departs from JFK. Thus, the itinerary must begin with JFK. - - -Note: - -If there are multiple valid itineraries, you should return the itinerary that has the smallest lexical order when read as a single string. For example, the itinerary ["JFK", "LGA"] has a smaller lexical order than ["JFK", "LGB"]. -All airports are represented by three capital letters (IATA code). -You may assume all tickets form at least one valid itinerary. - - - - - Example 1: - tickets = [["MUC", "LHR"], ["JFK", "MUC"], ["SFO", "SJC"], ["LHR", "SFO"]] - Return ["JFK", "MUC", "LHR", "SFO", "SJC"]. - - - Example 2: - tickets = [["JFK","SFO"],["JFK","ATL"],["SFO","ATL"],["ATL","JFK"],["ATL","SFO"]] - Return ["JFK","ATL","JFK","SFO","ATL","SFO"]. - Another possible reconstruction is ["JFK","SFO","ATL","JFK","ATL","SFO"]. But it is larger in lexical order. - - -Credits:Special thanks to @dietpepsi for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0332.reconstruct-itinerary/reconstruct-itinerary.go b/Algorithms/0332.reconstruct-itinerary/reconstruct-itinerary.go deleted file mode 100755 index cf745d739..000000000 --- a/Algorithms/0332.reconstruct-itinerary/reconstruct-itinerary.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0332 - diff --git a/Algorithms/0332.reconstruct-itinerary/reconstruct-itinerary_test.go b/Algorithms/0332.reconstruct-itinerary/reconstruct-itinerary_test.go deleted file mode 100755 index a8731200d..000000000 --- a/Algorithms/0332.reconstruct-itinerary/reconstruct-itinerary_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0332 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0332(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0334.increasing-triplet-subsequence/README.md b/Algorithms/0334.increasing-triplet-subsequence/README.md deleted file mode 100755 index 76c190956..000000000 --- a/Algorithms/0334.increasing-triplet-subsequence/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# [334. Increasing Triplet Subsequence](https://leetcode.com/problems/increasing-triplet-subsequence/) - -## 题目 - - -Given an unsorted array return whether an increasing subsequence of length 3 exists or not in the array. - - -Formally the function should: -Return true if there exists i, j, k -such that arr[i] < arr[j] < arr[k] given 0 ≤ i < j < k ≤ n-1 -else return false. - - - -Your algorithm should run in O(n) time complexity and O(1) space complexity. - - -Examples: -Given [1, 2, 3, 4, 5], -return true. - - -Given [5, 4, 3, 2, 1], -return false. - - -Credits:Special thanks to @DjangoUnchained for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0334.increasing-triplet-subsequence/increasing-triplet-subsequence.go b/Algorithms/0334.increasing-triplet-subsequence/increasing-triplet-subsequence.go deleted file mode 100755 index bf7d22908..000000000 --- a/Algorithms/0334.increasing-triplet-subsequence/increasing-triplet-subsequence.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0334 - diff --git a/Algorithms/0334.increasing-triplet-subsequence/increasing-triplet-subsequence_test.go b/Algorithms/0334.increasing-triplet-subsequence/increasing-triplet-subsequence_test.go deleted file mode 100755 index 6b2b37b10..000000000 --- a/Algorithms/0334.increasing-triplet-subsequence/increasing-triplet-subsequence_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0334 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0334(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0335.self-crossing/README.md b/Algorithms/0335.self-crossing/README.md deleted file mode 100755 index ffe4c362a..000000000 --- a/Algorithms/0335.self-crossing/README.md +++ /dev/null @@ -1,59 +0,0 @@ -# [335. Self Crossing](https://leetcode.com/problems/self-crossing/) - -## 题目 - - - You are given an array x of n positive numbers. You start at point (0,0) and moves x[0] metres to the north, then x[1] metres to the west, - x[2] metres to the south, - x[3] metres to the east and so on. In other words, after each move your direction changes - counter-clockwise. - - - Write a one-pass algorithm with O(1) extra space to determine, if your path crosses itself, or not. - - - -Example 1: -Given x = [2, 1, 1, 2], -????? -? ? -???????> - ? - -Return true (self crossing) - - - - -Example 2: -Given x = [1, 2, 3, 4], -???????? -? ? -? -? -?????????????> - -Return false (not self crossing) - - - - -Example 3: -Given x = [1, 1, 1, 1], -????? -? ? -?????> - -Return true (self crossing) - - - -Credits:Special thanks to @dietpepsi for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0335.self-crossing/self-crossing.go b/Algorithms/0335.self-crossing/self-crossing.go deleted file mode 100755 index b48b79922..000000000 --- a/Algorithms/0335.self-crossing/self-crossing.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0335 - diff --git a/Algorithms/0335.self-crossing/self-crossing_test.go b/Algorithms/0335.self-crossing/self-crossing_test.go deleted file mode 100755 index dc4e45a78..000000000 --- a/Algorithms/0335.self-crossing/self-crossing_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0335 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0335(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0336.palindrome-pairs/README.md b/Algorithms/0336.palindrome-pairs/README.md deleted file mode 100755 index 8f649322e..000000000 --- a/Algorithms/0336.palindrome-pairs/README.md +++ /dev/null @@ -1,30 +0,0 @@ -# [336. Palindrome Pairs](https://leetcode.com/problems/palindrome-pairs/) - -## 题目 - - - Given a list of unique words, find all pairs of distinct indices (i, j) in the given list, so that the concatenation of the two words, i.e. words[i] + words[j] is a palindrome. - - - - Example 1: - Given words = ["bat", "tab", "cat"] - Return [[0, 1], [1, 0]] - The palindromes are ["battab", "tabbat"] - - - Example 2: - Given words = ["abcd", "dcba", "lls", "s", "sssll"] - Return [[0, 1], [1, 0], [3, 2], [2, 4]] - The palindromes are ["dcbaabcd", "abcddcba", "slls", "llssssll"] - - -Credits:Special thanks to @dietpepsi for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0336.palindrome-pairs/palindrome-pairs.go b/Algorithms/0336.palindrome-pairs/palindrome-pairs.go deleted file mode 100755 index 2a60deeec..000000000 --- a/Algorithms/0336.palindrome-pairs/palindrome-pairs.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0336 - diff --git a/Algorithms/0336.palindrome-pairs/palindrome-pairs_test.go b/Algorithms/0336.palindrome-pairs/palindrome-pairs_test.go deleted file mode 100755 index f86e5a431..000000000 --- a/Algorithms/0336.palindrome-pairs/palindrome-pairs_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0336 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0336(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0337.house-robber-iii/README.md b/Algorithms/0337.house-robber-iii/README.md deleted file mode 100755 index 746c0b1ca..000000000 --- a/Algorithms/0337.house-robber-iii/README.md +++ /dev/null @@ -1,41 +0,0 @@ -# [337. House Robber III](https://leetcode.com/problems/house-robber-iii/) - -## 题目 - - -The thief has found himself a new place for his thievery again. There is only one entrance to this area, called the "root." Besides the root, each house has one and only one parent house. After a tour, the smart thief realized that "all houses in this place forms a binary tree". It will automatically contact the police if two directly-linked houses were broken into on the same night. - - - -Determine the maximum amount of money the thief can rob tonight without alerting the police. - - -Example 1: - 3 - / \ - 2 3 - \ \ - 3 1 - -Maximum amount of money the thief can rob = 3 + 3 + 1 = 7. - - -Example 2: - 3 - / \ - 4 5 - / \ \ - 1 3 1 - -Maximum amount of money the thief can rob = 4 + 5 = 9. - - -Credits:Special thanks to @dietpepsi for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0337.house-robber-iii/house-robber-iii.go b/Algorithms/0337.house-robber-iii/house-robber-iii.go deleted file mode 100755 index 2c40e3c33..000000000 --- a/Algorithms/0337.house-robber-iii/house-robber-iii.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0337 - diff --git a/Algorithms/0337.house-robber-iii/house-robber-iii_test.go b/Algorithms/0337.house-robber-iii/house-robber-iii_test.go deleted file mode 100755 index 74ade2b9e..000000000 --- a/Algorithms/0337.house-robber-iii/house-robber-iii_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0337 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0337(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0338.counting-bits/README.md b/Algorithms/0338.counting-bits/README.md deleted file mode 100755 index 49559c3ef..000000000 --- a/Algorithms/0338.counting-bits/README.md +++ /dev/null @@ -1,28 +0,0 @@ -# [338. Counting Bits](https://leetcode.com/problems/counting-bits/) - -## 题目 - - Given a non negative integer number num. For every numbers i in the range 0 ≤ i ≤ num calculate the number of 1's in their binary representation and return them as an array. - - -Example: -For num = 5 you should return [0,1,1,2,1,2]. - - -Follow up: - -It is very easy to come up with a solution with run time O(n*sizeof(integer)). But can you do it in linear time O(n) /possibly in a single pass? -Space complexity should be O(n). -Can you do it like a boss? Do it without using any builtin function like __builtin_popcount in c++ or in any other language. - - - -Credits:Special thanks to @ syedee for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0338.counting-bits/counting-bits.go b/Algorithms/0338.counting-bits/counting-bits.go deleted file mode 100755 index 64040b9c4..000000000 --- a/Algorithms/0338.counting-bits/counting-bits.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0338 - diff --git a/Algorithms/0338.counting-bits/counting-bits_test.go b/Algorithms/0338.counting-bits/counting-bits_test.go deleted file mode 100755 index 58d9ee8f5..000000000 --- a/Algorithms/0338.counting-bits/counting-bits_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0338 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0338(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0341.flatten-nested-list-iterator/README.md b/Algorithms/0341.flatten-nested-list-iterator/README.md deleted file mode 100755 index b7fe740e2..000000000 --- a/Algorithms/0341.flatten-nested-list-iterator/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# [341. Flatten Nested List Iterator](https://leetcode.com/problems/flatten-nested-list-iterator/) - -## 题目 - - Given a nested list of integers, implement an iterator to flatten it. - -Each element is either an integer, or a list -- whose elements may also be integers or other lists. - -Example 1: -Given the list [[1,1],2,[1,1]], - -By calling next repeatedly until hasNext returns false, the order of elements returned by next should be: [1,1,2,1,1]. - - - -Example 2: -Given the list [1,[4,[6]]], - -By calling next repeatedly until hasNext returns false, the order of elements returned by next should be: [1,4,6]. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0341.flatten-nested-list-iterator/flatten-nested-list-iterator.go b/Algorithms/0341.flatten-nested-list-iterator/flatten-nested-list-iterator.go deleted file mode 100755 index 0f646c723..000000000 --- a/Algorithms/0341.flatten-nested-list-iterator/flatten-nested-list-iterator.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0341 - diff --git a/Algorithms/0341.flatten-nested-list-iterator/flatten-nested-list-iterator_test.go b/Algorithms/0341.flatten-nested-list-iterator/flatten-nested-list-iterator_test.go deleted file mode 100755 index 9aa34d884..000000000 --- a/Algorithms/0341.flatten-nested-list-iterator/flatten-nested-list-iterator_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0341 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0341(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0342.power-of-four/README.md b/Algorithms/0342.power-of-four/README.md deleted file mode 100755 index 38a0b455a..000000000 --- a/Algorithms/0342.power-of-four/README.md +++ /dev/null @@ -1,23 +0,0 @@ -# [342. Power of Four](https://leetcode.com/problems/power-of-four/) - -## 题目 - - -Given an integer (signed 32 bits), write a function to check whether it is a power of 4. - -Example: -Given num = 16, return true. -Given num = 5, return false. - - -Follow up: Could you solve it without loops/recursion? - -Credits:Special thanks to @yukuairoy for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0342.power-of-four/power-of-four.go b/Algorithms/0342.power-of-four/power-of-four.go deleted file mode 100755 index 62d78590d..000000000 --- a/Algorithms/0342.power-of-four/power-of-four.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0342 - diff --git a/Algorithms/0342.power-of-four/power-of-four_test.go b/Algorithms/0342.power-of-four/power-of-four_test.go deleted file mode 100755 index 655e213aa..000000000 --- a/Algorithms/0342.power-of-four/power-of-four_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0342 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0342(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0343.integer-break/README.md b/Algorithms/0343.integer-break/README.md deleted file mode 100755 index aeee808cd..000000000 --- a/Algorithms/0343.integer-break/README.md +++ /dev/null @@ -1,25 +0,0 @@ -# [343. Integer Break](https://leetcode.com/problems/integer-break/) - -## 题目 - - -Given a positive integer n, break it into the sum of at least two positive integers and maximize the product of those integers. Return the maximum product you can get. - - - -For example, given n = 2, return 1 (2 = 1 + 1); given n = 10, return 36 (10 = 3 + 3 + 4). - - - -Note: You may assume that n is not less than 2 and not larger than 58. - - -Credits:Special thanks to @jianchao.li.fighter for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0343.integer-break/integer-break.go b/Algorithms/0343.integer-break/integer-break.go deleted file mode 100755 index 7bc22dc45..000000000 --- a/Algorithms/0343.integer-break/integer-break.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0343 - diff --git a/Algorithms/0343.integer-break/integer-break_test.go b/Algorithms/0343.integer-break/integer-break_test.go deleted file mode 100755 index 38cae0d2f..000000000 --- a/Algorithms/0343.integer-break/integer-break_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0343 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0343(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0344.reverse-string/README.md b/Algorithms/0344.reverse-string/README.md deleted file mode 100755 index 7c8d653b7..000000000 --- a/Algorithms/0344.reverse-string/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# [344. Reverse String](https://leetcode.com/problems/reverse-string/) - -## 题目 - - Write a function that takes a string as input and returns the string reversed. - - -Example: -Given s = "hello", return "olleh". - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0344.reverse-string/reverse-string.go b/Algorithms/0344.reverse-string/reverse-string.go deleted file mode 100755 index e3d2e8198..000000000 --- a/Algorithms/0344.reverse-string/reverse-string.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0344 - diff --git a/Algorithms/0344.reverse-string/reverse-string_test.go b/Algorithms/0344.reverse-string/reverse-string_test.go deleted file mode 100755 index fdc21cd60..000000000 --- a/Algorithms/0344.reverse-string/reverse-string_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0344 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0344(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0345.reverse-vowels-of-a-string/README.md b/Algorithms/0345.reverse-vowels-of-a-string/README.md deleted file mode 100755 index b403d0f08..000000000 --- a/Algorithms/0345.reverse-vowels-of-a-string/README.md +++ /dev/null @@ -1,28 +0,0 @@ -# [345. Reverse Vowels of a String](https://leetcode.com/problems/reverse-vowels-of-a-string/) - -## 题目 - - Write a function that takes a string as input and reverse only the vowels of a string. - - -Example 1: -Given s = "hello", return "holle". - - - -Example 2: -Given s = "leetcode", return "leotcede". - - - -Note: -The vowels does not include the letter "y". - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0345.reverse-vowels-of-a-string/reverse-vowels-of-a-string.go b/Algorithms/0345.reverse-vowels-of-a-string/reverse-vowels-of-a-string.go deleted file mode 100755 index eb5e2898d..000000000 --- a/Algorithms/0345.reverse-vowels-of-a-string/reverse-vowels-of-a-string.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0345 - diff --git a/Algorithms/0345.reverse-vowels-of-a-string/reverse-vowels-of-a-string_test.go b/Algorithms/0345.reverse-vowels-of-a-string/reverse-vowels-of-a-string_test.go deleted file mode 100755 index 95c96c8dc..000000000 --- a/Algorithms/0345.reverse-vowels-of-a-string/reverse-vowels-of-a-string_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0345 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0345(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0347.top-k-frequent-elements/README.md b/Algorithms/0347.top-k-frequent-elements/README.md deleted file mode 100755 index b5a9cdbd3..000000000 --- a/Algorithms/0347.top-k-frequent-elements/README.md +++ /dev/null @@ -1,24 +0,0 @@ -# [347. Top K Frequent Elements](https://leetcode.com/problems/top-k-frequent-elements/) - -## 题目 - - -Given a non-empty array of integers, return the k most frequent elements. - -For example, -Given [1,1,1,2,2,3] and k = 2, return [1,2]. - - -Note: - -You may assume k is always valid, 1 ? k ? number of unique elements. -Your algorithm's time complexity must be better than O(n log n), where n is the array's size. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0347.top-k-frequent-elements/top-k-frequent-elements.go b/Algorithms/0347.top-k-frequent-elements/top-k-frequent-elements.go deleted file mode 100755 index d3e608db4..000000000 --- a/Algorithms/0347.top-k-frequent-elements/top-k-frequent-elements.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0347 - diff --git a/Algorithms/0347.top-k-frequent-elements/top-k-frequent-elements_test.go b/Algorithms/0347.top-k-frequent-elements/top-k-frequent-elements_test.go deleted file mode 100755 index 60376baea..000000000 --- a/Algorithms/0347.top-k-frequent-elements/top-k-frequent-elements_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0347 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0347(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0349.intersection-of-two-arrays/README.md b/Algorithms/0349.intersection-of-two-arrays/README.md deleted file mode 100755 index e20ac4841..000000000 --- a/Algorithms/0349.intersection-of-two-arrays/README.md +++ /dev/null @@ -1,26 +0,0 @@ -# [349. Intersection of Two Arrays](https://leetcode.com/problems/intersection-of-two-arrays/) - -## 题目 - - -Given two arrays, write a function to compute their intersection. - - -Example: -Given nums1 = [1, 2, 2, 1], nums2 = [2, 2], return [2]. - - -Note: - -Each element in the result must be unique. -The result can be in any order. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0349.intersection-of-two-arrays/intersection-of-two-arrays.go b/Algorithms/0349.intersection-of-two-arrays/intersection-of-two-arrays.go deleted file mode 100755 index db7133c04..000000000 --- a/Algorithms/0349.intersection-of-two-arrays/intersection-of-two-arrays.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0349 - diff --git a/Algorithms/0349.intersection-of-two-arrays/intersection-of-two-arrays_test.go b/Algorithms/0349.intersection-of-two-arrays/intersection-of-two-arrays_test.go deleted file mode 100755 index 74d2105da..000000000 --- a/Algorithms/0349.intersection-of-two-arrays/intersection-of-two-arrays_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0349 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0349(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0350.intersection-of-two-arrays-ii/README.md b/Algorithms/0350.intersection-of-two-arrays-ii/README.md deleted file mode 100755 index 8cc3c156e..000000000 --- a/Algorithms/0350.intersection-of-two-arrays-ii/README.md +++ /dev/null @@ -1,34 +0,0 @@ -# [350. Intersection of Two Arrays II](https://leetcode.com/problems/intersection-of-two-arrays-ii/) - -## 题目 - - -Given two arrays, write a function to compute their intersection. - - -Example: -Given nums1 = [1, 2, 2, 1], nums2 = [2, 2], return [2, 2]. - - -Note: - -Each element in the result should appear as many times as it shows in both arrays. -The result can be in any order. - - - -Follow up: - -What if the given array is already sorted? How would you optimize your algorithm? -What if nums1's size is small compared to nums2's size? Which algorithm is better? -What if elements of nums2 are stored on disk, and the memory is limited such that you cannot load all elements into the memory at once? - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0350.intersection-of-two-arrays-ii/intersection-of-two-arrays-ii.go b/Algorithms/0350.intersection-of-two-arrays-ii/intersection-of-two-arrays-ii.go deleted file mode 100755 index 6a17bdb3b..000000000 --- a/Algorithms/0350.intersection-of-two-arrays-ii/intersection-of-two-arrays-ii.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0350 - diff --git a/Algorithms/0350.intersection-of-two-arrays-ii/intersection-of-two-arrays-ii_test.go b/Algorithms/0350.intersection-of-two-arrays-ii/intersection-of-two-arrays-ii_test.go deleted file mode 100755 index be39e9798..000000000 --- a/Algorithms/0350.intersection-of-two-arrays-ii/intersection-of-two-arrays-ii_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0350 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0350(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0352.data-stream-as-disjoint-intervals/README.md b/Algorithms/0352.data-stream-as-disjoint-intervals/README.md deleted file mode 100755 index 764a74e24..000000000 --- a/Algorithms/0352.data-stream-as-disjoint-intervals/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# [352. Data Stream as Disjoint Intervals](https://leetcode.com/problems/data-stream-as-disjoint-intervals/) - -## 题目 - - Given a data stream input of non-negative integers a1, a2, ..., an, ..., summarize the numbers seen so far as a list of disjoint intervals. - -For example, suppose the integers from the data stream are 1, 3, 7, 2, 6, ..., then the summary will be: -[1, 1] -[1, 1], [3, 3] -[1, 1], [3, 3], [7, 7] -[1, 3], [7, 7] -[1, 3], [6, 7] - - -Follow up: -What if there are lots of merges and the number of disjoint intervals are small compared to the data stream's size? - - -Credits:Special thanks to @yunhong for adding this problem and creating most of the test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0352.data-stream-as-disjoint-intervals/data-stream-as-disjoint-intervals.go b/Algorithms/0352.data-stream-as-disjoint-intervals/data-stream-as-disjoint-intervals.go deleted file mode 100755 index 66f12abf7..000000000 --- a/Algorithms/0352.data-stream-as-disjoint-intervals/data-stream-as-disjoint-intervals.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0352 - diff --git a/Algorithms/0352.data-stream-as-disjoint-intervals/data-stream-as-disjoint-intervals_test.go b/Algorithms/0352.data-stream-as-disjoint-intervals/data-stream-as-disjoint-intervals_test.go deleted file mode 100755 index 8cbe2d2a6..000000000 --- a/Algorithms/0352.data-stream-as-disjoint-intervals/data-stream-as-disjoint-intervals_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0352 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0352(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0354.russian-doll-envelopes/README.md b/Algorithms/0354.russian-doll-envelopes/README.md deleted file mode 100755 index bb6961eb7..000000000 --- a/Algorithms/0354.russian-doll-envelopes/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# [354. Russian Doll Envelopes](https://leetcode.com/problems/russian-doll-envelopes/) - -## 题目 - - You have a number of envelopes with widths and heights given as a pair of integers (w, h). One envelope can fit into another if and only if both the width and height of one envelope is greater than the width and height of the other envelope. - - -What is the maximum number of envelopes can you Russian doll? (put one inside other) - - -Example: -Given envelopes = [[5,4],[6,4],[6,7],[2,3]], the maximum number of envelopes you can Russian doll is 3 ([2,3] => [5,4] => [6,7]). - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0354.russian-doll-envelopes/russian-doll-envelopes.go b/Algorithms/0354.russian-doll-envelopes/russian-doll-envelopes.go deleted file mode 100755 index 7ebd79bab..000000000 --- a/Algorithms/0354.russian-doll-envelopes/russian-doll-envelopes.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0354 - diff --git a/Algorithms/0354.russian-doll-envelopes/russian-doll-envelopes_test.go b/Algorithms/0354.russian-doll-envelopes/russian-doll-envelopes_test.go deleted file mode 100755 index 30fb91bdb..000000000 --- a/Algorithms/0354.russian-doll-envelopes/russian-doll-envelopes_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0354 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0354(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0355.design-twitter/README.md b/Algorithms/0355.design-twitter/README.md deleted file mode 100755 index cf70c3976..000000000 --- a/Algorithms/0355.design-twitter/README.md +++ /dev/null @@ -1,50 +0,0 @@ -# [355. Design Twitter](https://leetcode.com/problems/design-twitter/) - -## 题目 - - Design a simplified version of Twitter where users can post tweets, follow/unfollow another user and is able to see the 10 most recent tweets in the user's news feed. Your design should support the following methods: - - - -postTweet(userId, tweetId): Compose a new tweet. -getNewsFeed(userId): Retrieve the 10 most recent tweet ids in the user's news feed. Each item in the news feed must be posted by users who the user followed or by the user herself. Tweets must be ordered from most recent to least recent. -follow(followerId, followeeId): Follower follows a followee. -unfollow(followerId, followeeId): Follower unfollows a followee. - - - -Example: -Twitter twitter = new Twitter(); - -// User 1 posts a new tweet (id = 5). -twitter.postTweet(1, 5); - -// User 1's news feed should return a list with 1 tweet id -> [5]. -twitter.getNewsFeed(1); - -// User 1 follows user 2. -twitter.follow(1, 2); - -// User 2 posts a new tweet (id = 6). -twitter.postTweet(2, 6); - -// User 1's news feed should return a list with 2 tweet ids -> [6, 5]. -// Tweet id 6 should precede tweet id 5 because it is posted after tweet id 5. -twitter.getNewsFeed(1); - -// User 1 unfollows user 2. -twitter.unfollow(1, 2); - -// User 1's news feed should return a list with 1 tweet id -> [5], -// since user 1 is no longer following user 2. -twitter.getNewsFeed(1); - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0355.design-twitter/design-twitter.go b/Algorithms/0355.design-twitter/design-twitter.go deleted file mode 100755 index 91641e2cb..000000000 --- a/Algorithms/0355.design-twitter/design-twitter.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0355 - diff --git a/Algorithms/0355.design-twitter/design-twitter_test.go b/Algorithms/0355.design-twitter/design-twitter_test.go deleted file mode 100755 index 8c81618a9..000000000 --- a/Algorithms/0355.design-twitter/design-twitter_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0355 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0355(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0357.count-numbers-with-unique-digits/README.md b/Algorithms/0357.count-numbers-with-unique-digits/README.md deleted file mode 100755 index 56a397c97..000000000 --- a/Algorithms/0357.count-numbers-with-unique-digits/README.md +++ /dev/null @@ -1,20 +0,0 @@ -# [357. Count Numbers with Unique Digits](https://leetcode.com/problems/count-numbers-with-unique-digits/) - -## 题目 - - Given a non-negative integer n, count all numbers with unique digits, x, where 0 ≤ x < 10n. - - - Example: -Given n = 2, return 91. (The answer should be the total numbers in the range of 0 ≤ x < 100, excluding [11,22,33,44,55,66,77,88,99]) - - -Credits:Special thanks to @memoryless for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0357.count-numbers-with-unique-digits/count-numbers-with-unique-digits.go b/Algorithms/0357.count-numbers-with-unique-digits/count-numbers-with-unique-digits.go deleted file mode 100755 index 3e2e4ada5..000000000 --- a/Algorithms/0357.count-numbers-with-unique-digits/count-numbers-with-unique-digits.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0357 - diff --git a/Algorithms/0357.count-numbers-with-unique-digits/count-numbers-with-unique-digits_test.go b/Algorithms/0357.count-numbers-with-unique-digits/count-numbers-with-unique-digits_test.go deleted file mode 100755 index 4e02e8b2e..000000000 --- a/Algorithms/0357.count-numbers-with-unique-digits/count-numbers-with-unique-digits_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0357 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0357(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0363.max-sum-of-rectangle-no-larger-than-k/README.md b/Algorithms/0363.max-sum-of-rectangle-no-larger-than-k/README.md deleted file mode 100755 index e79f1a45b..000000000 --- a/Algorithms/0363.max-sum-of-rectangle-no-larger-than-k/README.md +++ /dev/null @@ -1,33 +0,0 @@ -# [363. Max Sum of Rectangle No Larger Than K](https://leetcode.com/problems/max-sum-of-rectangle-no-larger-than-k/) - -## 题目 - - Given a non-empty 2D matrix matrix and an integer k, find the max sum of a rectangle in the matrix such that its sum is no larger than k. - -Example: -Given matrix = [ - [1, 0, 1], - [0, -2, 3] -] -k = 2 - - - -The answer is 2. Because the sum of rectangle [[0, 1], [-2, 3]] is 2 and 2 is the max number no larger than k (k = 2). - -Note: - -The rectangle inside the matrix must have an area > 0. -What if the number of rows is much larger than the number of columns? - - - -Credits:Special thanks to @fujiaozhu for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0363.max-sum-of-rectangle-no-larger-than-k/max-sum-of-rectangle-no-larger-than-k.go b/Algorithms/0363.max-sum-of-rectangle-no-larger-than-k/max-sum-of-rectangle-no-larger-than-k.go deleted file mode 100755 index 5d1555ce2..000000000 --- a/Algorithms/0363.max-sum-of-rectangle-no-larger-than-k/max-sum-of-rectangle-no-larger-than-k.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0363 - diff --git a/Algorithms/0363.max-sum-of-rectangle-no-larger-than-k/max-sum-of-rectangle-no-larger-than-k_test.go b/Algorithms/0363.max-sum-of-rectangle-no-larger-than-k/max-sum-of-rectangle-no-larger-than-k_test.go deleted file mode 100755 index 1152764ff..000000000 --- a/Algorithms/0363.max-sum-of-rectangle-no-larger-than-k/max-sum-of-rectangle-no-larger-than-k_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0363 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0363(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0365.water-and-jug-problem/README.md b/Algorithms/0365.water-and-jug-problem/README.md deleted file mode 100755 index 042e2b29a..000000000 --- a/Algorithms/0365.water-and-jug-problem/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# [365. Water and Jug Problem](https://leetcode.com/problems/water-and-jug-problem/) - -## 题目 - - You are given two jugs with capacities x and y litres. There is an infinite amount of water supply available. -You need to determine whether it is possible to measure exactly z litres using these two jugs. - -If z liters of water is measurable, you must have z liters of water contained within one or both buckets by the end. - - -Operations allowed: - -Fill any of the jugs completely with water. -Empty any of the jugs. -Pour water from one jug into another till the other jug is completely full or the first jug itself is empty. - - - -Example 1: (From the famous "Die Hard" example) -Input: x = 3, y = 5, z = 4 -Output: True - - - -Example 2: -Input: x = 2, y = 6, z = 5 -Output: False - - - -Credits:Special thanks to @vinod23 for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0365.water-and-jug-problem/water-and-jug-problem.go b/Algorithms/0365.water-and-jug-problem/water-and-jug-problem.go deleted file mode 100755 index 7a070ebe1..000000000 --- a/Algorithms/0365.water-and-jug-problem/water-and-jug-problem.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0365 - diff --git a/Algorithms/0365.water-and-jug-problem/water-and-jug-problem_test.go b/Algorithms/0365.water-and-jug-problem/water-and-jug-problem_test.go deleted file mode 100755 index 7f250974f..000000000 --- a/Algorithms/0365.water-and-jug-problem/water-and-jug-problem_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0365 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0365(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0367.valid-perfect-square/README.md b/Algorithms/0367.valid-perfect-square/README.md deleted file mode 100755 index c55235eae..000000000 --- a/Algorithms/0367.valid-perfect-square/README.md +++ /dev/null @@ -1,31 +0,0 @@ -# [367. Valid Perfect Square](https://leetcode.com/problems/valid-perfect-square/) - -## 题目 - - Given a positive integer num, write a function which returns True if num is a perfect square else False. - - -Note: Do not use any built-in library function such as sqrt. - - -Example 1: -Input: 16 -Returns: True - - - -Example 2: -Input: 14 -Returns: False - - - -Credits:Special thanks to @elmirap for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0367.valid-perfect-square/valid-perfect-square.go b/Algorithms/0367.valid-perfect-square/valid-perfect-square.go deleted file mode 100755 index fe0899b77..000000000 --- a/Algorithms/0367.valid-perfect-square/valid-perfect-square.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0367 - diff --git a/Algorithms/0367.valid-perfect-square/valid-perfect-square_test.go b/Algorithms/0367.valid-perfect-square/valid-perfect-square_test.go deleted file mode 100755 index 35b9c5caf..000000000 --- a/Algorithms/0367.valid-perfect-square/valid-perfect-square_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0367 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0367(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0368.largest-divisible-subset/README.md b/Algorithms/0368.largest-divisible-subset/README.md deleted file mode 100755 index a26752a30..000000000 --- a/Algorithms/0368.largest-divisible-subset/README.md +++ /dev/null @@ -1,34 +0,0 @@ -# [368. Largest Divisible Subset](https://leetcode.com/problems/largest-divisible-subset/) - -## 题目 - - -Given a set of distinct positive integers, find the largest subset such that every pair (Si, Sj) of elements in this subset satisfies: Si % Sj = 0 or Sj % Si = 0. - - -If there are multiple solutions, return any subset is fine. - - -Example 1: -nums: [1,2,3] - -Result: [1,2] (of course, [1,3] will also be ok) - - - -Example 2: -nums: [1,2,4,8] - -Result: [1,2,4,8] - - - -Credits:Special thanks to @Stomach_ache for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0368.largest-divisible-subset/largest-divisible-subset.go b/Algorithms/0368.largest-divisible-subset/largest-divisible-subset.go deleted file mode 100755 index a47497c54..000000000 --- a/Algorithms/0368.largest-divisible-subset/largest-divisible-subset.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0368 - diff --git a/Algorithms/0368.largest-divisible-subset/largest-divisible-subset_test.go b/Algorithms/0368.largest-divisible-subset/largest-divisible-subset_test.go deleted file mode 100755 index fd58cf179..000000000 --- a/Algorithms/0368.largest-divisible-subset/largest-divisible-subset_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0368 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0368(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0371.sum-of-two-integers/README.md b/Algorithms/0371.sum-of-two-integers/README.md deleted file mode 100755 index a5d17b1f7..000000000 --- a/Algorithms/0371.sum-of-two-integers/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# [371. Sum of Two Integers](https://leetcode.com/problems/sum-of-two-integers/) - -## 题目 - - Calculate the sum of two integers a and b, but you are not allowed to use the operator + and -. - -Example: -Given a = 1 and b = 2, return 3. - - -Credits:Special thanks to @fujiaozhu for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0371.sum-of-two-integers/sum-of-two-integers.go b/Algorithms/0371.sum-of-two-integers/sum-of-two-integers.go deleted file mode 100755 index e92500eec..000000000 --- a/Algorithms/0371.sum-of-two-integers/sum-of-two-integers.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0371 - diff --git a/Algorithms/0371.sum-of-two-integers/sum-of-two-integers_test.go b/Algorithms/0371.sum-of-two-integers/sum-of-two-integers_test.go deleted file mode 100755 index 1243060c2..000000000 --- a/Algorithms/0371.sum-of-two-integers/sum-of-two-integers_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0371 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0371(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0372.super-pow/README.md b/Algorithms/0372.super-pow/README.md deleted file mode 100755 index 540f4f78f..000000000 --- a/Algorithms/0372.super-pow/README.md +++ /dev/null @@ -1,33 +0,0 @@ -# [372. Super Pow](https://leetcode.com/problems/super-pow/) - -## 题目 - - -Your task is to calculate ab mod 1337 where a is a positive integer and b is an extremely large positive integer given in the form of an array. - - -Example1: -a = 2 -b = [3] - -Result: 8 - - - -Example2: -a = 2 -b = [1,0] - -Result: 1024 - - - -Credits:Special thanks to @Stomach_ache for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0372.super-pow/super-pow.go b/Algorithms/0372.super-pow/super-pow.go deleted file mode 100755 index e50bb64f8..000000000 --- a/Algorithms/0372.super-pow/super-pow.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0372 - diff --git a/Algorithms/0372.super-pow/super-pow_test.go b/Algorithms/0372.super-pow/super-pow_test.go deleted file mode 100755 index 5f2712895..000000000 --- a/Algorithms/0372.super-pow/super-pow_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0372 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0372(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0373.find-k-pairs-with-smallest-sums/README.md b/Algorithms/0373.find-k-pairs-with-smallest-sums/README.md deleted file mode 100755 index 5abda1b7d..000000000 --- a/Algorithms/0373.find-k-pairs-with-smallest-sums/README.md +++ /dev/null @@ -1,52 +0,0 @@ -# [373. Find K Pairs with Smallest Sums](https://leetcode.com/problems/find-k-pairs-with-smallest-sums/) - -## 题目 - - -You are given two integer arrays nums1 and nums2 sorted in ascending order and an integer k. - - -Define a pair (u,v) which consists of one element from the first array and one element from the second array. - -Find the k pairs (u1,v1),(u2,v2) ...(uk,vk) with the smallest sums. - - -Example 1: -Given nums1 = [1,7,11], nums2 = [2,4,6], k = 3 - -Return: [1,2],[1,4],[1,6] - -The first 3 pairs are returned from the sequence: -[1,2],[1,4],[1,6],[7,2],[7,4],[11,2],[7,6],[11,4],[11,6] - - - -Example 2: -Given nums1 = [1,1,2], nums2 = [1,2,3], k = 2 - -Return: [1,1],[1,1] - -The first 2 pairs are returned from the sequence: -[1,1],[1,1],[1,2],[2,1],[1,2],[2,2],[1,3],[1,3],[2,3] - - - -Example 3: -Given nums1 = [1,2], nums2 = [3], k = 3 - -Return: [1,3],[2,3] - -All possible pairs are returned from the sequence: -[1,3],[2,3] - - - -Credits:Special thanks to @elmirap and @StefanPochmann for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0373.find-k-pairs-with-smallest-sums/find-k-pairs-with-smallest-sums.go b/Algorithms/0373.find-k-pairs-with-smallest-sums/find-k-pairs-with-smallest-sums.go deleted file mode 100755 index d9c18f915..000000000 --- a/Algorithms/0373.find-k-pairs-with-smallest-sums/find-k-pairs-with-smallest-sums.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0373 - diff --git a/Algorithms/0373.find-k-pairs-with-smallest-sums/find-k-pairs-with-smallest-sums_test.go b/Algorithms/0373.find-k-pairs-with-smallest-sums/find-k-pairs-with-smallest-sums_test.go deleted file mode 100755 index a58e2ced5..000000000 --- a/Algorithms/0373.find-k-pairs-with-smallest-sums/find-k-pairs-with-smallest-sums_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0373 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0373(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0374.guess-number-higher-or-lower/README.md b/Algorithms/0374.guess-number-higher-or-lower/README.md deleted file mode 100755 index aa2b781ab..000000000 --- a/Algorithms/0374.guess-number-higher-or-lower/README.md +++ /dev/null @@ -1,30 +0,0 @@ -# [374. Guess Number Higher or Lower](https://leetcode.com/problems/guess-number-higher-or-lower/) - -## 题目 - - We are playing the Guess Game. The game is as follows: - -I pick a number from 1 to n. You have to guess which number I picked. - -Every time you guess wrong, I'll tell you whether the number is higher or lower. - -You call a pre-defined API guess(int num) which returns 3 possible results (-1, 1, or 0): --1 : My number is lower - 1 : My number is higher - 0 : Congrats! You got it! - - -Example: -n = 10, I pick 6. - -Return 6. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0374.guess-number-higher-or-lower/guess-number-higher-or-lower.go b/Algorithms/0374.guess-number-higher-or-lower/guess-number-higher-or-lower.go deleted file mode 100755 index 17a165e9a..000000000 --- a/Algorithms/0374.guess-number-higher-or-lower/guess-number-higher-or-lower.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0374 - diff --git a/Algorithms/0374.guess-number-higher-or-lower/guess-number-higher-or-lower_test.go b/Algorithms/0374.guess-number-higher-or-lower/guess-number-higher-or-lower_test.go deleted file mode 100755 index eae668caa..000000000 --- a/Algorithms/0374.guess-number-higher-or-lower/guess-number-higher-or-lower_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0374 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0374(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0375.guess-number-higher-or-lower-ii/README.md b/Algorithms/0375.guess-number-higher-or-lower-ii/README.md deleted file mode 100755 index e4a23638e..000000000 --- a/Algorithms/0375.guess-number-higher-or-lower-ii/README.md +++ /dev/null @@ -1,37 +0,0 @@ -# [375. Guess Number Higher or Lower II](https://leetcode.com/problems/guess-number-higher-or-lower-ii/) - -## 题目 - - We are playing the Guess Game. The game is as follows: - -I pick a number from 1 to n. You have to guess which number I picked. - -Every time you guess wrong, I'll tell you whether the number I picked is higher or lower. - -However, when you guess a particular number x, and you guess wrong, you pay $x. You win the game when you guess the number I picked. - - -Example: -n = 10, I pick 8. - -First round: You guess 5, I tell you that it's higher. You pay $5. -Second round: You guess 7, I tell you that it's higher. You pay $7. -Third round: You guess 9, I tell you that it's lower. You pay $9. - -Game over. 8 is the number I picked. - -You end up paying $5 + $7 + $9 = $21. - - - -Given a particular n ≥ 1, find out how much money you need to have to guarantee a win. - -Credits:Special thanks to @agave and @StefanPochmann for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0375.guess-number-higher-or-lower-ii/guess-number-higher-or-lower-ii.go b/Algorithms/0375.guess-number-higher-or-lower-ii/guess-number-higher-or-lower-ii.go deleted file mode 100755 index b2c882857..000000000 --- a/Algorithms/0375.guess-number-higher-or-lower-ii/guess-number-higher-or-lower-ii.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0375 - diff --git a/Algorithms/0375.guess-number-higher-or-lower-ii/guess-number-higher-or-lower-ii_test.go b/Algorithms/0375.guess-number-higher-or-lower-ii/guess-number-higher-or-lower-ii_test.go deleted file mode 100755 index f8591ca70..000000000 --- a/Algorithms/0375.guess-number-higher-or-lower-ii/guess-number-higher-or-lower-ii_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0375 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0375(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0376.wiggle-subsequence/README.md b/Algorithms/0376.wiggle-subsequence/README.md deleted file mode 100755 index f9585b28f..000000000 --- a/Algorithms/0376.wiggle-subsequence/README.md +++ /dev/null @@ -1,37 +0,0 @@ -# [376. Wiggle Subsequence](https://leetcode.com/problems/wiggle-subsequence/) - -## 题目 - - A sequence of numbers is called a wiggle sequence if the differences between successive numbers strictly alternate between positive and negative. The first difference (if one exists) may be either positive or negative. A sequence with fewer than two elements is trivially a wiggle sequence. - -For example, [1,7,4,9,2,5] is a wiggle sequence because the differences (6,-3,5,-7,3) are alternately positive and negative. In contrast, [1,4,7,2,5] and [1,7,4,5,5] are not wiggle sequences, the first because its first two differences are positive and the second because its last difference is zero. - -Given a sequence of integers, return the length of the longest subsequence that is a wiggle sequence. A subsequence is obtained by deleting some number of elements (eventually, also zero) from the original sequence, leaving the remaining elements in their original order. - -Examples: -Input: [1,7,4,9,2,5] -Output: 6 -The entire sequence is a wiggle sequence. - -Input: [1,17,5,10,13,15,10,5,16,8] -Output: 7 -There are several subsequences that achieve this length. One is [1,17,10,13,10,16,8]. - -Input: [1,2,3,4,5,6,7,8,9] -Output: 2 - - - -Follow up: -Can you do it in O(n) time? - - -Credits:Special thanks to @agave and @StefanPochmann for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0376.wiggle-subsequence/wiggle-subsequence.go b/Algorithms/0376.wiggle-subsequence/wiggle-subsequence.go deleted file mode 100755 index b7f400dc5..000000000 --- a/Algorithms/0376.wiggle-subsequence/wiggle-subsequence.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0376 - diff --git a/Algorithms/0376.wiggle-subsequence/wiggle-subsequence_test.go b/Algorithms/0376.wiggle-subsequence/wiggle-subsequence_test.go deleted file mode 100755 index 08a375188..000000000 --- a/Algorithms/0376.wiggle-subsequence/wiggle-subsequence_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0376 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0376(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0377.combination-sum-iv/README.md b/Algorithms/0377.combination-sum-iv/README.md deleted file mode 100755 index d58315bd7..000000000 --- a/Algorithms/0377.combination-sum-iv/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# [377. Combination Sum IV](https://leetcode.com/problems/combination-sum-iv/) - -## 题目 - - Given an integer array with all positive numbers and no duplicates, find the number of possible combinations that add up to a positive integer target. - -Example: -nums = [1, 2, 3] -target = 4 - -The possible combination ways are: -(1, 1, 1, 1) -(1, 1, 2) -(1, 2, 1) -(1, 3) -(2, 1, 1) -(2, 2) -(3, 1) - -Note that different sequences are counted as different combinations. - -Therefore the output is 7. - - - -Follow up: -What if negative numbers are allowed in the given array? -How does it change the problem? -What limitation we need to add to the question to allow negative numbers? - -Credits:Special thanks to @pbrother for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0377.combination-sum-iv/combination-sum-iv.go b/Algorithms/0377.combination-sum-iv/combination-sum-iv.go deleted file mode 100755 index ad7481584..000000000 --- a/Algorithms/0377.combination-sum-iv/combination-sum-iv.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0377 - diff --git a/Algorithms/0377.combination-sum-iv/combination-sum-iv_test.go b/Algorithms/0377.combination-sum-iv/combination-sum-iv_test.go deleted file mode 100755 index edb2809ff..000000000 --- a/Algorithms/0377.combination-sum-iv/combination-sum-iv_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0377 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0377(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0378.kth-smallest-element-in-a-sorted-matrix/README.md b/Algorithms/0378.kth-smallest-element-in-a-sorted-matrix/README.md deleted file mode 100755 index 6790edea2..000000000 --- a/Algorithms/0378.kth-smallest-element-in-a-sorted-matrix/README.md +++ /dev/null @@ -1,32 +0,0 @@ -# [378. Kth Smallest Element in a Sorted Matrix](https://leetcode.com/problems/kth-smallest-element-in-a-sorted-matrix/) - -## 题目 - - Given a n x n matrix where each of the rows and columns are sorted in ascending order, find the kth smallest element in the matrix. - - -Note that it is the kth smallest element in the sorted order, not the kth distinct element. - - -Example: -matrix = [ - [ 1, 5, 9], - [10, 11, 13], - [12, 13, 15] -], -k = 8, - -return 13. - - - -Note: -You may assume k is always valid, 1 ? k ? n2. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0378.kth-smallest-element-in-a-sorted-matrix/kth-smallest-element-in-a-sorted-matrix.go b/Algorithms/0378.kth-smallest-element-in-a-sorted-matrix/kth-smallest-element-in-a-sorted-matrix.go deleted file mode 100755 index cbd5a3742..000000000 --- a/Algorithms/0378.kth-smallest-element-in-a-sorted-matrix/kth-smallest-element-in-a-sorted-matrix.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0378 - diff --git a/Algorithms/0378.kth-smallest-element-in-a-sorted-matrix/kth-smallest-element-in-a-sorted-matrix_test.go b/Algorithms/0378.kth-smallest-element-in-a-sorted-matrix/kth-smallest-element-in-a-sorted-matrix_test.go deleted file mode 100755 index 5061dfa96..000000000 --- a/Algorithms/0378.kth-smallest-element-in-a-sorted-matrix/kth-smallest-element-in-a-sorted-matrix_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0378 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0378(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0380.insert-delete-getrandom-o1/README.md b/Algorithms/0380.insert-delete-getrandom-o1/README.md deleted file mode 100755 index eb5b99fc1..000000000 --- a/Algorithms/0380.insert-delete-getrandom-o1/README.md +++ /dev/null @@ -1,48 +0,0 @@ -# [380. Insert Delete GetRandom O(1)](https://leetcode.com/problems/insert-delete-getrandom-o1/) - -## 题目 - - Design a data structure that supports all following operations in average O(1) time. - - - -insert(val): Inserts an item val to the set if not already present. -remove(val): Removes an item val from the set if present. -getRandom: Returns a random element from current set of elements. Each element must have the same probability of being returned. - - - -Example: -// Init an empty set. -RandomizedSet randomSet = new RandomizedSet(); - -// Inserts 1 to the set. Returns true as 1 was inserted successfully. -randomSet.insert(1); - -// Returns false as 2 does not exist in the set. -randomSet.remove(2); - -// Inserts 2 to the set, returns true. Set now contains [1,2]. -randomSet.insert(2); - -// getRandom should return either 1 or 2 randomly. -randomSet.getRandom(); - -// Removes 1 from the set, returns true. Set now contains [2]. -randomSet.remove(1); - -// 2 was already in the set, so return false. -randomSet.insert(2); - -// Since 2 is the only number in the set, getRandom always return 2. -randomSet.getRandom(); - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0380.insert-delete-getrandom-o1/insert-delete-getrandom-o1.go b/Algorithms/0380.insert-delete-getrandom-o1/insert-delete-getrandom-o1.go deleted file mode 100755 index 9771ae2de..000000000 --- a/Algorithms/0380.insert-delete-getrandom-o1/insert-delete-getrandom-o1.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0380 - diff --git a/Algorithms/0380.insert-delete-getrandom-o1/insert-delete-getrandom-o1_test.go b/Algorithms/0380.insert-delete-getrandom-o1/insert-delete-getrandom-o1_test.go deleted file mode 100755 index 067ec303c..000000000 --- a/Algorithms/0380.insert-delete-getrandom-o1/insert-delete-getrandom-o1_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0380 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0380(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0381.insert-delete-getrandom-o1-duplicates-allowed/README.md b/Algorithms/0381.insert-delete-getrandom-o1-duplicates-allowed/README.md deleted file mode 100755 index 60dc47ef3..000000000 --- a/Algorithms/0381.insert-delete-getrandom-o1-duplicates-allowed/README.md +++ /dev/null @@ -1,45 +0,0 @@ -# [381. Insert Delete GetRandom O(1) - Duplicates allowed](https://leetcode.com/problems/insert-delete-getrandom-o1-duplicates-allowed/) - -## 题目 - - Design a data structure that supports all following operations in average O(1) time. -Note: Duplicate elements are allowed. - - -insert(val): Inserts an item val to the collection. -remove(val): Removes an item val from the collection if present. -getRandom: Returns a random element from current collection of elements. The probability of each element being returned is linearly related to the number of same value the collection contains. - - - -Example: -// Init an empty collection. -RandomizedCollection collection = new RandomizedCollection(); - -// Inserts 1 to the collection. Returns true as the collection did not contain 1. -collection.insert(1); - -// Inserts another 1 to the collection. Returns false as the collection contained 1. Collection now contains [1,1]. -collection.insert(1); - -// Inserts 2 to the collection, returns true. Collection now contains [1,1,2]. -collection.insert(2); - -// getRandom should return 1 with the probability 2/3, and returns 2 with the probability 1/3. -collection.getRandom(); - -// Removes 1 from the collection, returns true. Collection now contains [1,2]. -collection.remove(1); - -// getRandom should return 1 and 2 both equally likely. -collection.getRandom(); - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0381.insert-delete-getrandom-o1-duplicates-allowed/insert-delete-getrandom-o1-duplicates-allowed.go b/Algorithms/0381.insert-delete-getrandom-o1-duplicates-allowed/insert-delete-getrandom-o1-duplicates-allowed.go deleted file mode 100755 index f529184cc..000000000 --- a/Algorithms/0381.insert-delete-getrandom-o1-duplicates-allowed/insert-delete-getrandom-o1-duplicates-allowed.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0381 - diff --git a/Algorithms/0381.insert-delete-getrandom-o1-duplicates-allowed/insert-delete-getrandom-o1-duplicates-allowed_test.go b/Algorithms/0381.insert-delete-getrandom-o1-duplicates-allowed/insert-delete-getrandom-o1-duplicates-allowed_test.go deleted file mode 100755 index e3b1f3c6b..000000000 --- a/Algorithms/0381.insert-delete-getrandom-o1-duplicates-allowed/insert-delete-getrandom-o1-duplicates-allowed_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0381 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0381(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0382.linked-list-random-node/README.md b/Algorithms/0382.linked-list-random-node/README.md deleted file mode 100755 index 98103bf98..000000000 --- a/Algorithms/0382.linked-list-random-node/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# [382. Linked List Random Node](https://leetcode.com/problems/linked-list-random-node/) - -## 题目 - - Given a singly linked list, return a random node's value from the linked list. Each node must have the same probability of being chosen. - -Follow up: -What if the linked list is extremely large and its length is unknown to you? Could you solve this efficiently without using extra space? - - -Example: -// Init a singly linked list [1,2,3]. -ListNode head = new ListNode(1); -head.next = new ListNode(2); -head.next.next = new ListNode(3); -Solution solution = new Solution(head); - -// getRandom() should return either 1, 2, or 3 randomly. Each element should have equal probability of returning. -solution.getRandom(); - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0382.linked-list-random-node/linked-list-random-node.go b/Algorithms/0382.linked-list-random-node/linked-list-random-node.go deleted file mode 100755 index 335bf921d..000000000 --- a/Algorithms/0382.linked-list-random-node/linked-list-random-node.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0382 - diff --git a/Algorithms/0382.linked-list-random-node/linked-list-random-node_test.go b/Algorithms/0382.linked-list-random-node/linked-list-random-node_test.go deleted file mode 100755 index cbdf9ac70..000000000 --- a/Algorithms/0382.linked-list-random-node/linked-list-random-node_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0382 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0382(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0383.ransom-note/README.md b/Algorithms/0383.ransom-note/README.md deleted file mode 100755 index 5eab8ef2c..000000000 --- a/Algorithms/0383.ransom-note/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# [383. Ransom Note](https://leetcode.com/problems/ransom-note/) - -## 题目 - - -Given an arbitrary ransom note string and another string containing letters from all the magazines, write a function that will return true if the ransom -note can be constructed from the magazines ; otherwise, it will return false. - - -Each letter in the magazine string can only be used once in your ransom note. - - -Note: -You may assume that both strings contain only lowercase letters. - - -canConstruct("a", "b") -> false -canConstruct("aa", "ab") -> false -canConstruct("aa", "aab") -> true - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0383.ransom-note/ransom-note.go b/Algorithms/0383.ransom-note/ransom-note.go deleted file mode 100755 index 59e0cde2d..000000000 --- a/Algorithms/0383.ransom-note/ransom-note.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0383 - diff --git a/Algorithms/0383.ransom-note/ransom-note_test.go b/Algorithms/0383.ransom-note/ransom-note_test.go deleted file mode 100755 index b6dcaf191..000000000 --- a/Algorithms/0383.ransom-note/ransom-note_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0383 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0383(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0384.shuffle-an-array/README.md b/Algorithms/0384.shuffle-an-array/README.md deleted file mode 100755 index 1a5315c3d..000000000 --- a/Algorithms/0384.shuffle-an-array/README.md +++ /dev/null @@ -1,30 +0,0 @@ -# [384. Shuffle an Array](https://leetcode.com/problems/shuffle-an-array/) - -## 题目 - - Shuffle a set of numbers without duplicates. - - -Example: -// Init an array with set 1, 2, and 3. -int[] nums = {1,2,3}; -Solution solution = new Solution(nums); - -// Shuffle the array [1,2,3] and return its result. Any permutation of [1,2,3] must equally likely to be returned. -solution.shuffle(); - -// Resets the array back to its original configuration [1,2,3]. -solution.reset(); - -// Returns the random shuffling of array [1,2,3]. -solution.shuffle(); - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0384.shuffle-an-array/shuffle-an-array.go b/Algorithms/0384.shuffle-an-array/shuffle-an-array.go deleted file mode 100755 index a8d1177af..000000000 --- a/Algorithms/0384.shuffle-an-array/shuffle-an-array.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0384 - diff --git a/Algorithms/0384.shuffle-an-array/shuffle-an-array_test.go b/Algorithms/0384.shuffle-an-array/shuffle-an-array_test.go deleted file mode 100755 index 3ae228c4c..000000000 --- a/Algorithms/0384.shuffle-an-array/shuffle-an-array_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0384 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0384(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0385.mini-parser/README.md b/Algorithms/0385.mini-parser/README.md deleted file mode 100755 index 8187e1a04..000000000 --- a/Algorithms/0385.mini-parser/README.md +++ /dev/null @@ -1,44 +0,0 @@ -# [385. Mini Parser](https://leetcode.com/problems/mini-parser/) - -## 题目 - - Given a nested list of integers represented as a string, implement a parser to deserialize it. - -Each element is either an integer, or a list -- whose elements may also be integers or other lists. - -Note: -You may assume that the string is well-formed: - -String is non-empty. -String does not contain white spaces. -String contains only digits 0-9, [, - ,, ]. - - - -Example 1: -Given s = "324", - -You should return a NestedInteger object which contains a single integer 324. - - - -Example 2: -Given s = "[123,[456,[789]]]", - -Return a NestedInteger object containing a nested list with 2 elements: - -1. An integer containing value 123. -2. A nested list containing two elements: - i. An integer containing value 456. - ii. A nested list with one element: - a. An integer containing value 789. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0385.mini-parser/mini-parser.go b/Algorithms/0385.mini-parser/mini-parser.go deleted file mode 100755 index 809df5f65..000000000 --- a/Algorithms/0385.mini-parser/mini-parser.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0385 - diff --git a/Algorithms/0385.mini-parser/mini-parser_test.go b/Algorithms/0385.mini-parser/mini-parser_test.go deleted file mode 100755 index bcf444d95..000000000 --- a/Algorithms/0385.mini-parser/mini-parser_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0385 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0385(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0386.lexicographical-numbers/README.md b/Algorithms/0386.lexicographical-numbers/README.md deleted file mode 100755 index 770c6aec8..000000000 --- a/Algorithms/0386.lexicographical-numbers/README.md +++ /dev/null @@ -1,23 +0,0 @@ -# [386. Lexicographical Numbers](https://leetcode.com/problems/lexicographical-numbers/) - -## 题目 - - -Given an integer n, return 1 - n in lexicographical order. - - - -For example, given 13, return: [1,10,11,12,13,2,3,4,5,6,7,8,9]. - - - -Please optimize your algorithm to use less time and space. The input size may be as large as 5,000,000. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0386.lexicographical-numbers/lexicographical-numbers.go b/Algorithms/0386.lexicographical-numbers/lexicographical-numbers.go deleted file mode 100755 index e7cd9f170..000000000 --- a/Algorithms/0386.lexicographical-numbers/lexicographical-numbers.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0386 - diff --git a/Algorithms/0386.lexicographical-numbers/lexicographical-numbers_test.go b/Algorithms/0386.lexicographical-numbers/lexicographical-numbers_test.go deleted file mode 100755 index 1cecfa383..000000000 --- a/Algorithms/0386.lexicographical-numbers/lexicographical-numbers_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0386 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0386(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0387.first-unique-character-in-a-string/README.md b/Algorithms/0387.first-unique-character-in-a-string/README.md deleted file mode 100755 index 0ec30fece..000000000 --- a/Algorithms/0387.first-unique-character-in-a-string/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# [387. First Unique Character in a String](https://leetcode.com/problems/first-unique-character-in-a-string/) - -## 题目 - - -Given a string, find the first non-repeating character in it and return it's index. If it doesn't exist, return -1. - -Examples: -s = "leetcode" -return 0. - -s = "loveleetcode", -return 2. - - - - -Note: You may assume the string contain only lowercase letters. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0387.first-unique-character-in-a-string/first-unique-character-in-a-string.go b/Algorithms/0387.first-unique-character-in-a-string/first-unique-character-in-a-string.go deleted file mode 100755 index 57afb6f2c..000000000 --- a/Algorithms/0387.first-unique-character-in-a-string/first-unique-character-in-a-string.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0387 - diff --git a/Algorithms/0387.first-unique-character-in-a-string/first-unique-character-in-a-string_test.go b/Algorithms/0387.first-unique-character-in-a-string/first-unique-character-in-a-string_test.go deleted file mode 100755 index 529d62bd8..000000000 --- a/Algorithms/0387.first-unique-character-in-a-string/first-unique-character-in-a-string_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0387 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0387(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0388.longest-absolute-file-path/README.md b/Algorithms/0388.longest-absolute-file-path/README.md deleted file mode 100755 index 54a701efb..000000000 --- a/Algorithms/0388.longest-absolute-file-path/README.md +++ /dev/null @@ -1,51 +0,0 @@ -# [388. Longest Absolute File Path](https://leetcode.com/problems/longest-absolute-file-path/) - -## 题目 - - Suppose we abstract our file system by a string in the following manner: - -The string "dir\n\tsubdir1\n\tsubdir2\n\t\tfile.ext" represents: - -dir - subdir1 - subdir2 - file.ext - - -The directory dir contains an empty sub-directory subdir1 and a sub-directory subdir2 containing a file file.ext. - -The string "dir\n\tsubdir1\n\t\tfile1.ext\n\t\tsubsubdir1\n\tsubdir2\n\t\tsubsubdir2\n\t\t\tfile2.ext" represents: - -dir - subdir1 - file1.ext - subsubdir1 - subdir2 - subsubdir2 - file2.ext - - -The directory dir contains two sub-directories subdir1 and subdir2. subdir1 contains a file file1.ext and an empty second-level sub-directory subsubdir1. subdir2 contains a second-level sub-directory subsubdir2 containing a file file2.ext. - -We are interested in finding the longest (number of characters) absolute path to a file within our file system. For example, in the second example above, the longest absolute path is "dir/subdir2/subsubdir2/file2.ext", and its length is 32 (not including the double quotes). - -Given a string representing the file system in the above format, return the length of the longest absolute path to file in the abstracted file system. If there is no file in the system, return 0. - -Note: - -The name of a file contains at least a . and an extension. -The name of a directory or sub-directory will not contain a .. - - - -Time complexity required: O(n) where n is the size of the input string. - -Notice that a/aa/aaa/file1.txt is not the longest file path, if there is another path aaaaaaaaaaaaaaaaaaaaa/sth.png. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0388.longest-absolute-file-path/longest-absolute-file-path.go b/Algorithms/0388.longest-absolute-file-path/longest-absolute-file-path.go deleted file mode 100755 index cfe6b34ba..000000000 --- a/Algorithms/0388.longest-absolute-file-path/longest-absolute-file-path.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0388 - diff --git a/Algorithms/0388.longest-absolute-file-path/longest-absolute-file-path_test.go b/Algorithms/0388.longest-absolute-file-path/longest-absolute-file-path_test.go deleted file mode 100755 index 02d640c68..000000000 --- a/Algorithms/0388.longest-absolute-file-path/longest-absolute-file-path_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0388 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0388(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0389.find-the-difference/README.md b/Algorithms/0389.find-the-difference/README.md deleted file mode 100755 index d15f4b715..000000000 --- a/Algorithms/0389.find-the-difference/README.md +++ /dev/null @@ -1,30 +0,0 @@ -# [389. Find the Difference](https://leetcode.com/problems/find-the-difference/) - -## 题目 - - -Given two strings s and t which consist of only lowercase letters. - -String t is generated by random shuffling string s and then add one more letter at a random position. - -Find the letter that was added in t. - -Example: -Input: -s = "abcd" -t = "abcde" - -Output: -e - -Explanation: -'e' is the letter that was added. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0389.find-the-difference/find-the-difference.go b/Algorithms/0389.find-the-difference/find-the-difference.go deleted file mode 100755 index e5a3f0760..000000000 --- a/Algorithms/0389.find-the-difference/find-the-difference.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0389 - diff --git a/Algorithms/0389.find-the-difference/find-the-difference_test.go b/Algorithms/0389.find-the-difference/find-the-difference_test.go deleted file mode 100755 index 6ed6a2729..000000000 --- a/Algorithms/0389.find-the-difference/find-the-difference_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0389 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0389(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0390.elimination-game/README.md b/Algorithms/0390.elimination-game/README.md deleted file mode 100755 index b10687108..000000000 --- a/Algorithms/0390.elimination-game/README.md +++ /dev/null @@ -1,33 +0,0 @@ -# [390. Elimination Game](https://leetcode.com/problems/elimination-game/) - -## 题目 - - -There is a list of sorted integers from 1 to n. Starting from left to right, remove the first number and every other number afterward until you reach the end of the list. - -Repeat the previous step again, but this time from right to left, remove the right most number and every other number from the remaining numbers. - -We keep repeating the steps again, alternating left to right and right to left, until a single number remains. - -Find the last number that remains starting with a list of length n. - -Example: -Input: -n = 9, -1 2 3 4 5 6 7 8 9 -2 4 6 8 -2 6 -6 - -Output: -6 - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0390.elimination-game/elimination-game.go b/Algorithms/0390.elimination-game/elimination-game.go deleted file mode 100755 index c058b1fbf..000000000 --- a/Algorithms/0390.elimination-game/elimination-game.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0390 - diff --git a/Algorithms/0390.elimination-game/elimination-game_test.go b/Algorithms/0390.elimination-game/elimination-game_test.go deleted file mode 100755 index 0032feaac..000000000 --- a/Algorithms/0390.elimination-game/elimination-game_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0390 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0390(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0391.perfect-rectangle/README.md b/Algorithms/0391.perfect-rectangle/README.md deleted file mode 100755 index 09dff4a52..000000000 --- a/Algorithms/0391.perfect-rectangle/README.md +++ /dev/null @@ -1,80 +0,0 @@ -# [391. Perfect Rectangle](https://leetcode.com/problems/perfect-rectangle/) - -## 题目 - - -Given N axis-aligned rectangles where N > 0, determine if they all together form an exact cover of a rectangular region. - - - -Each rectangle is represented as a bottom-left point and a top-right point. For example, a unit square is represented as [1,1,2,2]. (coordinate of bottom-left point is (1, 1) and top-right point is (2, 2)). - - - -Example 1: -rectangles = [ - [1,1,3,3], - [3,1,4,2], - [3,2,4,4], - [1,3,2,4], - [2,3,3,4] -] - -Return true. All 5 rectangles together form an exact cover of a rectangular region. - - - - - - -Example 2: -rectangles = [ - [1,1,2,3], - [1,3,2,4], - [3,1,4,2], - [3,2,4,4] -] - -Return false. Because there is a gap between the two rectangular regions. - - - - - - -Example 3: -rectangles = [ - [1,1,3,3], - [3,1,4,2], - [1,3,2,4], - [3,2,4,4] -] - -Return false. Because there is a gap in the top center. - - - - - - -Example 4: -rectangles = [ - [1,1,3,3], - [3,1,4,2], - [1,3,2,4], - [2,2,4,4] -] - -Return false. Because two of the rectangles overlap with each other. - - - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0391.perfect-rectangle/perfect-rectangle.go b/Algorithms/0391.perfect-rectangle/perfect-rectangle.go deleted file mode 100755 index ca077275e..000000000 --- a/Algorithms/0391.perfect-rectangle/perfect-rectangle.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0391 - diff --git a/Algorithms/0391.perfect-rectangle/perfect-rectangle_test.go b/Algorithms/0391.perfect-rectangle/perfect-rectangle_test.go deleted file mode 100755 index 7d3d1b7a9..000000000 --- a/Algorithms/0391.perfect-rectangle/perfect-rectangle_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0391 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0391(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0392.is-subsequence/README.md b/Algorithms/0392.is-subsequence/README.md deleted file mode 100755 index 94eb52f71..000000000 --- a/Algorithms/0392.is-subsequence/README.md +++ /dev/null @@ -1,42 +0,0 @@ -# [392. Is Subsequence](https://leetcode.com/problems/is-subsequence/) - -## 题目 - - -Given a string s and a string t, check if s is subsequence of t. - - - -You may assume that there is only lower case English letters in both s and t. t is potentially a very long (length ~= 500,000) string, and s is a short string (<=100). - - - -A subsequence of a string is a new string which is formed from the original string by deleting some (can be none) of the characters without disturbing the relative positions of the remaining characters. (ie, "ace" is a subsequence of "abcde" while "aec" is not). - - -Example 1: -s = "abc", t = "ahbgdc" - - -Return true. - - -Example 2: -s = "axc", t = "ahbgdc" - - -Return false. - - -Follow up: -If there are lots of incoming S, say S1, S2, ... , Sk where k >= 1B, and you want to check one by one to see if T has its subsequence. In this scenario, how would you change your code? - -Credits:Special thanks to @pbrother for adding this problem and creating all test cases. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0392.is-subsequence/is-subsequence.go b/Algorithms/0392.is-subsequence/is-subsequence.go deleted file mode 100755 index 285cccf05..000000000 --- a/Algorithms/0392.is-subsequence/is-subsequence.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0392 - diff --git a/Algorithms/0392.is-subsequence/is-subsequence_test.go b/Algorithms/0392.is-subsequence/is-subsequence_test.go deleted file mode 100755 index 64e057be6..000000000 --- a/Algorithms/0392.is-subsequence/is-subsequence_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0392 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0392(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0393.utf-8-validation/README.md b/Algorithms/0393.utf-8-validation/README.md deleted file mode 100755 index c8a90b64c..000000000 --- a/Algorithms/0393.utf-8-validation/README.md +++ /dev/null @@ -1,54 +0,0 @@ -# [393. UTF-8 Validation](https://leetcode.com/problems/utf-8-validation/) - -## 题目 - - A character in UTF8 can be from 1 to 4 bytes long, subjected to the following rules: - -For 1-byte character, the first bit is a 0, followed by its unicode code. -For n-bytes character, the first n-bits are all one's, the n+1 bit is 0, followed by n-1 bytes with most significant 2 bits being 10. - -This is how the UTF-8 encoding would work: - - Char. number range | UTF-8 octet sequence - (hexadecimal) | (binary) - --------------------+--------------------------------------------- - 0000 0000-0000 007F | 0xxxxxxx - 0000 0080-0000 07FF | 110xxxxx 10xxxxxx - 0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx - 0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx - - -Given an array of integers representing the data, return whether it is a valid utf-8 encoding. - - -Note: -The input is an array of integers. Only the least significant 8 bits of each integer is used to store the data. This means each integer represents only 1 byte of data. - - - -Example 1: -data = [197, 130, 1], which represents the octet sequence: 11000101 10000010 00000001. - -Return true. -It is a valid utf-8 encoding for a 2-bytes character followed by a 1-byte character. - - - - -Example 2: -data = [235, 140, 4], which represented the octet sequence: 11101011 10001100 00000100. - -Return false. -The first 3 bits are all one's and the 4th bit is 0 means it is a 3-bytes character. -The next byte is a continuation byte which starts with 10 and that's correct. -But the second continuation byte does not start with 10, so it is invalid. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0393.utf-8-validation/utf-8-validation.go b/Algorithms/0393.utf-8-validation/utf-8-validation.go deleted file mode 100755 index 7fbbf1cd9..000000000 --- a/Algorithms/0393.utf-8-validation/utf-8-validation.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0393 - diff --git a/Algorithms/0393.utf-8-validation/utf-8-validation_test.go b/Algorithms/0393.utf-8-validation/utf-8-validation_test.go deleted file mode 100755 index f0eb70ce1..000000000 --- a/Algorithms/0393.utf-8-validation/utf-8-validation_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0393 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0393(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0394.decode-string/README.md b/Algorithms/0394.decode-string/README.md deleted file mode 100755 index 6fd6c8d73..000000000 --- a/Algorithms/0394.decode-string/README.md +++ /dev/null @@ -1,30 +0,0 @@ -# [394. Decode String](https://leetcode.com/problems/decode-string/) - -## 题目 - - -Given an encoded string, return it's decoded string. - - -The encoding rule is: k[encoded_string], where the encoded_string inside the square brackets is being repeated exactly k times. Note that k is guaranteed to be a positive integer. - - -You may assume that the input string is always valid; No extra white spaces, square brackets are well-formed, etc. - -Furthermore, you may assume that the original data does not contain any digits and that digits are only for those repeat numbers, k. For example, there won't be input like 3a or 2[4]. - - -Examples: -s = "3[a]2[bc]", return "aaabcbc". -s = "3[a2[c]]", return "accaccacc". -s = "2[abc]3[cd]ef", return "abcabccdcdcdef". - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0394.decode-string/decode-string.go b/Algorithms/0394.decode-string/decode-string.go deleted file mode 100755 index 8b30999fb..000000000 --- a/Algorithms/0394.decode-string/decode-string.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0394 - diff --git a/Algorithms/0394.decode-string/decode-string_test.go b/Algorithms/0394.decode-string/decode-string_test.go deleted file mode 100755 index 2c808c5f8..000000000 --- a/Algorithms/0394.decode-string/decode-string_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0394 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0394(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0395.longest-substring-with-at-least-k-repeating-characters/README.md b/Algorithms/0395.longest-substring-with-at-least-k-repeating-characters/README.md deleted file mode 100755 index c567fcca9..000000000 --- a/Algorithms/0395.longest-substring-with-at-least-k-repeating-characters/README.md +++ /dev/null @@ -1,37 +0,0 @@ -# [395. Longest Substring with At Least K Repeating Characters](https://leetcode.com/problems/longest-substring-with-at-least-k-repeating-characters/) - -## 题目 - - -Find the length of the longest substring T of a given string (consists of lowercase letters only) such that every character in T appears no less than k times. - - -Example 1: -Input: -s = "aaabb", k = 3 - -Output: -3 - -The longest substring is "aaa", as 'a' is repeated 3 times. - - - -Example 2: -Input: -s = "ababbc", k = 2 - -Output: -5 - -The longest substring is "ababb", as 'a' is repeated 2 times and 'b' is repeated 3 times. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0395.longest-substring-with-at-least-k-repeating-characters/longest-substring-with-at-least-k-repeating-characters.go b/Algorithms/0395.longest-substring-with-at-least-k-repeating-characters/longest-substring-with-at-least-k-repeating-characters.go deleted file mode 100755 index 7e5623448..000000000 --- a/Algorithms/0395.longest-substring-with-at-least-k-repeating-characters/longest-substring-with-at-least-k-repeating-characters.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0395 - diff --git a/Algorithms/0395.longest-substring-with-at-least-k-repeating-characters/longest-substring-with-at-least-k-repeating-characters_test.go b/Algorithms/0395.longest-substring-with-at-least-k-repeating-characters/longest-substring-with-at-least-k-repeating-characters_test.go deleted file mode 100755 index 22a6ddffa..000000000 --- a/Algorithms/0395.longest-substring-with-at-least-k-repeating-characters/longest-substring-with-at-least-k-repeating-characters_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0395 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0395(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0396.rotate-function/README.md b/Algorithms/0396.rotate-function/README.md deleted file mode 100755 index 82277dec7..000000000 --- a/Algorithms/0396.rotate-function/README.md +++ /dev/null @@ -1,41 +0,0 @@ -# [396. Rotate Function](https://leetcode.com/problems/rotate-function/) - -## 题目 - - -Given an array of integers A and let n to be its length. - - - -Assume Bk to be an array obtained by rotating the array A k positions clock-wise, we define a "rotation function" F on A as follow: - - - -F(k) = 0 * Bk[0] + 1 * Bk[1] + ... + (n-1) * Bk[n-1]. - -Calculate the maximum value of F(0), F(1), ..., F(n-1). - - -Note: -n is guaranteed to be less than 105. - - -Example: -A = [4, 3, 2, 6] - -F(0) = (0 * 4) + (1 * 3) + (2 * 2) + (3 * 6) = 0 + 3 + 4 + 18 = 25 -F(1) = (0 * 6) + (1 * 4) + (2 * 3) + (3 * 2) = 0 + 4 + 6 + 6 = 16 -F(2) = (0 * 2) + (1 * 6) + (2 * 4) + (3 * 3) = 0 + 6 + 8 + 9 = 23 -F(3) = (0 * 3) + (1 * 2) + (2 * 6) + (3 * 4) = 0 + 2 + 12 + 12 = 26 - -So the maximum value of F(0), F(1), F(2), F(3) is F(3) = 26. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0396.rotate-function/rotate-function.go b/Algorithms/0396.rotate-function/rotate-function.go deleted file mode 100755 index b13ab6cb6..000000000 --- a/Algorithms/0396.rotate-function/rotate-function.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0396 - diff --git a/Algorithms/0396.rotate-function/rotate-function_test.go b/Algorithms/0396.rotate-function/rotate-function_test.go deleted file mode 100755 index 140638476..000000000 --- a/Algorithms/0396.rotate-function/rotate-function_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0396 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0396(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0397.integer-replacement/README.md b/Algorithms/0397.integer-replacement/README.md deleted file mode 100755 index 09e2f8498..000000000 --- a/Algorithms/0397.integer-replacement/README.md +++ /dev/null @@ -1,54 +0,0 @@ -# [397. Integer Replacement](https://leetcode.com/problems/integer-replacement/) - -## 题目 - - -Given a positive integer n and you can do operations as follow: - - - - -If n is even, replace n with n/2. -If n is odd, you can replace n with either n + 1 or n - 1. - - - - -What is the minimum number of replacements needed for n to become 1? - - - - -Example 1: -Input: -8 - -Output: -3 - -Explanation: -8 -> 4 -> 2 -> 1 - - - -Example 2: -Input: -7 - -Output: -4 - -Explanation: -7 -> 8 -> 4 -> 2 -> 1 -or -7 -> 6 -> 3 -> 2 -> 1 - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0397.integer-replacement/integer-replacement.go b/Algorithms/0397.integer-replacement/integer-replacement.go deleted file mode 100755 index b6101541e..000000000 --- a/Algorithms/0397.integer-replacement/integer-replacement.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0397 - diff --git a/Algorithms/0397.integer-replacement/integer-replacement_test.go b/Algorithms/0397.integer-replacement/integer-replacement_test.go deleted file mode 100755 index 853d52c2a..000000000 --- a/Algorithms/0397.integer-replacement/integer-replacement_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0397 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0397(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0398.random-pick-index/README.md b/Algorithms/0398.random-pick-index/README.md deleted file mode 100755 index 279dd06e7..000000000 --- a/Algorithms/0398.random-pick-index/README.md +++ /dev/null @@ -1,32 +0,0 @@ -# [398. Random Pick Index](https://leetcode.com/problems/random-pick-index/) - -## 题目 - - -Given an array of integers with possible duplicates, randomly output the index of a given target number. You can assume that the given target number must exist in the array. - - - -Note: -The array size can be very large. Solution that uses too much extra space will not pass the judge. - - -Example: -int[] nums = new int[] {1,2,3,3,3}; -Solution solution = new Solution(nums); - -// pick(3) should return either index 2, 3, or 4 randomly. Each index should have equal probability of returning. -solution.pick(3); - -// pick(1) should return 0. Since in the array only nums[0] is equal to 1. -solution.pick(1); - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0398.random-pick-index/random-pick-index.go b/Algorithms/0398.random-pick-index/random-pick-index.go deleted file mode 100755 index 62c02ce57..000000000 --- a/Algorithms/0398.random-pick-index/random-pick-index.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0398 - diff --git a/Algorithms/0398.random-pick-index/random-pick-index_test.go b/Algorithms/0398.random-pick-index/random-pick-index_test.go deleted file mode 100755 index d38487c4e..000000000 --- a/Algorithms/0398.random-pick-index/random-pick-index_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0398 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0398(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0399.evaluate-division/README.md b/Algorithms/0399.evaluate-division/README.md deleted file mode 100755 index 80f4dafb1..000000000 --- a/Algorithms/0399.evaluate-division/README.md +++ /dev/null @@ -1,31 +0,0 @@ -# [399. Evaluate Division](https://leetcode.com/problems/evaluate-division/) - -## 题目 - - -Equations are given in the format A / B = k, where A and B are variables represented as strings, and k is a real number (floating point number). Given some queries, return the answers. If the answer does not exist, return -1.0. - -Example: -Given a / b = 2.0, b / c = 3.0. queries are: a / c = ?, b / a = ?, a / e = ?, a / a = ?, x / x = ? . return [6.0, 0.5, -1.0, 1.0, -1.0 ]. - - -The input is: vector> equations, vector& values, vector> queries , where equations.size() == values.size(), and the values are positive. This represents the equations. Return vector. - - -According to the example above: -equations = [ ["a", "b"], ["b", "c"] ], -values = [2.0, 3.0], -queries = [ ["a", "c"], ["b", "a"], ["a", "e"], ["a", "a"], ["x", "x"] ]. - - - -The input is always valid. You may assume that evaluating the queries will result in no division by zero and there is no contradiction. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0399.evaluate-division/evaluate-division.go b/Algorithms/0399.evaluate-division/evaluate-division.go deleted file mode 100755 index e9f231b2d..000000000 --- a/Algorithms/0399.evaluate-division/evaluate-division.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0399 - diff --git a/Algorithms/0399.evaluate-division/evaluate-division_test.go b/Algorithms/0399.evaluate-division/evaluate-division_test.go deleted file mode 100755 index 14cf44f6f..000000000 --- a/Algorithms/0399.evaluate-division/evaluate-division_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0399 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0399(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0400.nth-digit/README.md b/Algorithms/0400.nth-digit/README.md deleted file mode 100755 index 998c8f17f..000000000 --- a/Algorithms/0400.nth-digit/README.md +++ /dev/null @@ -1,38 +0,0 @@ -# [400. Nth Digit](https://leetcode.com/problems/nth-digit/) - -## 题目 - - Find the nth digit of the infinite integer sequence 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ... - -Note: -n is positive and will fit within the range of a 32-bit signed integer (n < 231). - - -Example 1: -Input: -3 - -Output: -3 - - - -Example 2: -Input: -11 - -Output: -0 - -Explanation: -The 11th digit of the sequence 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ... is a 0, which is part of the number 10. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0400.nth-digit/nth-digit.go b/Algorithms/0400.nth-digit/nth-digit.go deleted file mode 100755 index a17483957..000000000 --- a/Algorithms/0400.nth-digit/nth-digit.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0400 - diff --git a/Algorithms/0400.nth-digit/nth-digit_test.go b/Algorithms/0400.nth-digit/nth-digit_test.go deleted file mode 100755 index 937396d97..000000000 --- a/Algorithms/0400.nth-digit/nth-digit_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0400 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0400(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0401.binary-watch/README.md b/Algorithms/0401.binary-watch/README.md deleted file mode 100755 index 5b5c15295..000000000 --- a/Algorithms/0401.binary-watch/README.md +++ /dev/null @@ -1,30 +0,0 @@ -# [401. Binary Watch](https://leetcode.com/problems/binary-watch/) - -## 题目 - - A binary watch has 4 LEDs on the top which represent the hours (0-11), and the 6 LEDs on the bottom represent the minutes (0-59). -Each LED represents a zero or one, with the least significant bit on the right. - -For example, the above binary watch reads "3:25". - -Given a non-negative integer n which represents the number of LEDs that are currently on, return all possible times the watch could represent. - -Example: -Input: n = 1Return: ["1:00", "2:00", "4:00", "8:00", "0:01", "0:02", "0:04", "0:08", "0:16", "0:32"] - - -Note: - -The order of output does not matter. -The hour must not contain a leading zero, for example "01:00" is not valid, it should be "1:00". -The minute must be consist of two digits and may contain a leading zero, for example "10:2" is not valid, it should be "10:02". - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0401.binary-watch/binary-watch.go b/Algorithms/0401.binary-watch/binary-watch.go deleted file mode 100755 index 4b8725573..000000000 --- a/Algorithms/0401.binary-watch/binary-watch.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0401 - diff --git a/Algorithms/0401.binary-watch/binary-watch_test.go b/Algorithms/0401.binary-watch/binary-watch_test.go deleted file mode 100755 index 06ff1debb..000000000 --- a/Algorithms/0401.binary-watch/binary-watch_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0401 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0401(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0402.remove-k-digits/README.md b/Algorithms/0402.remove-k-digits/README.md deleted file mode 100755 index 42c5cf096..000000000 --- a/Algorithms/0402.remove-k-digits/README.md +++ /dev/null @@ -1,43 +0,0 @@ -# [402. Remove K Digits](https://leetcode.com/problems/remove-k-digits/) - -## 题目 - - Given a non-negative integer num represented as a string, remove k digits from the number so that the new number is the smallest possible. - - -Note: - -The length of num is less than 10002 and will be ≥ k. -The given num does not contain any leading zero. - - - - -Example 1: -Input: num = "1432219", k = 3 -Output: "1219" -Explanation: Remove the three digits 4, 3, and 2 to form the new number 1219 which is the smallest. - - - -Example 2: -Input: num = "10200", k = 1 -Output: "200" -Explanation: Remove the leading 1 and the number is 200. Note that the output must not contain leading zeroes. - - - -Example 3: -Input: num = "10", k = 2 -Output: "0" -Explanation: Remove all the digits from the number and it is left with nothing which is 0. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0402.remove-k-digits/remove-k-digits.go b/Algorithms/0402.remove-k-digits/remove-k-digits.go deleted file mode 100755 index 640bbeccd..000000000 --- a/Algorithms/0402.remove-k-digits/remove-k-digits.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0402 - diff --git a/Algorithms/0402.remove-k-digits/remove-k-digits_test.go b/Algorithms/0402.remove-k-digits/remove-k-digits_test.go deleted file mode 100755 index cffcf1f14..000000000 --- a/Algorithms/0402.remove-k-digits/remove-k-digits_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0402 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0402(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0403.frog-jump/README.md b/Algorithms/0403.frog-jump/README.md deleted file mode 100755 index 2e67cdf86..000000000 --- a/Algorithms/0403.frog-jump/README.md +++ /dev/null @@ -1,49 +0,0 @@ -# [403. Frog Jump](https://leetcode.com/problems/frog-jump/) - -## 题目 - - A frog is crossing a river. The river is divided into x units and at each unit there may or may not exist a stone. The frog can jump on a stone, but it must not jump into the water. - -Given a list of stones' positions (in units) in sorted ascending order, determine if the frog is able to cross the river by landing on the last stone. Initially, the frog is on the first stone and assume the first jump must be 1 unit. - - -If the frog's last jump was k units, then its next jump must be either k - 1, k, or k + 1 units. Note that the frog can only jump in the forward direction. - -Note: - -The number of stones is ≥ 2 and is < 1,100. -Each stone's position will be a non-negative integer < 231. -The first stone's position is always 0. - - - -Example 1: -[0,1,3,5,6,8,12,17] - -There are a total of 8 stones. -The first stone at the 0th unit, second stone at the 1st unit, -third stone at the 3rd unit, and so on... -The last stone at the 17th unit. - -Return true. The frog can jump to the last stone by jumping -1 unit to the 2nd stone, then 2 units to the 3rd stone, then -2 units to the 4th stone, then 3 units to the 6th stone, -4 units to the 7th stone, and 5 units to the 8th stone. - - - -Example 2: -[0,1,2,3,4,8,9,11] - -Return false. There is no way to jump to the last stone as -the gap between the 5th and 6th stone is too large. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0403.frog-jump/frog-jump.go b/Algorithms/0403.frog-jump/frog-jump.go deleted file mode 100755 index f7ae2e2e8..000000000 --- a/Algorithms/0403.frog-jump/frog-jump.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0403 - diff --git a/Algorithms/0403.frog-jump/frog-jump_test.go b/Algorithms/0403.frog-jump/frog-jump_test.go deleted file mode 100755 index 3fb91d713..000000000 --- a/Algorithms/0403.frog-jump/frog-jump_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0403 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0403(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0404.sum-of-left-leaves/README.md b/Algorithms/0404.sum-of-left-leaves/README.md deleted file mode 100755 index ca549f88a..000000000 --- a/Algorithms/0404.sum-of-left-leaves/README.md +++ /dev/null @@ -1,24 +0,0 @@ -# [404. Sum of Left Leaves](https://leetcode.com/problems/sum-of-left-leaves/) - -## 题目 - - Find the sum of all left leaves in a given binary tree. - -Example: - 3 - / \ - 9 20 - / \ - 15 7 - -There are two left leaves in the binary tree, with values 9 and 15 respectively. Return 24. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0404.sum-of-left-leaves/sum-of-left-leaves.go b/Algorithms/0404.sum-of-left-leaves/sum-of-left-leaves.go deleted file mode 100755 index 1d5991057..000000000 --- a/Algorithms/0404.sum-of-left-leaves/sum-of-left-leaves.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0404 - diff --git a/Algorithms/0404.sum-of-left-leaves/sum-of-left-leaves_test.go b/Algorithms/0404.sum-of-left-leaves/sum-of-left-leaves_test.go deleted file mode 100755 index a177d1ed2..000000000 --- a/Algorithms/0404.sum-of-left-leaves/sum-of-left-leaves_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0404 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0404(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0405.convert-a-number-to-hexadecimal/README.md b/Algorithms/0405.convert-a-number-to-hexadecimal/README.md deleted file mode 100755 index d5b378a31..000000000 --- a/Algorithms/0405.convert-a-number-to-hexadecimal/README.md +++ /dev/null @@ -1,42 +0,0 @@ -# [405. Convert a Number to Hexadecimal](https://leetcode.com/problems/convert-a-number-to-hexadecimal/) - -## 题目 - - -Given an integer, write an algorithm to convert it to hexadecimal. For negative integer, two’s complement method is used. - - -Note: - -All letters in hexadecimal (a-f) must be in lowercase. -The hexadecimal string must not contain extra leading 0s. If the number is zero, it is represented by a single zero character '0'; otherwise, the first character in the hexadecimal string will not be the zero character. -The given number is guaranteed to fit within the range of a 32-bit signed integer. -You must not use any method provided by the library which converts/formats the number to hex directly. - - - -Example 1: -Input: -26 - -Output: -"1a" - - - -Example 2: -Input: --1 - -Output: -"ffffffff" - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0405.convert-a-number-to-hexadecimal/convert-a-number-to-hexadecimal.go b/Algorithms/0405.convert-a-number-to-hexadecimal/convert-a-number-to-hexadecimal.go deleted file mode 100755 index 38d1dd8b6..000000000 --- a/Algorithms/0405.convert-a-number-to-hexadecimal/convert-a-number-to-hexadecimal.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0405 - diff --git a/Algorithms/0405.convert-a-number-to-hexadecimal/convert-a-number-to-hexadecimal_test.go b/Algorithms/0405.convert-a-number-to-hexadecimal/convert-a-number-to-hexadecimal_test.go deleted file mode 100755 index 436972e18..000000000 --- a/Algorithms/0405.convert-a-number-to-hexadecimal/convert-a-number-to-hexadecimal_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0405 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0405(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0406.queue-reconstruction-by-height/README.md b/Algorithms/0406.queue-reconstruction-by-height/README.md deleted file mode 100755 index 3f5061f15..000000000 --- a/Algorithms/0406.queue-reconstruction-by-height/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# [406. Queue Reconstruction by Height](https://leetcode.com/problems/queue-reconstruction-by-height/) - -## 题目 - - Suppose you have a random list of people standing in a queue. Each person is described by a pair of integers (h, k), where h is the height of the person and k is the number of people in front of this person who have a height greater than or equal to h. Write an algorithm to reconstruct the queue. - - -Note: -The number of people is less than 1,100. - - -Example -Input: -[[7,0], [4,4], [7,1], [5,0], [6,1], [5,2]] - -Output: -[[5,0], [7,0], [5,2], [6,1], [4,4], [7,1]] - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0406.queue-reconstruction-by-height/queue-reconstruction-by-height.go b/Algorithms/0406.queue-reconstruction-by-height/queue-reconstruction-by-height.go deleted file mode 100755 index c648463a3..000000000 --- a/Algorithms/0406.queue-reconstruction-by-height/queue-reconstruction-by-height.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0406 - diff --git a/Algorithms/0406.queue-reconstruction-by-height/queue-reconstruction-by-height_test.go b/Algorithms/0406.queue-reconstruction-by-height/queue-reconstruction-by-height_test.go deleted file mode 100755 index 21666995e..000000000 --- a/Algorithms/0406.queue-reconstruction-by-height/queue-reconstruction-by-height_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0406 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0406(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0407.trapping-rain-water-ii/README.md b/Algorithms/0407.trapping-rain-water-ii/README.md deleted file mode 100755 index 238c4128e..000000000 --- a/Algorithms/0407.trapping-rain-water-ii/README.md +++ /dev/null @@ -1,40 +0,0 @@ -# [407. Trapping Rain Water II](https://leetcode.com/problems/trapping-rain-water-ii/) - -## 题目 - - Given an m x n matrix of positive integers representing the height of each unit cell in a 2D elevation map, compute the volume of water it is able to trap after raining. - - -Note: -Both m and n are less than 110. The height of each unit cell is greater than 0 and is less than 20,000. - - -Example: -Given the following 3x6 height map: -[ - [1,4,3,1,3,2], - [3,2,1,3,2,4], - [2,3,3,2,3,1] -] - -Return 4. - - - - - -The above image represents the elevation map [[1,4,3,1,3,2],[3,2,1,3,2,4],[2,3,3,2,3,1]] before the rain. - - - - -After the rain, water are trapped between the blocks. The total volume of water trapped is 4. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0407.trapping-rain-water-ii/trapping-rain-water-ii.go b/Algorithms/0407.trapping-rain-water-ii/trapping-rain-water-ii.go deleted file mode 100755 index 1153540a9..000000000 --- a/Algorithms/0407.trapping-rain-water-ii/trapping-rain-water-ii.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0407 - diff --git a/Algorithms/0407.trapping-rain-water-ii/trapping-rain-water-ii_test.go b/Algorithms/0407.trapping-rain-water-ii/trapping-rain-water-ii_test.go deleted file mode 100755 index bb6131c7f..000000000 --- a/Algorithms/0407.trapping-rain-water-ii/trapping-rain-water-ii_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0407 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0407(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0409.longest-palindrome/README.md b/Algorithms/0409.longest-palindrome/README.md deleted file mode 100755 index 60b543770..000000000 --- a/Algorithms/0409.longest-palindrome/README.md +++ /dev/null @@ -1,31 +0,0 @@ -# [409. Longest Palindrome](https://leetcode.com/problems/longest-palindrome/) - -## 题目 - - Given a string which consists of lowercase or uppercase letters, find the length of the longest palindromes that can be built with those letters. - -This is case sensitive, for example "Aa" is not considered a palindrome here. - -Note: -Assume the length of given string will not exceed 1,010. - - -Example: -Input: -"abccccdd" - -Output: -7 - -Explanation: -One longest palindrome that can be built is "dccaccd", whose length is 7. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0409.longest-palindrome/longest-palindrome.go b/Algorithms/0409.longest-palindrome/longest-palindrome.go deleted file mode 100755 index 638dcccfe..000000000 --- a/Algorithms/0409.longest-palindrome/longest-palindrome.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0409 - diff --git a/Algorithms/0409.longest-palindrome/longest-palindrome_test.go b/Algorithms/0409.longest-palindrome/longest-palindrome_test.go deleted file mode 100755 index b595cf836..000000000 --- a/Algorithms/0409.longest-palindrome/longest-palindrome_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0409 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0409(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0410.split-array-largest-sum/README.md b/Algorithms/0410.split-array-largest-sum/README.md deleted file mode 100755 index 428196723..000000000 --- a/Algorithms/0410.split-array-largest-sum/README.md +++ /dev/null @@ -1,37 +0,0 @@ -# [410. Split Array Largest Sum](https://leetcode.com/problems/split-array-largest-sum/) - -## 题目 - - Given an array which consists of non-negative integers and an integer m, you can split the array into m non-empty continuous subarrays. Write an algorithm to minimize the largest sum among these m subarrays. - - -Note: -If n is the length of array, assume the following constraints are satisfied: - -1 ≤ n ≤ 1000 -1 ≤ m ≤ min(50, n) - - - -Examples: -Input: -nums = [7,2,5,10,8] -m = 2 - -Output: -18 - -Explanation: -There are four ways to split nums into two subarrays. -The best way is to split it into [7,2,5] and [10,8], -where the largest sum among the two subarrays is only 18. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0410.split-array-largest-sum/split-array-largest-sum.go b/Algorithms/0410.split-array-largest-sum/split-array-largest-sum.go deleted file mode 100755 index 968f95bdf..000000000 --- a/Algorithms/0410.split-array-largest-sum/split-array-largest-sum.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0410 - diff --git a/Algorithms/0410.split-array-largest-sum/split-array-largest-sum_test.go b/Algorithms/0410.split-array-largest-sum/split-array-largest-sum_test.go deleted file mode 100755 index 46cc006e0..000000000 --- a/Algorithms/0410.split-array-largest-sum/split-array-largest-sum_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0410 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0410(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0412.fizz-buzz/README.md b/Algorithms/0412.fizz-buzz/README.md deleted file mode 100755 index ed1fe6486..000000000 --- a/Algorithms/0412.fizz-buzz/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# [412. Fizz Buzz](https://leetcode.com/problems/fizz-buzz/) - -## 题目 - - Write a program that outputs the string representation of numbers from 1 to n. - -But for multiples of three it should output “Fizz” instead of the number and for the multiples of five output “Buzz”. For numbers which are multiples of both three and five output “FizzBuzz”. - -Example: -n = 15, - -Return: -[ - "1", - "2", - "Fizz", - "4", - "Buzz", - "Fizz", - "7", - "8", - "Fizz", - "Buzz", - "11", - "Fizz", - "13", - "14", - "FizzBuzz" -] - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0412.fizz-buzz/fizz-buzz.go b/Algorithms/0412.fizz-buzz/fizz-buzz.go deleted file mode 100755 index 96b5306f7..000000000 --- a/Algorithms/0412.fizz-buzz/fizz-buzz.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0412 - diff --git a/Algorithms/0412.fizz-buzz/fizz-buzz_test.go b/Algorithms/0412.fizz-buzz/fizz-buzz_test.go deleted file mode 100755 index f3f06edd9..000000000 --- a/Algorithms/0412.fizz-buzz/fizz-buzz_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0412 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0412(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0413.arithmetic-slices/README.md b/Algorithms/0413.arithmetic-slices/README.md deleted file mode 100755 index 380a8f98d..000000000 --- a/Algorithms/0413.arithmetic-slices/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# [413. Arithmetic Slices](https://leetcode.com/problems/arithmetic-slices/) - -## 题目 - - A sequence of number is called arithmetic if it consists of at least three elements and if the difference between any two consecutive elements is the same. - -For example, these are arithmetic sequence: -1, 3, 5, 7, 9 -7, 7, 7, 7 -3, -1, -5, -9 - -The following sequence is not arithmetic. 1, 1, 2, 5, 7 - - -A zero-indexed array A consisting of N numbers is given. A slice of that array is any pair of integers (P, Q) such that 0 <= P < Q < N. - -A slice (P, Q) of array A is called arithmetic if the sequence: - A[P], A[p + 1], ..., A[Q - 1], A[Q] is arithmetic. In particular, this means that P + 1 < Q. - -The function should return the number of arithmetic slices in the array A. - - -Example: -A = [1, 2, 3, 4] - -return: 3, for 3 arithmetic slices in A: [1, 2, 3], [2, 3, 4] and [1, 2, 3, 4] itself. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0413.arithmetic-slices/arithmetic-slices.go b/Algorithms/0413.arithmetic-slices/arithmetic-slices.go deleted file mode 100755 index 8494cd2ce..000000000 --- a/Algorithms/0413.arithmetic-slices/arithmetic-slices.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0413 - diff --git a/Algorithms/0413.arithmetic-slices/arithmetic-slices_test.go b/Algorithms/0413.arithmetic-slices/arithmetic-slices_test.go deleted file mode 100755 index af99925cd..000000000 --- a/Algorithms/0413.arithmetic-slices/arithmetic-slices_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0413 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0413(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0415.add-strings/README.md b/Algorithms/0415.add-strings/README.md deleted file mode 100755 index 76170c3d3..000000000 --- a/Algorithms/0415.add-strings/README.md +++ /dev/null @@ -1,22 +0,0 @@ -# [415. Add Strings](https://leetcode.com/problems/add-strings/) - -## 题目 - - Given two non-negative integers num1 and num2 represented as string, return the sum of num1 and num2. - -Note: - -The length of both num1 and num2 is < 5100. -Both num1 and num2 contains only digits 0-9. -Both num1 and num2 does not contain any leading zero. -You must not use any built-in BigInteger library or convert the inputs to integer directly. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0415.add-strings/add-strings.go b/Algorithms/0415.add-strings/add-strings.go deleted file mode 100755 index 86027cddd..000000000 --- a/Algorithms/0415.add-strings/add-strings.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0415 - diff --git a/Algorithms/0415.add-strings/add-strings_test.go b/Algorithms/0415.add-strings/add-strings_test.go deleted file mode 100755 index 148a0bc0e..000000000 --- a/Algorithms/0415.add-strings/add-strings_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0415 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0415(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0416.partition-equal-subset-sum/README.md b/Algorithms/0416.partition-equal-subset-sum/README.md deleted file mode 100755 index 8008a1811..000000000 --- a/Algorithms/0416.partition-equal-subset-sum/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# [416. Partition Equal Subset Sum](https://leetcode.com/problems/partition-equal-subset-sum/) - -## 题目 - - Given a non-empty array containing only positive integers, find if the array can be partitioned into two subsets such that the sum of elements in both subsets is equal. - - -Note: - -Each of the array element will not exceed 100. -The array size will not exceed 200. - - - -Example 1: -Input: [1, 5, 11, 5] - -Output: true - -Explanation: The array can be partitioned as [1, 5, 5] and [11]. - - - -Example 2: -Input: [1, 2, 3, 5] - -Output: false - -Explanation: The array cannot be partitioned into equal sum subsets. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0416.partition-equal-subset-sum/partition-equal-subset-sum.go b/Algorithms/0416.partition-equal-subset-sum/partition-equal-subset-sum.go deleted file mode 100755 index 7e66cca2b..000000000 --- a/Algorithms/0416.partition-equal-subset-sum/partition-equal-subset-sum.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0416 - diff --git a/Algorithms/0416.partition-equal-subset-sum/partition-equal-subset-sum_test.go b/Algorithms/0416.partition-equal-subset-sum/partition-equal-subset-sum_test.go deleted file mode 100755 index a8dc3cf98..000000000 --- a/Algorithms/0416.partition-equal-subset-sum/partition-equal-subset-sum_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0416 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0416(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0417.pacific-atlantic-water-flow/README.md b/Algorithms/0417.pacific-atlantic-water-flow/README.md deleted file mode 100755 index a55dfc73c..000000000 --- a/Algorithms/0417.pacific-atlantic-water-flow/README.md +++ /dev/null @@ -1,40 +0,0 @@ -# [417. Pacific Atlantic Water Flow](https://leetcode.com/problems/pacific-atlantic-water-flow/) - -## 题目 - - Given an m x n matrix of non-negative integers representing the height of each unit cell in a continent, the "Pacific ocean" touches the left and top edges of the matrix and the "Atlantic ocean" touches the right and bottom edges. - -Water can only flow in four directions (up, down, left, or right) from a cell to another one with height equal or lower. - -Find the list of grid coordinates where water can flow to both the Pacific and Atlantic ocean. - -Note: - -The order of returned grid coordinates does not matter. -Both m and n are less than 150. - - -Example: -Given the following 5x5 matrix: - - Pacific ~ ~ ~ ~ ~ - ~ 1 2 2 3 (5) * - ~ 3 2 3 (4) (4) * - ~ 2 4 (5) 3 1 * - ~ (6) (7) 1 4 5 * - ~ (5) 1 1 2 4 * - * * * * * Atlantic - -Return: - -[[0, 4], [1, 3], [1, 4], [2, 2], [3, 0], [3, 1], [4, 0]] (positions with parentheses in above matrix). - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0417.pacific-atlantic-water-flow/pacific-atlantic-water-flow.go b/Algorithms/0417.pacific-atlantic-water-flow/pacific-atlantic-water-flow.go deleted file mode 100755 index 1735032b7..000000000 --- a/Algorithms/0417.pacific-atlantic-water-flow/pacific-atlantic-water-flow.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0417 - diff --git a/Algorithms/0417.pacific-atlantic-water-flow/pacific-atlantic-water-flow_test.go b/Algorithms/0417.pacific-atlantic-water-flow/pacific-atlantic-water-flow_test.go deleted file mode 100755 index dece2d6d8..000000000 --- a/Algorithms/0417.pacific-atlantic-water-flow/pacific-atlantic-water-flow_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0417 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0417(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0419.battleships-in-a-board/README.md b/Algorithms/0419.battleships-in-a-board/README.md deleted file mode 100755 index 17d2af857..000000000 --- a/Algorithms/0419.battleships-in-a-board/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# [419. Battleships in a Board](https://leetcode.com/problems/battleships-in-a-board/) - -## 题目 - - Given an 2D board, count how many battleships are in it. The battleships are represented with 'X's, empty slots are represented with '.'s. You may assume the following rules: - - -You receive a valid board, made of only battleships or empty slots. -Battleships can only be placed horizontally or vertically. In other words, they can only be made of the shape 1xN (1 row, N columns) or Nx1 (N rows, 1 column), where N can be of any size. -At least one horizontal or vertical cell separates between two battleships - there are no adjacent battleships. - - -Example: -X..X -...X -...X - -In the above board there are 2 battleships. - -Invalid Example: -...X -XXXX -...X - -This is an invalid board that you will not receive - as battleships will always have a cell separating between them. - -Follow up:Could you do it in one-pass, using only O(1) extra memory and without modifying the value of the board? - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0419.battleships-in-a-board/battleships-in-a-board.go b/Algorithms/0419.battleships-in-a-board/battleships-in-a-board.go deleted file mode 100755 index dab698611..000000000 --- a/Algorithms/0419.battleships-in-a-board/battleships-in-a-board.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0419 - diff --git a/Algorithms/0419.battleships-in-a-board/battleships-in-a-board_test.go b/Algorithms/0419.battleships-in-a-board/battleships-in-a-board_test.go deleted file mode 100755 index 075d37268..000000000 --- a/Algorithms/0419.battleships-in-a-board/battleships-in-a-board_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0419 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0419(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0420.strong-password-checker/README.md b/Algorithms/0420.strong-password-checker/README.md deleted file mode 100755 index 1689b77d7..000000000 --- a/Algorithms/0420.strong-password-checker/README.md +++ /dev/null @@ -1,23 +0,0 @@ -# [420. Strong Password Checker](https://leetcode.com/problems/strong-password-checker/) - -## 题目 - - A password is considered strong if below conditions are all met: - - - It has at least 6 characters and at most 20 characters. - It must contain at least one lowercase letter, at least one uppercase letter, and at least one digit. - It must NOT contain three repeating characters in a row ("...aaa..." is weak, but "...aa...a..." is strong, assuming other conditions are met). - - -Write a function strongPasswordChecker(s), that takes a string s as input, and return the MINIMUM change required to make s a strong password. If s is already strong, return 0. - -Insertion, deletion or replace of any one character are all considered as one change. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0420.strong-password-checker/strong-password-checker.go b/Algorithms/0420.strong-password-checker/strong-password-checker.go deleted file mode 100755 index 93e0e8fa7..000000000 --- a/Algorithms/0420.strong-password-checker/strong-password-checker.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0420 - diff --git a/Algorithms/0420.strong-password-checker/strong-password-checker_test.go b/Algorithms/0420.strong-password-checker/strong-password-checker_test.go deleted file mode 100755 index 095328fe4..000000000 --- a/Algorithms/0420.strong-password-checker/strong-password-checker_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0420 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0420(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0421.maximum-xor-of-two-numbers-in-an-array/README.md b/Algorithms/0421.maximum-xor-of-two-numbers-in-an-array/README.md deleted file mode 100755 index bdbd505ac..000000000 --- a/Algorithms/0421.maximum-xor-of-two-numbers-in-an-array/README.md +++ /dev/null @@ -1,26 +0,0 @@ -# [421. Maximum XOR of Two Numbers in an Array](https://leetcode.com/problems/maximum-xor-of-two-numbers-in-an-array/) - -## 题目 - - Given a non-empty array of numbers, a0, a1, a2, … , an-1, where 0 ≤ ai < 231. - -Find the maximum result of ai XOR aj, where 0 ≤ i, j < n. - -Could you do this in O(n) runtime? - -Example: -Input: [3, 10, 5, 25, 2, 8] - -Output: 28 - -Explanation: The maximum result is 5 ^ 25 = 28. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0421.maximum-xor-of-two-numbers-in-an-array/maximum-xor-of-two-numbers-in-an-array.go b/Algorithms/0421.maximum-xor-of-two-numbers-in-an-array/maximum-xor-of-two-numbers-in-an-array.go deleted file mode 100755 index 7d09de9a2..000000000 --- a/Algorithms/0421.maximum-xor-of-two-numbers-in-an-array/maximum-xor-of-two-numbers-in-an-array.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0421 - diff --git a/Algorithms/0421.maximum-xor-of-two-numbers-in-an-array/maximum-xor-of-two-numbers-in-an-array_test.go b/Algorithms/0421.maximum-xor-of-two-numbers-in-an-array/maximum-xor-of-two-numbers-in-an-array_test.go deleted file mode 100755 index 2182007c4..000000000 --- a/Algorithms/0421.maximum-xor-of-two-numbers-in-an-array/maximum-xor-of-two-numbers-in-an-array_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0421 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0421(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0423.reconstruct-original-digits-from-english/README.md b/Algorithms/0423.reconstruct-original-digits-from-english/README.md deleted file mode 100755 index 51b14358a..000000000 --- a/Algorithms/0423.reconstruct-original-digits-from-english/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# [423. Reconstruct Original Digits from English](https://leetcode.com/problems/reconstruct-original-digits-from-english/) - -## 题目 - - Given a non-empty string containing an out-of-order English representation of digits 0-9, output the digits in ascending order. - -Note: - -Input contains only lowercase English letters. -Input is guaranteed to be valid and can be transformed to its original digits. That means invalid inputs such as "abc" or "zerone" are not permitted. -Input length is less than 50,000. - - - -Example 1: -Input: "owoztneoer" - -Output: "012" - - - -Example 2: -Input: "fviefuro" - -Output: "45" - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0423.reconstruct-original-digits-from-english/reconstruct-original-digits-from-english.go b/Algorithms/0423.reconstruct-original-digits-from-english/reconstruct-original-digits-from-english.go deleted file mode 100755 index f495a4e4d..000000000 --- a/Algorithms/0423.reconstruct-original-digits-from-english/reconstruct-original-digits-from-english.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0423 - diff --git a/Algorithms/0423.reconstruct-original-digits-from-english/reconstruct-original-digits-from-english_test.go b/Algorithms/0423.reconstruct-original-digits-from-english/reconstruct-original-digits-from-english_test.go deleted file mode 100755 index 4d310af22..000000000 --- a/Algorithms/0423.reconstruct-original-digits-from-english/reconstruct-original-digits-from-english_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0423 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0423(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0424.longest-repeating-character-replacement/README.md b/Algorithms/0424.longest-repeating-character-replacement/README.md deleted file mode 100755 index 1eb2740f9..000000000 --- a/Algorithms/0424.longest-repeating-character-replacement/README.md +++ /dev/null @@ -1,44 +0,0 @@ -# [424. Longest Repeating Character Replacement](https://leetcode.com/problems/longest-repeating-character-replacement/) - -## 题目 - - Given a string that consists of only uppercase English letters, you can replace any letter in the string with another letter at most k times. Find the length of a longest substring containing all repeating letters you can get after performing the above operations. - -Note: -Both the string's length and k will not exceed 104. - - - -Example 1: -Input: -s = "ABAB", k = 2 - -Output: -4 - -Explanation: -Replace the two 'A's with two 'B's or vice versa. - - - - -Example 2: -Input: -s = "AABABBA", k = 1 - -Output: -4 - -Explanation: -Replace the one 'A' in the middle with 'B' and form "AABBBBA". -The substring "BBBB" has the longest repeating letters, which is 4. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0424.longest-repeating-character-replacement/longest-repeating-character-replacement.go b/Algorithms/0424.longest-repeating-character-replacement/longest-repeating-character-replacement.go deleted file mode 100755 index a2bd30e93..000000000 --- a/Algorithms/0424.longest-repeating-character-replacement/longest-repeating-character-replacement.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0424 - diff --git a/Algorithms/0424.longest-repeating-character-replacement/longest-repeating-character-replacement_test.go b/Algorithms/0424.longest-repeating-character-replacement/longest-repeating-character-replacement_test.go deleted file mode 100755 index 8c57bd061..000000000 --- a/Algorithms/0424.longest-repeating-character-replacement/longest-repeating-character-replacement_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0424 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0424(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0432.all-oone-data-structure/README.md b/Algorithms/0432.all-oone-data-structure/README.md deleted file mode 100755 index 64f3b206e..000000000 --- a/Algorithms/0432.all-oone-data-structure/README.md +++ /dev/null @@ -1,26 +0,0 @@ -# [432. All O`one Data Structure](https://leetcode.com/problems/all-oone-data-structure/) - -## 题目 - - Implement a data structure supporting the following operations: - - - -Inc(Key) - Inserts a new key with value 1. Or increments an existing key by 1. Key is guaranteed to be a non-empty string. -Dec(Key) - If Key's value is 1, remove it from the data structure. Otherwise decrements an existing key by 1. If the key does not exist, this function does nothing. Key is guaranteed to be a non-empty string. -GetMaxKey() - Returns one of the keys with maximal value. If no element exists, return an empty string "". -GetMinKey() - Returns one of the keys with minimal value. If no element exists, return an empty string "". - - - - -Challenge: Perform all these in O(1) time complexity. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0432.all-oone-data-structure/all-oone-data-structure.go b/Algorithms/0432.all-oone-data-structure/all-oone-data-structure.go deleted file mode 100755 index 15ae6f722..000000000 --- a/Algorithms/0432.all-oone-data-structure/all-oone-data-structure.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0432 - diff --git a/Algorithms/0432.all-oone-data-structure/all-oone-data-structure_test.go b/Algorithms/0432.all-oone-data-structure/all-oone-data-structure_test.go deleted file mode 100755 index fe162feb8..000000000 --- a/Algorithms/0432.all-oone-data-structure/all-oone-data-structure_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0432 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0432(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0434.number-of-segments-in-a-string/README.md b/Algorithms/0434.number-of-segments-in-a-string/README.md deleted file mode 100755 index 04f773aa8..000000000 --- a/Algorithms/0434.number-of-segments-in-a-string/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# [434. Number of Segments in a String](https://leetcode.com/problems/number-of-segments-in-a-string/) - -## 题目 - - Count the number of segments in a string, where a segment is defined to be a contiguous sequence of non-space characters. - -Please note that the string does not contain any non-printable characters. - -Example: -Input: "Hello, my name is John" -Output: 5 - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0434.number-of-segments-in-a-string/number-of-segments-in-a-string.go b/Algorithms/0434.number-of-segments-in-a-string/number-of-segments-in-a-string.go deleted file mode 100755 index 8295a971b..000000000 --- a/Algorithms/0434.number-of-segments-in-a-string/number-of-segments-in-a-string.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0434 - diff --git a/Algorithms/0434.number-of-segments-in-a-string/number-of-segments-in-a-string_test.go b/Algorithms/0434.number-of-segments-in-a-string/number-of-segments-in-a-string_test.go deleted file mode 100755 index bad4708e8..000000000 --- a/Algorithms/0434.number-of-segments-in-a-string/number-of-segments-in-a-string_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0434 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0434(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0435.non-overlapping-intervals/README.md b/Algorithms/0435.non-overlapping-intervals/README.md deleted file mode 100755 index ce52b43c8..000000000 --- a/Algorithms/0435.non-overlapping-intervals/README.md +++ /dev/null @@ -1,49 +0,0 @@ -# [435. Non-overlapping Intervals](https://leetcode.com/problems/non-overlapping-intervals/) - -## 题目 - - -Given a collection of intervals, find the minimum number of intervals you need to remove to make the rest of the intervals non-overlapping. - - -Note: - -You may assume the interval's end point is always bigger than its start point. -Intervals like [1,2] and [2,3] have borders "touching" but they don't overlap each other. - - - -Example 1: -Input: [ [1,2], [2,3], [3,4], [1,3] ] - -Output: 1 - -Explanation: [1,3] can be removed and the rest of intervals are non-overlapping. - - - -Example 2: -Input: [ [1,2], [1,2], [1,2] ] - -Output: 2 - -Explanation: You need to remove two [1,2] to make the rest of intervals non-overlapping. - - - -Example 3: -Input: [ [1,2], [2,3] ] - -Output: 0 - -Explanation: You don't need to remove any of the intervals since they're already non-overlapping. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0435.non-overlapping-intervals/non-overlapping-intervals.go b/Algorithms/0435.non-overlapping-intervals/non-overlapping-intervals.go deleted file mode 100755 index 57515de41..000000000 --- a/Algorithms/0435.non-overlapping-intervals/non-overlapping-intervals.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0435 - diff --git a/Algorithms/0435.non-overlapping-intervals/non-overlapping-intervals_test.go b/Algorithms/0435.non-overlapping-intervals/non-overlapping-intervals_test.go deleted file mode 100755 index eedb62adc..000000000 --- a/Algorithms/0435.non-overlapping-intervals/non-overlapping-intervals_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0435 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0435(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0436.find-right-interval/README.md b/Algorithms/0436.find-right-interval/README.md deleted file mode 100755 index 079644fe1..000000000 --- a/Algorithms/0436.find-right-interval/README.md +++ /dev/null @@ -1,56 +0,0 @@ -# [436. Find Right Interval](https://leetcode.com/problems/find-right-interval/) - -## 题目 - - -Given a set of intervals, for each of the interval i, check if there exists an interval j whose start point is bigger than or equal to the end point of the interval i, which can be called that j is on the "right" of i. - - - -For any interval i, you need to store the minimum interval j's index, which means that the interval j has the minimum start point to build the "right" relationship for interval i. If the interval j doesn't exist, store -1 for the interval i. Finally, you need output the stored value of each interval as an array. - - -Note: - -You may assume the interval's end point is always bigger than its start point. -You may assume none of these intervals have the same start point. - - - -Example 1: -Input: [ [1,2] ] - -Output: [-1] - -Explanation: There is only one interval in the collection, so it outputs -1. - - - -Example 2: -Input: [ [3,4], [2,3], [1,2] ] - -Output: [-1, 0, 1] - -Explanation: There is no satisfied "right" interval for [3,4]. -For [2,3], the interval [3,4] has minimum-"right" start point; -For [1,2], the interval [2,3] has minimum-"right" start point. - - - -Example 3: -Input: [ [1,4], [2,3], [3,4] ] - -Output: [-1, 2, -1] - -Explanation: There is no satisfied "right" interval for [1,4] and [3,4]. -For [2,3], the interval [3,4] has minimum-"right" start point. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0436.find-right-interval/find-right-interval.go b/Algorithms/0436.find-right-interval/find-right-interval.go deleted file mode 100755 index e651b0245..000000000 --- a/Algorithms/0436.find-right-interval/find-right-interval.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0436 - diff --git a/Algorithms/0436.find-right-interval/find-right-interval_test.go b/Algorithms/0436.find-right-interval/find-right-interval_test.go deleted file mode 100755 index c1ed7d177..000000000 --- a/Algorithms/0436.find-right-interval/find-right-interval_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0436 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0436(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0437.path-sum-iii/README.md b/Algorithms/0437.path-sum-iii/README.md deleted file mode 100755 index 39e73b7a1..000000000 --- a/Algorithms/0437.path-sum-iii/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# [437. Path Sum III](https://leetcode.com/problems/path-sum-iii/) - -## 题目 - - You are given a binary tree in which each node contains an integer value. - -Find the number of paths that sum to a given value. - -The path does not need to start or end at the root or a leaf, but it must go downwards -(traveling only from parent nodes to child nodes). - -The tree has no more than 1,000 nodes and the values are in the range -1,000,000 to 1,000,000. - -Example: -root = [10,5,-3,3,2,null,11,3,-2,null,1], sum = 8 - - 10 - / \ - 5 -3 - / \ \ - 3 2 11 - / \ \ -3 -2 1 - -Return 3. The paths that sum to 8 are: - -1. 5 -> 3 -2. 5 -> 2 -> 1 -3. -3 -> 11 - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0437.path-sum-iii/path-sum-iii.go b/Algorithms/0437.path-sum-iii/path-sum-iii.go deleted file mode 100755 index db72f96fe..000000000 --- a/Algorithms/0437.path-sum-iii/path-sum-iii.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0437 - diff --git a/Algorithms/0437.path-sum-iii/path-sum-iii_test.go b/Algorithms/0437.path-sum-iii/path-sum-iii_test.go deleted file mode 100755 index deffd214c..000000000 --- a/Algorithms/0437.path-sum-iii/path-sum-iii_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0437 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0437(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0438.find-all-anagrams-in-a-string/README.md b/Algorithms/0438.find-all-anagrams-in-a-string/README.md deleted file mode 100755 index 798dd88a6..000000000 --- a/Algorithms/0438.find-all-anagrams-in-a-string/README.md +++ /dev/null @@ -1,44 +0,0 @@ -# [438. Find All Anagrams in a String](https://leetcode.com/problems/find-all-anagrams-in-a-string/) - -## 题目 - - Given a string s and a non-empty string p, find all the start indices of p's anagrams in s. - -Strings consists of lowercase English letters only and the length of both strings s and p will not be larger than 20,100. - -The order of output does not matter. - -Example 1: -Input: -s: "cbaebabacd" p: "abc" - -Output: -[0, 6] - -Explanation: -The substring with start index = 0 is "cba", which is an anagram of "abc". -The substring with start index = 6 is "bac", which is an anagram of "abc". - - - -Example 2: -Input: -s: "abab" p: "ab" - -Output: -[0, 1, 2] - -Explanation: -The substring with start index = 0 is "ab", which is an anagram of "ab". -The substring with start index = 1 is "ba", which is an anagram of "ab". -The substring with start index = 2 is "ab", which is an anagram of "ab". - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0438.find-all-anagrams-in-a-string/find-all-anagrams-in-a-string.go b/Algorithms/0438.find-all-anagrams-in-a-string/find-all-anagrams-in-a-string.go deleted file mode 100755 index 650715cc9..000000000 --- a/Algorithms/0438.find-all-anagrams-in-a-string/find-all-anagrams-in-a-string.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0438 - diff --git a/Algorithms/0438.find-all-anagrams-in-a-string/find-all-anagrams-in-a-string_test.go b/Algorithms/0438.find-all-anagrams-in-a-string/find-all-anagrams-in-a-string_test.go deleted file mode 100755 index 04a06c400..000000000 --- a/Algorithms/0438.find-all-anagrams-in-a-string/find-all-anagrams-in-a-string_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0438 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0438(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0440.k-th-smallest-in-lexicographical-order/README.md b/Algorithms/0440.k-th-smallest-in-lexicographical-order/README.md deleted file mode 100755 index e30f144c4..000000000 --- a/Algorithms/0440.k-th-smallest-in-lexicographical-order/README.md +++ /dev/null @@ -1,28 +0,0 @@ -# [440. K-th Smallest in Lexicographical Order](https://leetcode.com/problems/k-th-smallest-in-lexicographical-order/) - -## 题目 - - Given integers n and k, find the lexicographically k-th smallest integer in the range from 1 to n. - -Note: 1 ≤ k ≤ n ≤ 109. - -Example: -Input: -n: 13 k: 2 - -Output: -10 - -Explanation: -The lexicographical order is [1, 10, 11, 12, 13, 2, 3, 4, 5, 6, 7, 8, 9], so the second smallest number is 10. - - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0440.k-th-smallest-in-lexicographical-order/k-th-smallest-in-lexicographical-order.go b/Algorithms/0440.k-th-smallest-in-lexicographical-order/k-th-smallest-in-lexicographical-order.go deleted file mode 100755 index 99c922c33..000000000 --- a/Algorithms/0440.k-th-smallest-in-lexicographical-order/k-th-smallest-in-lexicographical-order.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0440 - diff --git a/Algorithms/0440.k-th-smallest-in-lexicographical-order/k-th-smallest-in-lexicographical-order_test.go b/Algorithms/0440.k-th-smallest-in-lexicographical-order/k-th-smallest-in-lexicographical-order_test.go deleted file mode 100755 index 0561ec903..000000000 --- a/Algorithms/0440.k-th-smallest-in-lexicographical-order/k-th-smallest-in-lexicographical-order_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0440 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0440(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0441.arranging-coins/README.md b/Algorithms/0441.arranging-coins/README.md deleted file mode 100755 index b459fb39b..000000000 --- a/Algorithms/0441.arranging-coins/README.md +++ /dev/null @@ -1,42 +0,0 @@ -# [441. Arranging Coins](https://leetcode.com/problems/arranging-coins/) - -## 题目 - - You have a total of n coins that you want to form in a staircase shape, where every k-th row must have exactly k coins. - -Given n, find the total number of full staircase rows that can be formed. - -n is a non-negative integer and fits within the range of a 32-bit signed integer. - -Example 1: -n = 5 - -The coins can form the following rows: -¤ -¤ ¤ -¤ ¤ - -Because the 3rd row is incomplete, we return 2. - - - -Example 2: -n = 8 - -The coins can form the following rows: -¤ -¤ ¤ -¤ ¤ ¤ -¤ ¤ - -Because the 4th row is incomplete, we return 3. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0441.arranging-coins/arranging-coins.go b/Algorithms/0441.arranging-coins/arranging-coins.go deleted file mode 100755 index 820a31bb6..000000000 --- a/Algorithms/0441.arranging-coins/arranging-coins.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0441 - diff --git a/Algorithms/0441.arranging-coins/arranging-coins_test.go b/Algorithms/0441.arranging-coins/arranging-coins_test.go deleted file mode 100755 index 79c12afed..000000000 --- a/Algorithms/0441.arranging-coins/arranging-coins_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0441 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0441(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0442.find-all-duplicates-in-an-array/README.md b/Algorithms/0442.find-all-duplicates-in-an-array/README.md deleted file mode 100755 index 863833f34..000000000 --- a/Algorithms/0442.find-all-duplicates-in-an-array/README.md +++ /dev/null @@ -1,25 +0,0 @@ -# [442. Find All Duplicates in an Array](https://leetcode.com/problems/find-all-duplicates-in-an-array/) - -## 题目 - - Given an array of integers, 1 ≤ a[i] ≤ n (n = size of array), some elements appear twice and others appear once. - -Find all the elements that appear twice in this array. - -Could you do it without extra space and in O(n) runtime? - -Example: -Input: -[4,3,2,7,8,2,3,1] - -Output: -[2,3] - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0442.find-all-duplicates-in-an-array/find-all-duplicates-in-an-array.go b/Algorithms/0442.find-all-duplicates-in-an-array/find-all-duplicates-in-an-array.go deleted file mode 100755 index 408c45b4e..000000000 --- a/Algorithms/0442.find-all-duplicates-in-an-array/find-all-duplicates-in-an-array.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0442 - diff --git a/Algorithms/0442.find-all-duplicates-in-an-array/find-all-duplicates-in-an-array_test.go b/Algorithms/0442.find-all-duplicates-in-an-array/find-all-duplicates-in-an-array_test.go deleted file mode 100755 index dde6bf9c7..000000000 --- a/Algorithms/0442.find-all-duplicates-in-an-array/find-all-duplicates-in-an-array_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0442 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0442(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0445.add-two-numbers-ii/README.md b/Algorithms/0445.add-two-numbers-ii/README.md deleted file mode 100755 index c8fb7600d..000000000 --- a/Algorithms/0445.add-two-numbers-ii/README.md +++ /dev/null @@ -1,26 +0,0 @@ -# [445. Add Two Numbers II](https://leetcode.com/problems/add-two-numbers-ii/) - -## 题目 - - You are given two non-empty linked lists representing two non-negative integers. The most significant digit comes first and each of their nodes contain a single digit. Add the two numbers and return it as a linked list. - -You may assume the two numbers do not contain any leading zero, except the number 0 itself. - -Follow up: -What if you cannot modify the input lists? In other words, reversing the lists is not allowed. - - - -Example: -Input: (7 -> 2 -> 4 -> 3) + (5 -> 6 -> 4) -Output: 7 -> 8 -> 0 -> 7 - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0445.add-two-numbers-ii/add-two-numbers-ii.go b/Algorithms/0445.add-two-numbers-ii/add-two-numbers-ii.go deleted file mode 100755 index 04bb7782c..000000000 --- a/Algorithms/0445.add-two-numbers-ii/add-two-numbers-ii.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0445 - diff --git a/Algorithms/0445.add-two-numbers-ii/add-two-numbers-ii_test.go b/Algorithms/0445.add-two-numbers-ii/add-two-numbers-ii_test.go deleted file mode 100755 index 48a0e6931..000000000 --- a/Algorithms/0445.add-two-numbers-ii/add-two-numbers-ii_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0445 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0445(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0446.arithmetic-slices-ii-subsequence/README.md b/Algorithms/0446.arithmetic-slices-ii-subsequence/README.md deleted file mode 100755 index c28d7ebfd..000000000 --- a/Algorithms/0446.arithmetic-slices-ii-subsequence/README.md +++ /dev/null @@ -1,47 +0,0 @@ -# [446. Arithmetic Slices II - Subsequence](https://leetcode.com/problems/arithmetic-slices-ii-subsequence/) - -## 题目 - - A sequence of numbers is called arithmetic if it consists of at least three elements and if the difference between any two consecutive elements is the same. - -For example, these are arithmetic sequences: -1, 3, 5, 7, 9 -7, 7, 7, 7 -3, -1, -5, -9 - -The following sequence is not arithmetic. 1, 1, 2, 5, 7 - - -A zero-indexed array A consisting of N numbers is given. A subsequence slice of that array is any sequence of integers (P0, P1, ..., Pk) such that 0 ≤ P0 < P1 < ... < Pk < N. - -A subsequence slice (P0, P1, ..., Pk) of array A is called arithmetic if the sequence A[P0], A[P1], ..., A[Pk-1], A[Pk] is arithmetic. In particular, this means that k ≥ 2. - -The function should return the number of arithmetic subsequence slices in the array A. - -The input contains N integers. Every integer is in the range of -231 and 231-1 and 0 ≤ N ≤ 1000. The output is guaranteed to be less than 231-1. - - -Example: -Input: [2, 4, 6, 8, 10] - -Output: 7 - -Explanation: -All arithmetic subsequence slices are: -[2,4,6] -[4,6,8] -[6,8,10] -[2,4,6,8] -[4,6,8,10] -[2,4,6,8,10] -[2,6,10] - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0446.arithmetic-slices-ii-subsequence/arithmetic-slices-ii-subsequence.go b/Algorithms/0446.arithmetic-slices-ii-subsequence/arithmetic-slices-ii-subsequence.go deleted file mode 100755 index c22c9de2c..000000000 --- a/Algorithms/0446.arithmetic-slices-ii-subsequence/arithmetic-slices-ii-subsequence.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0446 - diff --git a/Algorithms/0446.arithmetic-slices-ii-subsequence/arithmetic-slices-ii-subsequence_test.go b/Algorithms/0446.arithmetic-slices-ii-subsequence/arithmetic-slices-ii-subsequence_test.go deleted file mode 100755 index 19f0e6f78..000000000 --- a/Algorithms/0446.arithmetic-slices-ii-subsequence/arithmetic-slices-ii-subsequence_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0446 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0446(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0447.number-of-boomerangs/README.md b/Algorithms/0447.number-of-boomerangs/README.md deleted file mode 100755 index ab17c59f6..000000000 --- a/Algorithms/0447.number-of-boomerangs/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# [447. Number of Boomerangs](https://leetcode.com/problems/number-of-boomerangs/) - -## 题目 - - Given n points in the plane that are all pairwise distinct, a "boomerang" is a tuple of points (i, j, k) such that the distance between i and j equals the distance between i and k (the order of the tuple matters). - -Find the number of boomerangs. You may assume that n will be at most 500 and coordinates of points are all in the range [-10000, 10000] (inclusive). - -Example: -Input: -[[0,0],[1,0],[2,0]] - -Output: -2 - -Explanation: -The two boomerangs are [[1,0],[0,0],[2,0]] and [[1,0],[2,0],[0,0]] - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0447.number-of-boomerangs/number-of-boomerangs.go b/Algorithms/0447.number-of-boomerangs/number-of-boomerangs.go deleted file mode 100755 index 48d01f13f..000000000 --- a/Algorithms/0447.number-of-boomerangs/number-of-boomerangs.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0447 - diff --git a/Algorithms/0447.number-of-boomerangs/number-of-boomerangs_test.go b/Algorithms/0447.number-of-boomerangs/number-of-boomerangs_test.go deleted file mode 100755 index 3c6c148ec..000000000 --- a/Algorithms/0447.number-of-boomerangs/number-of-boomerangs_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0447 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0447(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0449.serialize-and-deserialize-bst/README.md b/Algorithms/0449.serialize-and-deserialize-bst/README.md deleted file mode 100755 index 9e987ac4b..000000000 --- a/Algorithms/0449.serialize-and-deserialize-bst/README.md +++ /dev/null @@ -1,23 +0,0 @@ -# [449. Serialize and Deserialize BST](https://leetcode.com/problems/serialize-and-deserialize-bst/) - -## 题目 - - Serialization is the process of converting a data structure or object into a sequence of bits so that it can be stored in a file or memory buffer, or transmitted across a network connection link to be reconstructed later in the same or another computer environment. - -Design an algorithm to serialize and deserialize a binary search tree. There is no restriction on how your serialization/deserialization algorithm should work. You just need to ensure that a binary search tree can be serialized to a string and this string can be deserialized to the original tree structure. - - -The encoded string should be as compact as possible. - - - -Note: Do not use class member/global/static variables to store states. Your serialize and deserialize algorithms should be stateless. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0449.serialize-and-deserialize-bst/serialize-and-deserialize-bst.go b/Algorithms/0449.serialize-and-deserialize-bst/serialize-and-deserialize-bst.go deleted file mode 100755 index 454cd6f27..000000000 --- a/Algorithms/0449.serialize-and-deserialize-bst/serialize-and-deserialize-bst.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0449 - diff --git a/Algorithms/0449.serialize-and-deserialize-bst/serialize-and-deserialize-bst_test.go b/Algorithms/0449.serialize-and-deserialize-bst/serialize-and-deserialize-bst_test.go deleted file mode 100755 index 5afd6a91a..000000000 --- a/Algorithms/0449.serialize-and-deserialize-bst/serialize-and-deserialize-bst_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0449 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0449(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0450.delete-node-in-a-bst/README.md b/Algorithms/0450.delete-node-in-a-bst/README.md deleted file mode 100755 index d66a886d6..000000000 --- a/Algorithms/0450.delete-node-in-a-bst/README.md +++ /dev/null @@ -1,52 +0,0 @@ -# [450. Delete Node in a BST](https://leetcode.com/problems/delete-node-in-a-bst/) - -## 题目 - - Given a root node reference of a BST and a key, delete the node with the given key in the BST. Return the root node reference (possibly updated) of the BST. - -Basically, the deletion can be divided into two stages: - -Search for a node to remove. -If the node is found, delete the node. - - - -Note: Time complexity should be O(height of tree). - -Example: -root = [5,3,6,2,4,null,7] -key = 3 - - 5 - / \ - 3 6 - / \ \ -2 4 7 - -Given key to delete is 3. So we find the node with value 3 and delete it. - -One valid answer is [5,4,6,2,null,null,7], shown in the following BST. - - 5 - / \ - 4 6 - / \ -2 7 - -Another valid answer is [5,2,6,null,4,null,7]. - - 5 - / \ - 2 6 - \ \ - 4 7 - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0450.delete-node-in-a-bst/delete-node-in-a-bst.go b/Algorithms/0450.delete-node-in-a-bst/delete-node-in-a-bst.go deleted file mode 100755 index 626d7ff53..000000000 --- a/Algorithms/0450.delete-node-in-a-bst/delete-node-in-a-bst.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0450 - diff --git a/Algorithms/0450.delete-node-in-a-bst/delete-node-in-a-bst_test.go b/Algorithms/0450.delete-node-in-a-bst/delete-node-in-a-bst_test.go deleted file mode 100755 index e73be1852..000000000 --- a/Algorithms/0450.delete-node-in-a-bst/delete-node-in-a-bst_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0450 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0450(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0451.sort-characters-by-frequency/README.md b/Algorithms/0451.sort-characters-by-frequency/README.md deleted file mode 100755 index a36740b65..000000000 --- a/Algorithms/0451.sort-characters-by-frequency/README.md +++ /dev/null @@ -1,52 +0,0 @@ -# [451. Sort Characters By Frequency](https://leetcode.com/problems/sort-characters-by-frequency/) - -## 题目 - - Given a string, sort it in decreasing order based on the frequency of characters. - -Example 1: -Input: -"tree" - -Output: -"eert" - -Explanation: -'e' appears twice while 'r' and 't' both appear once. -So 'e' must appear before both 'r' and 't'. Therefore "eetr" is also a valid answer. - - - -Example 2: -Input: -"cccaaa" - -Output: -"cccaaa" - -Explanation: -Both 'c' and 'a' appear three times, so "aaaccc" is also a valid answer. -Note that "cacaca" is incorrect, as the same characters must be together. - - - -Example 3: -Input: -"Aabb" - -Output: -"bbAa" - -Explanation: -"bbaA" is also a valid answer, but "Aabb" is incorrect. -Note that 'A' and 'a' are treated as two different characters. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0451.sort-characters-by-frequency/sort-characters-by-frequency.go b/Algorithms/0451.sort-characters-by-frequency/sort-characters-by-frequency.go deleted file mode 100755 index fdd13229d..000000000 --- a/Algorithms/0451.sort-characters-by-frequency/sort-characters-by-frequency.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0451 - diff --git a/Algorithms/0451.sort-characters-by-frequency/sort-characters-by-frequency_test.go b/Algorithms/0451.sort-characters-by-frequency/sort-characters-by-frequency_test.go deleted file mode 100755 index abac1dc70..000000000 --- a/Algorithms/0451.sort-characters-by-frequency/sort-characters-by-frequency_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0451 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0451(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0452.minimum-number-of-arrows-to-burst-balloons/README.md b/Algorithms/0452.minimum-number-of-arrows-to-burst-balloons/README.md deleted file mode 100755 index c3698851b..000000000 --- a/Algorithms/0452.minimum-number-of-arrows-to-burst-balloons/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# [452. Minimum Number of Arrows to Burst Balloons](https://leetcode.com/problems/minimum-number-of-arrows-to-burst-balloons/) - -## 题目 - - There are a number of spherical balloons spread in two-dimensional space. For each balloon, provided input is the start and end coordinates of the horizontal diameter. Since it's horizontal, y-coordinates don't matter and hence the x-coordinates of start and end of the diameter suffice. Start is always smaller than end. There will be at most 104 balloons. - -An arrow can be shot up exactly vertically from different points along the x-axis. A balloon with xstart and xend bursts by an arrow shot at x if xstart ≤ x ≤ xend. There is no limit to the number of arrows that can be shot. An arrow once shot keeps travelling up infinitely. The problem is to find the minimum number of arrows that must be shot to burst all balloons. - -Example: -Input: -[[10,16], [2,8], [1,6], [7,12]] - -Output: -2 - -Explanation: -One way is to shoot one arrow for example at x = 6 (bursting the balloons [2,8] and [1,6]) and another arrow at x = 11 (bursting the other two balloons). - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0452.minimum-number-of-arrows-to-burst-balloons/minimum-number-of-arrows-to-burst-balloons.go b/Algorithms/0452.minimum-number-of-arrows-to-burst-balloons/minimum-number-of-arrows-to-burst-balloons.go deleted file mode 100755 index 002aa4039..000000000 --- a/Algorithms/0452.minimum-number-of-arrows-to-burst-balloons/minimum-number-of-arrows-to-burst-balloons.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0452 - diff --git a/Algorithms/0452.minimum-number-of-arrows-to-burst-balloons/minimum-number-of-arrows-to-burst-balloons_test.go b/Algorithms/0452.minimum-number-of-arrows-to-burst-balloons/minimum-number-of-arrows-to-burst-balloons_test.go deleted file mode 100755 index cba0ffd02..000000000 --- a/Algorithms/0452.minimum-number-of-arrows-to-burst-balloons/minimum-number-of-arrows-to-burst-balloons_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0452 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0452(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0453.minimum-moves-to-equal-array-elements/README.md b/Algorithms/0453.minimum-moves-to-equal-array-elements/README.md deleted file mode 100755 index 1956ec10c..000000000 --- a/Algorithms/0453.minimum-moves-to-equal-array-elements/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# [453. Minimum Moves to Equal Array Elements](https://leetcode.com/problems/minimum-moves-to-equal-array-elements/) - -## 题目 - - Given a non-empty integer array of size n, find the minimum number of moves required to make all array elements equal, where a move is incrementing n - 1 elements by 1. - -Example: -Input: -[1,2,3] - -Output: -3 - -Explanation: -Only three moves are needed (remember each move increments two elements): - -[1,2,3] => [2,3,3] => [3,4,3] => [4,4,4] - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0453.minimum-moves-to-equal-array-elements/minimum-moves-to-equal-array-elements.go b/Algorithms/0453.minimum-moves-to-equal-array-elements/minimum-moves-to-equal-array-elements.go deleted file mode 100755 index d15fcaea5..000000000 --- a/Algorithms/0453.minimum-moves-to-equal-array-elements/minimum-moves-to-equal-array-elements.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0453 - diff --git a/Algorithms/0453.minimum-moves-to-equal-array-elements/minimum-moves-to-equal-array-elements_test.go b/Algorithms/0453.minimum-moves-to-equal-array-elements/minimum-moves-to-equal-array-elements_test.go deleted file mode 100755 index bd69bd308..000000000 --- a/Algorithms/0453.minimum-moves-to-equal-array-elements/minimum-moves-to-equal-array-elements_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0453 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0453(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0454.4sum-ii/4sum-ii.go b/Algorithms/0454.4sum-ii/4sum-ii.go deleted file mode 100755 index 65bb9d8d6..000000000 --- a/Algorithms/0454.4sum-ii/4sum-ii.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0454 - diff --git a/Algorithms/0454.4sum-ii/4sum-ii_test.go b/Algorithms/0454.4sum-ii/4sum-ii_test.go deleted file mode 100755 index 6532cc830..000000000 --- a/Algorithms/0454.4sum-ii/4sum-ii_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0454 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0454(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0454.4sum-ii/README.md b/Algorithms/0454.4sum-ii/README.md deleted file mode 100755 index 762487b72..000000000 --- a/Algorithms/0454.4sum-ii/README.md +++ /dev/null @@ -1,32 +0,0 @@ -# [454. 4Sum II](https://leetcode.com/problems/4sum-ii/) - -## 题目 - - Given four lists A, B, C, D of integer values, compute how many tuples (i, j, k, l) there are such that A[i] + B[j] + C[k] + D[l] is zero. - -To make problem a bit easier, all A, B, C, D have same length of N where 0 ≤ N ≤ 500. All integers are in the range of -228 to 228 - 1 and the result is guaranteed to be at most 231 - 1. - -Example: -Input: -A = [ 1, 2] -B = [-2,-1] -C = [-1, 2] -D = [ 0, 2] - -Output: -2 - -Explanation: -The two tuples are: -1. (0, 0, 0, 1) -> A[0] + B[0] + C[0] + D[1] = 1 + (-2) + (-1) + 2 = 0 -2. (1, 1, 0, 0) -> A[1] + B[1] + C[0] + D[0] = 2 + (-1) + (-1) + 0 = 0 - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0455.assign-cookies/README.md b/Algorithms/0455.assign-cookies/README.md deleted file mode 100755 index c694c06be..000000000 --- a/Algorithms/0455.assign-cookies/README.md +++ /dev/null @@ -1,42 +0,0 @@ -# [455. Assign Cookies](https://leetcode.com/problems/assign-cookies/) - -## 题目 - - -Assume you are an awesome parent and want to give your children some cookies. But, you should give each child at most one cookie. Each child i has a greed factor gi, which is the minimum size of a cookie that the child will be content with; and each cookie j has a size sj. If sj >= gi, we can assign the cookie j to the child i, and the child i will be content. Your goal is to maximize the number of your content children and output the maximum number. - - -Note: -You may assume the greed factor is always positive. -You cannot assign more than one cookie to one child. - - -Example 1: -Input: [1,2,3], [1,1] - -Output: 1 - -Explanation: You have 3 children and 2 cookies. The greed factors of 3 children are 1, 2, 3. -And even though you have 2 cookies, since their size is both 1, you could only make the child whose greed factor is 1 content. -You need to output 1. - - - -Example 2: -Input: [1,2], [1,2,3] - -Output: 2 - -Explanation: You have 2 children and 3 cookies. The greed factors of 2 children are 1, 2. -You have 3 cookies and their sizes are big enough to gratify all of the children, -You need to output 2. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0455.assign-cookies/assign-cookies.go b/Algorithms/0455.assign-cookies/assign-cookies.go deleted file mode 100755 index af8169e3b..000000000 --- a/Algorithms/0455.assign-cookies/assign-cookies.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0455 - diff --git a/Algorithms/0455.assign-cookies/assign-cookies_test.go b/Algorithms/0455.assign-cookies/assign-cookies_test.go deleted file mode 100755 index cea2b5874..000000000 --- a/Algorithms/0455.assign-cookies/assign-cookies_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0455 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0455(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0456.132-pattern/132-pattern.go b/Algorithms/0456.132-pattern/132-pattern.go deleted file mode 100755 index 5e87029ed..000000000 --- a/Algorithms/0456.132-pattern/132-pattern.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0456 - diff --git a/Algorithms/0456.132-pattern/132-pattern_test.go b/Algorithms/0456.132-pattern/132-pattern_test.go deleted file mode 100755 index fd633eb19..000000000 --- a/Algorithms/0456.132-pattern/132-pattern_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0456 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0456(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0456.132-pattern/README.md b/Algorithms/0456.132-pattern/README.md deleted file mode 100755 index e8b1bea91..000000000 --- a/Algorithms/0456.132-pattern/README.md +++ /dev/null @@ -1,44 +0,0 @@ -# [456. 132 Pattern](https://leetcode.com/problems/132-pattern/) - -## 题目 - - -Given a sequence of n integers a1, a2, ..., an, a 132 pattern is a subsequence ai, aj, ak such -that i < j < k and ai < ak < aj. Design an algorithm that takes a list of n numbers as input and checks whether there is a 132 pattern in the list. - -Note: n will be less than 15,000. - -Example 1: -Input: [1, 2, 3, 4] - -Output: False - -Explanation: There is no 132 pattern in the sequence. - - - -Example 2: -Input: [3, 1, 4, 2] - -Output: True - -Explanation: There is a 132 pattern in the sequence: [1, 4, 2]. - - - -Example 3: -Input: [-1, 3, 2, 0] - -Output: True - -Explanation: There are three 132 patterns in the sequence: [-1, 3, 2], [-1, 3, 0] and [-1, 2, 0]. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0459.repeated-substring-pattern/README.md b/Algorithms/0459.repeated-substring-pattern/README.md deleted file mode 100755 index 57565791b..000000000 --- a/Algorithms/0459.repeated-substring-pattern/README.md +++ /dev/null @@ -1,38 +0,0 @@ -# [459. Repeated Substring Pattern](https://leetcode.com/problems/repeated-substring-pattern/) - -## 题目 - - Given a non-empty string check if it can be constructed by taking a substring of it and appending multiple copies of the substring together. You may assume the given string consists of lowercase English letters only and its length will not exceed 10000. - -Example 1: -Input: "abab" - -Output: True - -Explanation: It's the substring "ab" twice. - - - -Example 2: -Input: "aba" - -Output: False - - - -Example 3: -Input: "abcabcabcabc" - -Output: True - -Explanation: It's the substring "abc" four times. (And the substring "abcabc" twice.) - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0459.repeated-substring-pattern/repeated-substring-pattern.go b/Algorithms/0459.repeated-substring-pattern/repeated-substring-pattern.go deleted file mode 100755 index 942b019d4..000000000 --- a/Algorithms/0459.repeated-substring-pattern/repeated-substring-pattern.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0459 - diff --git a/Algorithms/0459.repeated-substring-pattern/repeated-substring-pattern_test.go b/Algorithms/0459.repeated-substring-pattern/repeated-substring-pattern_test.go deleted file mode 100755 index bf04696b8..000000000 --- a/Algorithms/0459.repeated-substring-pattern/repeated-substring-pattern_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0459 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0459(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0460.lfu-cache/README.md b/Algorithms/0460.lfu-cache/README.md deleted file mode 100755 index dee321763..000000000 --- a/Algorithms/0460.lfu-cache/README.md +++ /dev/null @@ -1,38 +0,0 @@ -# [460. LFU Cache](https://leetcode.com/problems/lfu-cache/) - -## 题目 - - Design and implement a data structure for Least Frequently Used (LFU) cache. It should support the following operations: get and put. - - - -get(key) - Get the value (will always be positive) of the key if the key exists in the cache, otherwise return -1. -put(key, value) - Set or insert the value if the key is not already present. When the cache reaches its capacity, it should invalidate the least frequently used item before inserting a new item. For the purpose of this problem, when there is a tie (i.e., two or more keys that have the same frequency), the least recently used key would be evicted. - - -Follow up: -Could you do both operations in O(1) time complexity? - -Example: -LFUCache cache = new LFUCache( 2 /* capacity */ ); - -cache.put(1, 1); -cache.put(2, 2); -cache.get(1); // returns 1 -cache.put(3, 3); // evicts key 2 -cache.get(2); // returns -1 (not found) -cache.get(3); // returns 3. -cache.put(4, 4); // evicts key 1. -cache.get(1); // returns -1 (not found) -cache.get(3); // returns 3 -cache.get(4); // returns 4 - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0460.lfu-cache/lfu-cache.go b/Algorithms/0460.lfu-cache/lfu-cache.go deleted file mode 100755 index d5bb42379..000000000 --- a/Algorithms/0460.lfu-cache/lfu-cache.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0460 - diff --git a/Algorithms/0460.lfu-cache/lfu-cache_test.go b/Algorithms/0460.lfu-cache/lfu-cache_test.go deleted file mode 100755 index bfaae3be5..000000000 --- a/Algorithms/0460.lfu-cache/lfu-cache_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0460 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0460(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0461.hamming-distance/README.md b/Algorithms/0461.hamming-distance/README.md deleted file mode 100755 index 0e3a4a68d..000000000 --- a/Algorithms/0461.hamming-distance/README.md +++ /dev/null @@ -1,33 +0,0 @@ -# [461. Hamming Distance](https://leetcode.com/problems/hamming-distance/) - -## 题目 - - The Hamming distance between two integers is the number of positions at which the corresponding bits are different. - -Given two integers x and y, calculate the Hamming distance. - -Note: -0 ≤ x, y < 231. - - -Example: -Input: x = 1, y = 4 - -Output: 2 - -Explanation: -1 (0 0 0 1) -4 (0 1 0 0) - ? ? - -The above arrows point to positions where the corresponding bits are different. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0461.hamming-distance/hamming-distance.go b/Algorithms/0461.hamming-distance/hamming-distance.go deleted file mode 100755 index f4ac627a3..000000000 --- a/Algorithms/0461.hamming-distance/hamming-distance.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0461 - diff --git a/Algorithms/0461.hamming-distance/hamming-distance_test.go b/Algorithms/0461.hamming-distance/hamming-distance_test.go deleted file mode 100755 index 036f18007..000000000 --- a/Algorithms/0461.hamming-distance/hamming-distance_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0461 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0461(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0462.minimum-moves-to-equal-array-elements-ii/README.md b/Algorithms/0462.minimum-moves-to-equal-array-elements-ii/README.md deleted file mode 100755 index 80b81cd48..000000000 --- a/Algorithms/0462.minimum-moves-to-equal-array-elements-ii/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# [462. Minimum Moves to Equal Array Elements II](https://leetcode.com/problems/minimum-moves-to-equal-array-elements-ii/) - -## 题目 - - Given a non-empty integer array, find the minimum number of moves required to make all array elements equal, where a move is incrementing a selected element by 1 or decrementing a selected element by 1. - -You may assume the array's length is at most 10,000. - -Example: -Input: -[1,2,3] - -Output: -2 - -Explanation: -Only two moves are needed (remember each move increments or decrements one element): - -[1,2,3] => [2,2,3] => [2,2,2] - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0462.minimum-moves-to-equal-array-elements-ii/minimum-moves-to-equal-array-elements-ii.go b/Algorithms/0462.minimum-moves-to-equal-array-elements-ii/minimum-moves-to-equal-array-elements-ii.go deleted file mode 100755 index 761881a4f..000000000 --- a/Algorithms/0462.minimum-moves-to-equal-array-elements-ii/minimum-moves-to-equal-array-elements-ii.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0462 - diff --git a/Algorithms/0462.minimum-moves-to-equal-array-elements-ii/minimum-moves-to-equal-array-elements-ii_test.go b/Algorithms/0462.minimum-moves-to-equal-array-elements-ii/minimum-moves-to-equal-array-elements-ii_test.go deleted file mode 100755 index d4afbfa29..000000000 --- a/Algorithms/0462.minimum-moves-to-equal-array-elements-ii/minimum-moves-to-equal-array-elements-ii_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0462 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0462(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0463.island-perimeter/README.md b/Algorithms/0463.island-perimeter/README.md deleted file mode 100755 index 3a5a51fad..000000000 --- a/Algorithms/0463.island-perimeter/README.md +++ /dev/null @@ -1,25 +0,0 @@ -# [463. Island Perimeter](https://leetcode.com/problems/island-perimeter/) - -## 题目 - - You are given a map in form of a two-dimensional integer grid where 1 represents land and 0 represents water. Grid cells are connected horizontally/vertically (not diagonally). The grid is completely surrounded by water, and there is exactly one island (i.e., one or more connected land cells). The island doesn't have "lakes" (water inside that isn't connected to the water around the island). One cell is a square with side length 1. The grid is rectangular, width and height don't exceed 100. Determine the perimeter of the island. - -Example: -[[0,1,0,0], - [1,1,1,0], - [0,1,0,0], - [1,1,0,0]] - -Answer: 16 -Explanation: The perimeter is the 16 yellow stripes in the image below: - - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0463.island-perimeter/island-perimeter.go b/Algorithms/0463.island-perimeter/island-perimeter.go deleted file mode 100755 index bd0218195..000000000 --- a/Algorithms/0463.island-perimeter/island-perimeter.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0463 - diff --git a/Algorithms/0463.island-perimeter/island-perimeter_test.go b/Algorithms/0463.island-perimeter/island-perimeter_test.go deleted file mode 100755 index ea064bfa4..000000000 --- a/Algorithms/0463.island-perimeter/island-perimeter_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0463 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0463(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0464.can-i-win/README.md b/Algorithms/0464.can-i-win/README.md deleted file mode 100755 index 454e2e13c..000000000 --- a/Algorithms/0464.can-i-win/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# [464. Can I Win](https://leetcode.com/problems/can-i-win/) - -## 题目 - - In the "100 game," two players take turns adding, to a running total, any integer from 1..10. The player who first causes the running total to reach or exceed 100 wins. - -What if we change the game so that players cannot re-use integers? - -For example, two players might take turns drawing from a common pool of numbers of 1..15 without replacement until they reach a total >= 100. - -Given an integer maxChoosableInteger and another integer desiredTotal, determine if the first player to move can force a win, assuming both players play optimally. - -You can always assume that maxChoosableInteger will not be larger than 20 and desiredTotal will not be larger than 300. - - -Example -Input: -maxChoosableInteger = 10 -desiredTotal = 11 - -Output: -false - -Explanation: -No matter which integer the first player choose, the first player will lose. -The first player can choose an integer from 1 up to 10. -If the first player choose 1, the second player can only choose integers from 2 up to 10. -The second player will win by choosing 10 and get a total = 11, which is >= desiredTotal. -Same with other integers chosen by the first player, the second player will always win. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0464.can-i-win/can-i-win.go b/Algorithms/0464.can-i-win/can-i-win.go deleted file mode 100755 index da9fd80aa..000000000 --- a/Algorithms/0464.can-i-win/can-i-win.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0464 - diff --git a/Algorithms/0464.can-i-win/can-i-win_test.go b/Algorithms/0464.can-i-win/can-i-win_test.go deleted file mode 100755 index 535128dd3..000000000 --- a/Algorithms/0464.can-i-win/can-i-win_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0464 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0464(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0466.count-the-repetitions/README.md b/Algorithms/0466.count-the-repetitions/README.md deleted file mode 100755 index d56962bea..000000000 --- a/Algorithms/0466.count-the-repetitions/README.md +++ /dev/null @@ -1,25 +0,0 @@ -# [466. Count The Repetitions](https://leetcode.com/problems/count-the-repetitions/) - -## 题目 - - Define S = [s,n] as the string S which consists of n connected strings s. For example, ["abc", 3] ="abcabcabc". -On the other hand, we define that string s1 can be obtained from string s2 if we can remove some characters from s2 such that it becomes s1. For example, “abc” can be obtained from “abdbec” based on our definition, but it can not be obtained from “acbbe”. -You are given two non-empty strings s1 and s2 (each at most 100 characters long) and two integers 0 ≤ n1 ≤ 106 and 1 ≤ n2 ≤ 106. Now consider the strings S1 and S2, where S1=[s1,n1] and S2=[s2,n2]. Find the maximum integer M such that [S2,M] can be obtained from S1. - -Example: -Input: -s1="acb", n1=4 -s2="ab", n2=2 - -Return: -2 - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0466.count-the-repetitions/count-the-repetitions.go b/Algorithms/0466.count-the-repetitions/count-the-repetitions.go deleted file mode 100755 index 3fd226646..000000000 --- a/Algorithms/0466.count-the-repetitions/count-the-repetitions.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0466 - diff --git a/Algorithms/0466.count-the-repetitions/count-the-repetitions_test.go b/Algorithms/0466.count-the-repetitions/count-the-repetitions_test.go deleted file mode 100755 index c9df0588f..000000000 --- a/Algorithms/0466.count-the-repetitions/count-the-repetitions_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0466 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0466(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0467.unique-substrings-in-wraparound-string/README.md b/Algorithms/0467.unique-substrings-in-wraparound-string/README.md deleted file mode 100755 index 9c8c19f5d..000000000 --- a/Algorithms/0467.unique-substrings-in-wraparound-string/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# [467. Unique Substrings in Wraparound String](https://leetcode.com/problems/unique-substrings-in-wraparound-string/) - -## 题目 - - Consider the string s to be the infinite wraparound string of "abcdefghijklmnopqrstuvwxyz", so s will look like this: "...zabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcd....". - -Now we have another string p. Your job is to find out how many unique non-empty substrings of p are present in s. In particular, your input is the string p and you need to output the number of different non-empty substrings of p in the string s. - -Note: p consists of only lowercase English letters and the size of p might be over 10000. - -Example 1: -Input: "a" -Output: 1 - -Explanation: Only the substring "a" of string "a" is in the string s. - - - -Example 2: -Input: "cac" -Output: 2 -Explanation: There are two substrings "a", "c" of string "cac" in the string s. - - - -Example 3: -Input: "zab" -Output: 6 -Explanation: There are six substrings "z", "a", "b", "za", "ab", "zab" of string "zab" in the string s. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0467.unique-substrings-in-wraparound-string/unique-substrings-in-wraparound-string.go b/Algorithms/0467.unique-substrings-in-wraparound-string/unique-substrings-in-wraparound-string.go deleted file mode 100755 index b3a5e0cb8..000000000 --- a/Algorithms/0467.unique-substrings-in-wraparound-string/unique-substrings-in-wraparound-string.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0467 - diff --git a/Algorithms/0467.unique-substrings-in-wraparound-string/unique-substrings-in-wraparound-string_test.go b/Algorithms/0467.unique-substrings-in-wraparound-string/unique-substrings-in-wraparound-string_test.go deleted file mode 100755 index b01adc277..000000000 --- a/Algorithms/0467.unique-substrings-in-wraparound-string/unique-substrings-in-wraparound-string_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0467 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0467(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0468.validate-ip-address/README.md b/Algorithms/0468.validate-ip-address/README.md deleted file mode 100755 index f9d01105b..000000000 --- a/Algorithms/0468.validate-ip-address/README.md +++ /dev/null @@ -1,69 +0,0 @@ -# [468. Validate IP Address](https://leetcode.com/problems/validate-ip-address/) - -## 题目 - - -Write a function to check whether an input string is a valid IPv4 address or IPv6 address or neither. - - - -IPv4 addresses are canonically represented in dot-decimal notation, which consists of four decimal numbers, each ranging from 0 to 255, separated by dots ("."), e.g.,172.16.254.1; - - - -Besides, leading zeros in the IPv4 is invalid. For example, the address 172.16.254.01 is invalid. - - - -IPv6 addresses are represented as eight groups of four hexadecimal digits, each group representing 16 bits. The groups are separated by colons (":"). For example, the address 2001:0db8:85a3:0000:0000:8a2e:0370:7334 is a valid one. Also, we could omit some leading zeros among four hexadecimal digits and some low-case characters in the address to upper-case ones, so 2001:db8:85a3:0:0:8A2E:0370:7334 is also a valid IPv6 address(Omit leading zeros and using upper cases). - - - - -However, we don't replace a consecutive group of zero value with a single empty group using two consecutive colons (::) to pursue simplicity. For example, 2001:0db8:85a3::8A2E:0370:7334 is an invalid IPv6 address. - - - -Besides, extra leading zeros in the IPv6 is also invalid. For example, the address 02001:0db8:85a3:0000:0000:8a2e:0370:7334 is invalid. - - - -Note: -You may assume there is no extra space or special characters in the input string. - - -Example 1: -Input: "172.16.254.1" - -Output: "IPv4" - -Explanation: This is a valid IPv4 address, return "IPv4". - - - - -Example 2: -Input: "2001:0db8:85a3:0:0:8A2E:0370:7334" - -Output: "IPv6" - -Explanation: This is a valid IPv6 address, return "IPv6". - - - -Example 3: -Input: "256.256.256.256" - -Output: "Neither" - -Explanation: This is neither a IPv4 address nor a IPv6 address. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0468.validate-ip-address/validate-ip-address.go b/Algorithms/0468.validate-ip-address/validate-ip-address.go deleted file mode 100755 index 807ea5527..000000000 --- a/Algorithms/0468.validate-ip-address/validate-ip-address.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0468 - diff --git a/Algorithms/0468.validate-ip-address/validate-ip-address_test.go b/Algorithms/0468.validate-ip-address/validate-ip-address_test.go deleted file mode 100755 index 6981a7447..000000000 --- a/Algorithms/0468.validate-ip-address/validate-ip-address_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0468 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0468(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0472.concatenated-words/README.md b/Algorithms/0472.concatenated-words/README.md deleted file mode 100755 index f2cb7a052..000000000 --- a/Algorithms/0472.concatenated-words/README.md +++ /dev/null @@ -1,32 +0,0 @@ -# [472. Concatenated Words](https://leetcode.com/problems/concatenated-words/) - -## 题目 - - Given a list of words (without duplicates), please write a program that returns all concatenated words in the given list of words. -A concatenated word is defined as a string that is comprised entirely of at least two shorter words in the given array. - -Example: -Input: ["cat","cats","catsdogcats","dog","dogcatsdog","hippopotamuses","rat","ratcatdogcat"] - -Output: ["catsdogcats","dogcatsdog","ratcatdogcat"] - -Explanation: "catsdogcats" can be concatenated by "cats", "dog" and "cats"; "dogcatsdog" can be concatenated by "dog", "cats" and "dog"; "ratcatdogcat" can be concatenated by "rat", "cat", "dog" and "cat". - - - -Note: - -The number of elements of the given array will not exceed 10,000 -The length sum of elements in the given array will not exceed 600,000. -All the input string will only include lower case letters. -The returned elements order does not matter. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0472.concatenated-words/concatenated-words.go b/Algorithms/0472.concatenated-words/concatenated-words.go deleted file mode 100755 index 87871243c..000000000 --- a/Algorithms/0472.concatenated-words/concatenated-words.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0472 - diff --git a/Algorithms/0472.concatenated-words/concatenated-words_test.go b/Algorithms/0472.concatenated-words/concatenated-words_test.go deleted file mode 100755 index ca02cd252..000000000 --- a/Algorithms/0472.concatenated-words/concatenated-words_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0472 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0472(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0473.matchsticks-to-square/README.md b/Algorithms/0473.matchsticks-to-square/README.md deleted file mode 100755 index 5fc889e25..000000000 --- a/Algorithms/0473.matchsticks-to-square/README.md +++ /dev/null @@ -1,38 +0,0 @@ -# [473. Matchsticks to Square](https://leetcode.com/problems/matchsticks-to-square/) - -## 题目 - - Remember the story of Little Match Girl? By now, you know exactly what matchsticks the little match girl has, please find out a way you can make one square by using up all those matchsticks. You should not break any stick, but you can link them up, and each matchstick must be used exactly one time. - - Your input will be several matchsticks the girl has, represented with their stick length. Your output will either be true or false, to represent whether you could make one square using all the matchsticks the little match girl has. - -Example 1: -Input: [1,1,2,2,2] -Output: true - -Explanation: You can form a square with length 2, one side of the square came two sticks with length 1. - - - -Example 2: -Input: [3,3,3,3,4] -Output: false - -Explanation: You cannot find a way to form a square with all the matchsticks. - - - -Note: - -The length sum of the given matchsticks is in the range of 0 to 10^9. -The length of the given matchstick array will not exceed 15. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0473.matchsticks-to-square/matchsticks-to-square.go b/Algorithms/0473.matchsticks-to-square/matchsticks-to-square.go deleted file mode 100755 index fe174ffb5..000000000 --- a/Algorithms/0473.matchsticks-to-square/matchsticks-to-square.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0473 - diff --git a/Algorithms/0473.matchsticks-to-square/matchsticks-to-square_test.go b/Algorithms/0473.matchsticks-to-square/matchsticks-to-square_test.go deleted file mode 100755 index 8e09af303..000000000 --- a/Algorithms/0473.matchsticks-to-square/matchsticks-to-square_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0473 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0473(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0474.ones-and-zeroes/README.md b/Algorithms/0474.ones-and-zeroes/README.md deleted file mode 100755 index 62579f194..000000000 --- a/Algorithms/0474.ones-and-zeroes/README.md +++ /dev/null @@ -1,42 +0,0 @@ -# [474. Ones and Zeroes](https://leetcode.com/problems/ones-and-zeroes/) - -## 题目 - - In the computer world, use restricted resource you have to generate maximum benefit is what we always want to pursue. -For now, suppose you are a dominator of m 0s and n 1s respectively. On the other hand, there is an array with strings consisting of only 0s and 1s. - - -Now your task is to find the maximum number of strings that you can form with given m 0s and n 1s. Each 0 and 1 can be used at most once. - - - -Note: - -The given numbers of 0s and 1s will both not exceed 100 -The size of given string array won't exceed 600. - - - -Example 1: -Input: Array = {"10", "0001", "111001", "1", "0"}, m = 5, n = 3 -Output: 4 - -Explanation: This are totally 4 strings can be formed by the using of 5 0s and 3 1s, which are “10,”0001”,”1”,”0” - - - -Example 2: -Input: Array = {"10", "0", "1"}, m = 1, n = 1 -Output: 2 - -Explanation: You could form "10", but then you'd have nothing left. Better form "0" and "1". - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0474.ones-and-zeroes/ones-and-zeroes.go b/Algorithms/0474.ones-and-zeroes/ones-and-zeroes.go deleted file mode 100755 index 411a80106..000000000 --- a/Algorithms/0474.ones-and-zeroes/ones-and-zeroes.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0474 - diff --git a/Algorithms/0474.ones-and-zeroes/ones-and-zeroes_test.go b/Algorithms/0474.ones-and-zeroes/ones-and-zeroes_test.go deleted file mode 100755 index 808d3b176..000000000 --- a/Algorithms/0474.ones-and-zeroes/ones-and-zeroes_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0474 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0474(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0475.heaters/README.md b/Algorithms/0475.heaters/README.md deleted file mode 100755 index ad2d6e732..000000000 --- a/Algorithms/0475.heaters/README.md +++ /dev/null @@ -1,40 +0,0 @@ -# [475. Heaters](https://leetcode.com/problems/heaters/) - -## 题目 - - Winter is coming! Your first job during the contest is to design a standard heater with fixed warm radius to warm all the houses. - -Now, you are given positions of houses and heaters on a horizontal line, find out minimum radius of heaters so that all houses could be covered by those heaters. - -So, your input will be the positions of houses and heaters seperately, and your expected output will be the minimum radius standard of heaters. - -Note: - -Numbers of houses and heaters you are given are non-negative and will not exceed 25000. -Positions of houses and heaters you are given are non-negative and will not exceed 10^9. -As long as a house is in the heaters' warm radius range, it can be warmed. -All the heaters follow your radius standard and the warm radius will the same. - - - -Example 1: -Input: [1,2,3],[2] -Output: 1 -Explanation: The only heater was placed in the position 2, and if we use the radius 1 standard, then all the houses can be warmed. - - - -Example 2: -Input: [1,2,3,4],[1,4] -Output: 1 -Explanation: The two heater was placed in the position 1 and 4. We need to use radius 1 standard, then all the houses can be warmed. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0475.heaters/heaters.go b/Algorithms/0475.heaters/heaters.go deleted file mode 100755 index 0175fb64a..000000000 --- a/Algorithms/0475.heaters/heaters.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0475 - diff --git a/Algorithms/0475.heaters/heaters_test.go b/Algorithms/0475.heaters/heaters_test.go deleted file mode 100755 index 3a840f7f5..000000000 --- a/Algorithms/0475.heaters/heaters_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0475 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0475(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0476.number-complement/README.md b/Algorithms/0476.number-complement/README.md deleted file mode 100755 index 92645311d..000000000 --- a/Algorithms/0476.number-complement/README.md +++ /dev/null @@ -1,34 +0,0 @@ -# [476. Number Complement](https://leetcode.com/problems/number-complement/) - -## 题目 - - Given a positive integer, output its complement number. The complement strategy is to flip the bits of its binary representation. - -Note: - -The given integer is guaranteed to fit within the range of a 32-bit signed integer. -You could assume no leading zero bit in the integer’s binary representation. - - - -Example 1: -Input: 5 -Output: 2 -Explanation: The binary representation of 5 is 101 (no leading zero bits), and its complement is 010. So you need to output 2. - - - -Example 2: -Input: 1 -Output: 0 -Explanation: The binary representation of 1 is 1 (no leading zero bits), and its complement is 0. So you need to output 0. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0476.number-complement/number-complement.go b/Algorithms/0476.number-complement/number-complement.go deleted file mode 100755 index 6830cbbec..000000000 --- a/Algorithms/0476.number-complement/number-complement.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0476 - diff --git a/Algorithms/0476.number-complement/number-complement_test.go b/Algorithms/0476.number-complement/number-complement_test.go deleted file mode 100755 index d4166d5ab..000000000 --- a/Algorithms/0476.number-complement/number-complement_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0476 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0476(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0477.total-hamming-distance/README.md b/Algorithms/0477.total-hamming-distance/README.md deleted file mode 100755 index d7a45be73..000000000 --- a/Algorithms/0477.total-hamming-distance/README.md +++ /dev/null @@ -1,34 +0,0 @@ -# [477. Total Hamming Distance](https://leetcode.com/problems/total-hamming-distance/) - -## 题目 - - The Hamming distance between two integers is the number of positions at which the corresponding bits are different. - -Now your job is to find the total Hamming distance between all pairs of the given numbers. - - -Example: -Input: 4, 14, 2 - -Output: 6 - -Explanation: In binary representation, the 4 is 0100, 14 is 1110, and 2 is 0010 (just -showing the four bits relevant in this case). So the answer will be: -HammingDistance(4, 14) + HammingDistance(4, 2) + HammingDistance(14, 2) = 2 + 2 + 2 = 6. - - - -Note: - -Elements of the given array are in the range of 0 to 10^9 -Length of the array will not exceed 10^4. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0477.total-hamming-distance/total-hamming-distance.go b/Algorithms/0477.total-hamming-distance/total-hamming-distance.go deleted file mode 100755 index e85a3ffe6..000000000 --- a/Algorithms/0477.total-hamming-distance/total-hamming-distance.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0477 - diff --git a/Algorithms/0477.total-hamming-distance/total-hamming-distance_test.go b/Algorithms/0477.total-hamming-distance/total-hamming-distance_test.go deleted file mode 100755 index e59f3b877..000000000 --- a/Algorithms/0477.total-hamming-distance/total-hamming-distance_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0477 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0477(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0479.largest-palindrome-product/README.md b/Algorithms/0479.largest-palindrome-product/README.md deleted file mode 100755 index c7afd6fbe..000000000 --- a/Algorithms/0479.largest-palindrome-product/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# [479. Largest Palindrome Product](https://leetcode.com/problems/largest-palindrome-product/) - -## 题目 - - Find the largest palindrome made from the product of two n-digit numbers. - Since the result could be very large, you should return the largest palindrome mod 1337. - -Example: -Input: 2 -Output: 987 -Explanation: 99 x 91 = 9009, 9009 % 1337 = 987 - - - - -Note: -The range of n is [1,8]. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0479.largest-palindrome-product/largest-palindrome-product.go b/Algorithms/0479.largest-palindrome-product/largest-palindrome-product.go deleted file mode 100755 index aefa811bd..000000000 --- a/Algorithms/0479.largest-palindrome-product/largest-palindrome-product.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0479 - diff --git a/Algorithms/0479.largest-palindrome-product/largest-palindrome-product_test.go b/Algorithms/0479.largest-palindrome-product/largest-palindrome-product_test.go deleted file mode 100755 index ce3017933..000000000 --- a/Algorithms/0479.largest-palindrome-product/largest-palindrome-product_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0479 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0479(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0480.sliding-window-median/README.md b/Algorithms/0480.sliding-window-median/README.md deleted file mode 100755 index faff16ed8..000000000 --- a/Algorithms/0480.sliding-window-median/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# [480. Sliding Window Median](https://leetcode.com/problems/sliding-window-median/) - -## 题目 - - Median is the middle value in an ordered integer list. If the size of the list is even, there is no middle value. So the median is the mean of the two middle value. -Examples: -[2,3,4] , the median is 3 -[2,3], the median is (2 + 3) / 2 = 2.5 - -Given an array nums, there is a sliding window of size k which is moving from the very left of the array to the very right. You can only see the k numbers in the window. Each time the sliding window moves right by one position. Your job is to output the median array for each window in the original array. - -For example, -Given nums = [1,3,-1,-3,5,3,6,7], and k = 3. - -Window position Median ---------------- ----- -[1 3 -1] -3 5 3 6 7 1 - 1 [3 -1 -3] 5 3 6 7 -1 - 1 3 [-1 -3 5] 3 6 7 -1 - 1 3 -1 [-3 5 3] 6 7 3 - 1 3 -1 -3 [5 3 6] 7 5 - 1 3 -1 -3 5 [3 6 7] 6 - - -Therefore, return the median sliding window as [1,-1,-1,3,5,6]. - -Note: -You may assume k is always valid, ie: k is always smaller than input array's size for non-empty array. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0480.sliding-window-median/sliding-window-median.go b/Algorithms/0480.sliding-window-median/sliding-window-median.go deleted file mode 100755 index 36dbb7ef3..000000000 --- a/Algorithms/0480.sliding-window-median/sliding-window-median.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0480 - diff --git a/Algorithms/0480.sliding-window-median/sliding-window-median_test.go b/Algorithms/0480.sliding-window-median/sliding-window-median_test.go deleted file mode 100755 index 099d659e9..000000000 --- a/Algorithms/0480.sliding-window-median/sliding-window-median_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0480 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0480(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0481.magical-string/README.md b/Algorithms/0481.magical-string/README.md deleted file mode 100755 index 19a6df78e..000000000 --- a/Algorithms/0481.magical-string/README.md +++ /dev/null @@ -1,56 +0,0 @@ -# [481. Magical String](https://leetcode.com/problems/magical-string/) - -## 题目 - - -A magical string S consists of only '1' and '2' and obeys the following rules: - - -The string S is magical because concatenating the number of contiguous occurrences of characters '1' and '2' generates the string S itself. - - - -The first few elements of string S is the following: -S = "1221121221221121122……" - - - -If we group the consecutive '1's and '2's in S, it will be: - - -1 22 11 2 1 22 1 22 11 2 11 22 ...... - - -and the occurrences of '1's or '2's in each group are: - - -1 2 2 1 1 2 1 2 2 1 2 2 ...... - - - -You can see that the occurrence sequence above is the S itself. - - - -Given an integer N as input, return the number of '1's in the first N number in the magical string S. - - -Note: -N will not exceed 100,000. - - - -Example 1: -Input: 6 -Output: 3 -Explanation: The first 6 elements of magical string S is "12211" and it contains three 1's, so return 3. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0481.magical-string/magical-string.go b/Algorithms/0481.magical-string/magical-string.go deleted file mode 100755 index 9fca992cd..000000000 --- a/Algorithms/0481.magical-string/magical-string.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0481 - diff --git a/Algorithms/0481.magical-string/magical-string_test.go b/Algorithms/0481.magical-string/magical-string_test.go deleted file mode 100755 index 293e6791b..000000000 --- a/Algorithms/0481.magical-string/magical-string_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0481 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0481(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0482.license-key-formatting/README.md b/Algorithms/0482.license-key-formatting/README.md deleted file mode 100755 index 14edbdf6e..000000000 --- a/Algorithms/0482.license-key-formatting/README.md +++ /dev/null @@ -1,45 +0,0 @@ -# [482. License Key Formatting](https://leetcode.com/problems/license-key-formatting/) - -## 题目 - - Now you are given a string S, which represents a software license key which we would like to format. The string S is composed of alphanumerical characters and dashes. The dashes split the alphanumerical characters within the string into groups. (i.e. if there are M dashes, the string is split into M+1 groups). The dashes in the given string are possibly misplaced. - -We want each group of characters to be of length K (except for possibly the first group, which could be shorter, but still must contain at least one character). To satisfy this requirement, we will reinsert dashes. Additionally, all the lower case letters in the string must be converted to upper case. - -So, you are given a non-empty string S, representing a license key to format, and an integer K. And you need to return the license key formatted according to the description above. - - -Example 1: -Input: S = "2-4A0r7-4k", K = 4 - -Output: "24A0-R74K" - -Explanation: The string S has been split into two parts, each part has 4 characters. - - - - -Example 2: -Input: S = "2-4A0r7-4k", K = 3 - -Output: "24-A0R-74K" - -Explanation: The string S has been split into three parts, each part has 3 characters except the first part as it could be shorter as said above. - - - -Note: - -The length of string S will not exceed 12,000, and K is a positive integer. -String S consists only of alphanumerical characters (a-z and/or A-Z and/or 0-9) and dashes(-). -String S is non-empty. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0482.license-key-formatting/license-key-formatting.go b/Algorithms/0482.license-key-formatting/license-key-formatting.go deleted file mode 100755 index 54e9f5d02..000000000 --- a/Algorithms/0482.license-key-formatting/license-key-formatting.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0482 - diff --git a/Algorithms/0482.license-key-formatting/license-key-formatting_test.go b/Algorithms/0482.license-key-formatting/license-key-formatting_test.go deleted file mode 100755 index 065991be9..000000000 --- a/Algorithms/0482.license-key-formatting/license-key-formatting_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0482 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0482(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0483.smallest-good-base/README.md b/Algorithms/0483.smallest-good-base/README.md deleted file mode 100755 index 866f8e36d..000000000 --- a/Algorithms/0483.smallest-good-base/README.md +++ /dev/null @@ -1,42 +0,0 @@ -# [483. Smallest Good Base](https://leetcode.com/problems/smallest-good-base/) - -## 题目 - - For an integer n, we call k>=2 a good base of n, if all digits of n base k are 1. -Now given a string representing n, you should return the smallest good base of n in string format. - -Example 1: -Input: "13" -Output: "3" -Explanation: 13 base 3 is 111. - - - -Example 2: -Input: "4681" -Output: "8" -Explanation: 4681 base 8 is 11111. - - - -Example 3: -Input: "1000000000000000000" -Output: "999999999999999999" -Explanation: 1000000000000000000 base 999999999999999999 is 11. - - - -Note: - -The range of n is [3, 10^18]. -The string representing n is always valid and will not have leading zeros. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0483.smallest-good-base/smallest-good-base.go b/Algorithms/0483.smallest-good-base/smallest-good-base.go deleted file mode 100755 index 51cc5924a..000000000 --- a/Algorithms/0483.smallest-good-base/smallest-good-base.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0483 - diff --git a/Algorithms/0483.smallest-good-base/smallest-good-base_test.go b/Algorithms/0483.smallest-good-base/smallest-good-base_test.go deleted file mode 100755 index 85b936a78..000000000 --- a/Algorithms/0483.smallest-good-base/smallest-good-base_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0483 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0483(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0486.predict-the-winner/README.md b/Algorithms/0486.predict-the-winner/README.md deleted file mode 100755 index 1e666887e..000000000 --- a/Algorithms/0486.predict-the-winner/README.md +++ /dev/null @@ -1,37 +0,0 @@ -# [486. Predict the Winner](https://leetcode.com/problems/predict-the-winner/) - -## 题目 - - Given an array of scores that are non-negative integers. Player 1 picks one of the numbers from either end of the array followed by the player 2 and then player 1 and so on. Each time a player picks a number, that number will not be available for the next player. This continues until all the scores have been chosen. The player with the maximum score wins. - -Given an array of scores, predict whether player 1 is the winner. You can assume each player plays to maximize his score. - -Example 1: -Input: [1, 5, 2] -Output: False -Explanation: Initially, player 1 can choose between 1 and 2. If he chooses 2 (or 1), then player 2 can choose from 1 (or 2) and 5. If player 2 chooses 5, then player 1 will be left with 1 (or 2). So, final score of player 1 is 1 + 2 = 3, and player 2 is 5. Hence, player 1 will never be the winner and you need to return False. - - - -Example 2: -Input: [1, 5, 233, 7] -Output: True -Explanation: Player 1 first chooses 1. Then player 2 have to choose between 5 and 7. No matter which number player 2 choose, player 1 can choose 233.Finally, player 1 has more score (234) than player 2 (12), so you need to return True representing player1 can win. - - - -Note: - -1 <= length of the array <= 20. -Any scores in the given array are non-negative integers and will not exceed 10,000,000. -If the scores of both players are equal, then player 1 is still the winner. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0486.predict-the-winner/predict-the-winner.go b/Algorithms/0486.predict-the-winner/predict-the-winner.go deleted file mode 100755 index ec3830dfb..000000000 --- a/Algorithms/0486.predict-the-winner/predict-the-winner.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0486 - diff --git a/Algorithms/0486.predict-the-winner/predict-the-winner_test.go b/Algorithms/0486.predict-the-winner/predict-the-winner_test.go deleted file mode 100755 index 2a8fdb9b9..000000000 --- a/Algorithms/0486.predict-the-winner/predict-the-winner_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0486 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0486(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0488.zuma-game/README.md b/Algorithms/0488.zuma-game/README.md deleted file mode 100755 index a4966cef6..000000000 --- a/Algorithms/0488.zuma-game/README.md +++ /dev/null @@ -1,45 +0,0 @@ -# [488. Zuma Game](https://leetcode.com/problems/zuma-game/) - -## 题目 - - Think about Zuma Game. You have a row of balls on the table, colored red(R), yellow(Y), blue(B), green(G), and white(W). You also have several balls in your hand. - -Each time, you may choose a ball in your hand, and insert it into the row (including the leftmost place and rightmost place). Then, if there is a group of 3 or more balls in the same color touching, remove these balls. Keep doing this until no more balls can be removed. - -Find the minimal balls you have to insert to remove all the balls on the table. If you cannot remove all the balls, output -1. - -Examples: -Input: "WRRBBW", "RB" -Output: -1 -Explanation: WRRBBW -> WRR[R]BBW -> WBBW -> WBB[B]W -> WW - -Input: "WWRRBBWW", "WRBRW" -Output: 2 -Explanation: WWRRBBWW -> WWRR[R]BBWW -> WWBBWW -> WWBB[B]WW -> WWWW -> empty - -Input:"G", "GGGGG" -Output: 2 -Explanation: G -> G[G] -> GG[G] -> empty - -Input: "RBYYBBRRB", "YRBGB" -Output: 3 -Explanation: RBYYBBRRB -> RBYY[Y]BBRRB -> RBBBRRB -> RRRB -> B -> B[B] -> BB[B] -> empty - - - -Note: - -You may assume that the initial row of balls on the table won’t have any 3 or more consecutive balls with the same color. -The number of balls on the table won't exceed 20, and the string represents these balls is called "board" in the input. -The number of balls in your hand won't exceed 5, and the string represents these balls is called "hand" in the input. -Both input strings will be non-empty and only contain characters 'R','Y','B','G','W'. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0488.zuma-game/zuma-game.go b/Algorithms/0488.zuma-game/zuma-game.go deleted file mode 100755 index 1a5ce72c3..000000000 --- a/Algorithms/0488.zuma-game/zuma-game.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0488 - diff --git a/Algorithms/0488.zuma-game/zuma-game_test.go b/Algorithms/0488.zuma-game/zuma-game_test.go deleted file mode 100755 index 0d3a5e2a4..000000000 --- a/Algorithms/0488.zuma-game/zuma-game_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0488 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0488(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0491.increasing-subsequences/README.md b/Algorithms/0491.increasing-subsequences/README.md deleted file mode 100755 index 5ddf4579c..000000000 --- a/Algorithms/0491.increasing-subsequences/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# [491. Increasing Subsequences](https://leetcode.com/problems/increasing-subsequences/) - -## 题目 - - -Given an integer array, your task is to find all the different possible increasing subsequences of the given array, and the length of an increasing subsequence should be at least 2 . - - -Example: -Input: [4, 6, 7, 7] -Output: [[4, 6], [4, 7], [4, 6, 7], [4, 6, 7, 7], [6, 7], [6, 7, 7], [7,7], [4,7,7]] - - - -Note: - -The length of the given array will not exceed 15. -The range of integer in the given array is [-100,100]. -The given array may contain duplicates, and two equal integers should also be considered as a special case of increasing sequence. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0491.increasing-subsequences/increasing-subsequences.go b/Algorithms/0491.increasing-subsequences/increasing-subsequences.go deleted file mode 100755 index 84374b585..000000000 --- a/Algorithms/0491.increasing-subsequences/increasing-subsequences.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0491 - diff --git a/Algorithms/0491.increasing-subsequences/increasing-subsequences_test.go b/Algorithms/0491.increasing-subsequences/increasing-subsequences_test.go deleted file mode 100755 index 720839e08..000000000 --- a/Algorithms/0491.increasing-subsequences/increasing-subsequences_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0491 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0491(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0492.construct-the-rectangle/README.md b/Algorithms/0492.construct-the-rectangle/README.md deleted file mode 100755 index 844be5ffb..000000000 --- a/Algorithms/0492.construct-the-rectangle/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# [492. Construct the Rectangle](https://leetcode.com/problems/construct-the-rectangle/) - -## 题目 - - -For a web developer, it is very important to know how to design a web page's size. So, given a specific rectangular web page’s area, your job by now is to design a rectangular web page, whose length L and width W satisfy the following requirements:1. The area of the rectangular web page you designed must equal to the given target area. -2. The width W should not be larger than the length L, which means L >= W. -3. The difference between length L and width W should be as small as possible. - -You need to output the length L and the width W of the web page you designed in sequence. - - - -Example: -Input: 4 -Output: [2, 2] -Explanation: The target area is 4, and all the possible ways to construct it are [1,4], [2,2], [4,1]. -But according to requirement 2, [1,4] is illegal; according to requirement 3, [4,1] is not optimal compared to [2,2]. So the length L is 2, and the width W is 2. - - - -Note: - -The given area won't exceed 10,000,000 and is a positive integer -The web page's width and length you designed must be positive integers. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0492.construct-the-rectangle/construct-the-rectangle.go b/Algorithms/0492.construct-the-rectangle/construct-the-rectangle.go deleted file mode 100755 index a81152a12..000000000 --- a/Algorithms/0492.construct-the-rectangle/construct-the-rectangle.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0492 - diff --git a/Algorithms/0492.construct-the-rectangle/construct-the-rectangle_test.go b/Algorithms/0492.construct-the-rectangle/construct-the-rectangle_test.go deleted file mode 100755 index 6c4802ac8..000000000 --- a/Algorithms/0492.construct-the-rectangle/construct-the-rectangle_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0492 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0492(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0493.reverse-pairs/README.md b/Algorithms/0493.reverse-pairs/README.md deleted file mode 100755 index b9314836f..000000000 --- a/Algorithms/0493.reverse-pairs/README.md +++ /dev/null @@ -1,32 +0,0 @@ -# [493. Reverse Pairs](https://leetcode.com/problems/reverse-pairs/) - -## 题目 - - Given an array nums, we call (i, j) an important reverse pair if i < j and nums[i] > 2*nums[j]. - -You need to return the number of important reverse pairs in the given array. - -Example1: -Input: [1,3,2,3,1] -Output: 2 - - -Example2: -Input: [2,4,3,5,1] -Output: 3 - - -Note: - -The length of the given array will not exceed 50,000. -All the numbers in the input array are in the range of 32-bit integer. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0493.reverse-pairs/reverse-pairs.go b/Algorithms/0493.reverse-pairs/reverse-pairs.go deleted file mode 100755 index 8113ac73a..000000000 --- a/Algorithms/0493.reverse-pairs/reverse-pairs.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0493 - diff --git a/Algorithms/0493.reverse-pairs/reverse-pairs_test.go b/Algorithms/0493.reverse-pairs/reverse-pairs_test.go deleted file mode 100755 index bd14cde2c..000000000 --- a/Algorithms/0493.reverse-pairs/reverse-pairs_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0493 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0493(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0494.target-sum/README.md b/Algorithms/0494.target-sum/README.md deleted file mode 100755 index d66dbf946..000000000 --- a/Algorithms/0494.target-sum/README.md +++ /dev/null @@ -1,41 +0,0 @@ -# [494. Target Sum](https://leetcode.com/problems/target-sum/) - -## 题目 - - -You are given a list of non-negative integers, a1, a2, ..., an, and a target, S. Now you have 2 symbols + and -. For each integer, you should choose one from + and - as its new symbol. - - -Find out how many ways to assign symbols to make sum of integers equal to target S. - - -Example 1: -Input: nums is [1, 1, 1, 1, 1], S is 3. -Output: 5 -Explanation: - --1+1+1+1+1 = 3 -+1-1+1+1+1 = 3 -+1+1-1+1+1 = 3 -+1+1+1-1+1 = 3 -+1+1+1+1-1 = 3 - -There are 5 ways to assign symbols to make the sum of nums be target 3. - - - -Note: - -The length of the given array is positive and will not exceed 20. -The sum of elements in the given array will not exceed 1000. -Your output answer is guaranteed to be fitted in a 32-bit integer. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0494.target-sum/target-sum.go b/Algorithms/0494.target-sum/target-sum.go deleted file mode 100755 index 1775ded06..000000000 --- a/Algorithms/0494.target-sum/target-sum.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0494 - diff --git a/Algorithms/0494.target-sum/target-sum_test.go b/Algorithms/0494.target-sum/target-sum_test.go deleted file mode 100755 index edb8bfaa8..000000000 --- a/Algorithms/0494.target-sum/target-sum_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0494 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0494(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0495.teemo-attacking/README.md b/Algorithms/0495.teemo-attacking/README.md deleted file mode 100755 index 4469190f4..000000000 --- a/Algorithms/0495.teemo-attacking/README.md +++ /dev/null @@ -1,40 +0,0 @@ -# [495. Teemo Attacking](https://leetcode.com/problems/teemo-attacking/) - -## 题目 - - -In LOL world, there is a hero called Teemo and his attacking can make his enemy Ashe be in poisoned condition. Now, given the Teemo's attacking ascending time series towards Ashe and the poisoning time duration per Teemo's attacking, you need to output the total time that Ashe is in poisoned condition. - - -You may assume that Teemo attacks at the very beginning of a specific time point, and makes Ashe be in poisoned condition immediately. - -Example 1: -Input: [1,4], 2 -Output: 4 -Explanation: At time point 1, Teemo starts attacking Ashe and makes Ashe be poisoned immediately. This poisoned status will last 2 seconds until the end of time point 2. And at time point 4, Teemo attacks Ashe again, and causes Ashe to be in poisoned status for another 2 seconds. So you finally need to output 4. - - - - -Example 2: -Input: [1,2], 2 -Output: 3 -Explanation: At time point 1, Teemo starts attacking Ashe and makes Ashe be poisoned. This poisoned status will last 2 seconds until the end of time point 2. However, at the beginning of time point 2, Teemo attacks Ashe again who is already in poisoned status. Since the poisoned status won't add up together, though the second poisoning attack will still work at time point 2, it will stop at the end of time point 3. So you finally need to output 3. - - - - -Note: - -You may assume the length of given time series array won't exceed 10000. -You may assume the numbers in the Teemo's attacking time series and his poisoning time duration per attacking are non-negative integers, which won't exceed 10,000,000. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0495.teemo-attacking/teemo-attacking.go b/Algorithms/0495.teemo-attacking/teemo-attacking.go deleted file mode 100755 index 7ad4c0f88..000000000 --- a/Algorithms/0495.teemo-attacking/teemo-attacking.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0495 - diff --git a/Algorithms/0495.teemo-attacking/teemo-attacking_test.go b/Algorithms/0495.teemo-attacking/teemo-attacking_test.go deleted file mode 100755 index 480ffcd7c..000000000 --- a/Algorithms/0495.teemo-attacking/teemo-attacking_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0495 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0495(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0496.next-greater-element-i/README.md b/Algorithms/0496.next-greater-element-i/README.md deleted file mode 100755 index f096e4853..000000000 --- a/Algorithms/0496.next-greater-element-i/README.md +++ /dev/null @@ -1,46 +0,0 @@ -# [496. Next Greater Element I](https://leetcode.com/problems/next-greater-element-i/) - -## 题目 - - -You are given two arrays (without duplicates) nums1 and nums2 where nums1’s elements are subset of nums2. Find all the next greater numbers for nums1's elements in the corresponding places of nums2. - - - -The Next Greater Number of a number x in nums1 is the first greater number to its right in nums2. If it does not exist, output -1 for this number. - - -Example 1: -Input: nums1 = [4,1,2], nums2 = [1,3,4,2]. -Output: [-1,3,-1] -Explanation: - For number 4 in the first array, you cannot find the next greater number for it in the second array, so output -1. - For number 1 in the first array, the next greater number for it in the second array is 3. - For number 2 in the first array, there is no next greater number for it in the second array, so output -1. - - - -Example 2: -Input: nums1 = [2,4], nums2 = [1,2,3,4]. -Output: [3,-1] -Explanation: - For number 2 in the first array, the next greater number for it in the second array is 3. - For number 4 in the first array, there is no next greater number for it in the second array, so output -1. - - - - -Note: - -All elements in nums1 and nums2 are unique. -The length of both nums1 and nums2 would not exceed 1000. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0496.next-greater-element-i/next-greater-element-i.go b/Algorithms/0496.next-greater-element-i/next-greater-element-i.go deleted file mode 100755 index 22e421f3f..000000000 --- a/Algorithms/0496.next-greater-element-i/next-greater-element-i.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0496 - diff --git a/Algorithms/0496.next-greater-element-i/next-greater-element-i_test.go b/Algorithms/0496.next-greater-element-i/next-greater-element-i_test.go deleted file mode 100755 index ef6b07f88..000000000 --- a/Algorithms/0496.next-greater-element-i/next-greater-element-i_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0496 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0496(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0498.diagonal-traverse/README.md b/Algorithms/0498.diagonal-traverse/README.md deleted file mode 100755 index 8f99c0690..000000000 --- a/Algorithms/0498.diagonal-traverse/README.md +++ /dev/null @@ -1,34 +0,0 @@ -# [498. Diagonal Traverse](https://leetcode.com/problems/diagonal-traverse/) - -## 题目 - - -Given a matrix of M x N elements (M rows, N columns), return all elements of the matrix in diagonal order as shown in the below image. - - -Example: -Input: -[ - [ 1, 2, 3 ], - [ 4, 5, 6 ], - [ 7, 8, 9 ] -] -Output: [1,2,4,7,5,3,6,8,9] -Explanation: - - - - -Note: - -The total number of elements of the given matrix will not exceed 10,000. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0498.diagonal-traverse/diagonal-traverse.go b/Algorithms/0498.diagonal-traverse/diagonal-traverse.go deleted file mode 100755 index 10a2b0844..000000000 --- a/Algorithms/0498.diagonal-traverse/diagonal-traverse.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0498 - diff --git a/Algorithms/0498.diagonal-traverse/diagonal-traverse_test.go b/Algorithms/0498.diagonal-traverse/diagonal-traverse_test.go deleted file mode 100755 index f2ba1e8e6..000000000 --- a/Algorithms/0498.diagonal-traverse/diagonal-traverse_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0498 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0498(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0500.keyboard-row/README.md b/Algorithms/0500.keyboard-row/README.md deleted file mode 100755 index afc5e3f84..000000000 --- a/Algorithms/0500.keyboard-row/README.md +++ /dev/null @@ -1,32 +0,0 @@ -# [500. Keyboard Row](https://leetcode.com/problems/keyboard-row/) - -## 题目 - - Given a List of words, return the words that can be typed using letters of alphabet on only one row's of American keyboard like the image below. - - - - - - - -Example 1: -Input: ["Hello", "Alaska", "Dad", "Peace"] -Output: ["Alaska", "Dad"] - - - -Note: - -You may use one character in the keyboard more than once. -You may assume the input string will only contain letters of alphabet. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0500.keyboard-row/keyboard-row.go b/Algorithms/0500.keyboard-row/keyboard-row.go deleted file mode 100755 index 81e64c074..000000000 --- a/Algorithms/0500.keyboard-row/keyboard-row.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0500 - diff --git a/Algorithms/0500.keyboard-row/keyboard-row_test.go b/Algorithms/0500.keyboard-row/keyboard-row_test.go deleted file mode 100755 index 32cf9230d..000000000 --- a/Algorithms/0500.keyboard-row/keyboard-row_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0500 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0500(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0501.find-mode-in-binary-search-tree/README.md b/Algorithms/0501.find-mode-in-binary-search-tree/README.md deleted file mode 100755 index a18549e0b..000000000 --- a/Algorithms/0501.find-mode-in-binary-search-tree/README.md +++ /dev/null @@ -1,44 +0,0 @@ -# [501. Find Mode in Binary Search Tree](https://leetcode.com/problems/find-mode-in-binary-search-tree/) - -## 题目 - - Given a binary search tree (BST) with duplicates, find all the mode(s) (the most frequently occurred element) in the given BST. - - -Assume a BST is defined as follows: - -The left subtree of a node contains only nodes with keys less than or equal to the node's key. -The right subtree of a node contains only nodes with keys greater than or equal to the node's key. -Both the left and right subtrees must also be binary search trees. - - - - -For example: -Given BST [1,null,2,2], - 1 - \ - 2 - / - 2 - - - -return [2]. - - -Note: -If a tree has more than one mode, you can return them in any order. - - -Follow up: -Could you do that without using any extra space? (Assume that the implicit stack space incurred due to recursion does not count). - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0501.find-mode-in-binary-search-tree/find-mode-in-binary-search-tree.go b/Algorithms/0501.find-mode-in-binary-search-tree/find-mode-in-binary-search-tree.go deleted file mode 100755 index b170600a2..000000000 --- a/Algorithms/0501.find-mode-in-binary-search-tree/find-mode-in-binary-search-tree.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0501 - diff --git a/Algorithms/0501.find-mode-in-binary-search-tree/find-mode-in-binary-search-tree_test.go b/Algorithms/0501.find-mode-in-binary-search-tree/find-mode-in-binary-search-tree_test.go deleted file mode 100755 index d50d15a11..000000000 --- a/Algorithms/0501.find-mode-in-binary-search-tree/find-mode-in-binary-search-tree_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0501 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0501(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0502.ipo/README.md b/Algorithms/0502.ipo/README.md deleted file mode 100755 index 5189419e2..000000000 --- a/Algorithms/0502.ipo/README.md +++ /dev/null @@ -1,44 +0,0 @@ -# [502. IPO](https://leetcode.com/problems/ipo/) - -## 题目 - - -Suppose LeetCode will start its IPO soon. In order to sell a good price of its shares to Venture Capital, LeetCode would like to work on some projects to increase its capital before the IPO. Since it has limited resources, it can only finish at most k distinct projects before the IPO. Help LeetCode design the best way to maximize its total capital after finishing at most k distinct projects. - - - -You are given several projects. For each project i, it has a pure profit Pi and a minimum capital of Ci is needed to start the corresponding project. Initially, you have W capital. When you finish a project, you will obtain its pure profit and the profit will be added to your total capital. - - - -To sum up, pick a list of at most k distinct projects from given projects to maximize your final capital, and output your final maximized capital. - - -Example 1: -Input: k=2, W=0, Profits=[1,2,3], Capital=[0,1,1]. - -Output: 4 - -Explanation: Since your initial capital is 0, you can only start the project indexed 0. - After finishing it you will obtain profit 1 and your capital becomes 1. - With capital 1, you can either start the project indexed 1 or the project indexed 2. - Since you can choose at most 2 projects, you need to finish the project indexed 2 to get the maximum capital. - Therefore, output the final maximized capital, which is 0 + 1 + 3 = 4. - - - -Note: - -You may assume all numbers in the input are non-negative integers. -The length of Profits array and Capital array will not exceed 50,000. -The answer is guaranteed to fit in a 32-bit signed integer. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0502.ipo/ipo.go b/Algorithms/0502.ipo/ipo.go deleted file mode 100755 index 06f123486..000000000 --- a/Algorithms/0502.ipo/ipo.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0502 - diff --git a/Algorithms/0502.ipo/ipo_test.go b/Algorithms/0502.ipo/ipo_test.go deleted file mode 100755 index 1c8240158..000000000 --- a/Algorithms/0502.ipo/ipo_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0502 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0502(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0503.next-greater-element-ii/README.md b/Algorithms/0503.next-greater-element-ii/README.md deleted file mode 100755 index 694598190..000000000 --- a/Algorithms/0503.next-greater-element-ii/README.md +++ /dev/null @@ -1,26 +0,0 @@ -# [503. Next Greater Element II](https://leetcode.com/problems/next-greater-element-ii/) - -## 题目 - - -Given a circular array (the next element of the last element is the first element of the array), print the Next Greater Number for every element. The Next Greater Number of a number x is the first greater number to its traversing-order next in the array, which means you could search circularly to find its next greater number. If it doesn't exist, output -1 for this number. - - -Example 1: -Input: [1,2,1] -Output: [2,-1,2] -Explanation: The first 1's next greater number is 2; The number 2 can't find next greater number; The second 1's next greater number needs to search circularly, which is also 2. - - - -Note: -The length of given array won't exceed 10000. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0503.next-greater-element-ii/next-greater-element-ii.go b/Algorithms/0503.next-greater-element-ii/next-greater-element-ii.go deleted file mode 100755 index cf8b040d6..000000000 --- a/Algorithms/0503.next-greater-element-ii/next-greater-element-ii.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0503 - diff --git a/Algorithms/0503.next-greater-element-ii/next-greater-element-ii_test.go b/Algorithms/0503.next-greater-element-ii/next-greater-element-ii_test.go deleted file mode 100755 index b83a179f3..000000000 --- a/Algorithms/0503.next-greater-element-ii/next-greater-element-ii_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0503 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0503(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0504.base-7/README.md b/Algorithms/0504.base-7/README.md deleted file mode 100755 index 7f0752c3c..000000000 --- a/Algorithms/0504.base-7/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# [504. Base 7](https://leetcode.com/problems/base-7/) - -## 题目 - - Given an integer, return its base 7 string representation. - -Example 1: -Input: 100 -Output: "202" - - - -Example 2: -Input: -7 -Output: "-10" - - - -Note: -The input will be in range of [-1e7, 1e7]. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0504.base-7/base-7.go b/Algorithms/0504.base-7/base-7.go deleted file mode 100755 index 501bfa114..000000000 --- a/Algorithms/0504.base-7/base-7.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0504 - diff --git a/Algorithms/0504.base-7/base-7_test.go b/Algorithms/0504.base-7/base-7_test.go deleted file mode 100755 index f6efd053d..000000000 --- a/Algorithms/0504.base-7/base-7_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0504 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0504(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0506.relative-ranks/README.md b/Algorithms/0506.relative-ranks/README.md deleted file mode 100755 index 2690233e7..000000000 --- a/Algorithms/0506.relative-ranks/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# [506. Relative Ranks](https://leetcode.com/problems/relative-ranks/) - -## 题目 - - -Given scores of N athletes, find their relative ranks and the people with the top three highest scores, who will be awarded medals: "Gold Medal", "Silver Medal" and "Bronze Medal". - -Example 1: -Input: [5, 4, 3, 2, 1] -Output: ["Gold Medal", "Silver Medal", "Bronze Medal", "4", "5"] -Explanation: The first three athletes got the top three highest scores, so they got "Gold Medal", "Silver Medal" and "Bronze Medal". For the left two athletes, you just need to output their relative ranks according to their scores. - - - -Note: - -N is a positive integer and won't exceed 10,000. -All the scores of athletes are guaranteed to be unique. - - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0506.relative-ranks/relative-ranks.go b/Algorithms/0506.relative-ranks/relative-ranks.go deleted file mode 100755 index 485b0c739..000000000 --- a/Algorithms/0506.relative-ranks/relative-ranks.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0506 - diff --git a/Algorithms/0506.relative-ranks/relative-ranks_test.go b/Algorithms/0506.relative-ranks/relative-ranks_test.go deleted file mode 100755 index 84e256d18..000000000 --- a/Algorithms/0506.relative-ranks/relative-ranks_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0506 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0506(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0507.perfect-number/README.md b/Algorithms/0507.perfect-number/README.md deleted file mode 100755 index c3e985a48..000000000 --- a/Algorithms/0507.perfect-number/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# [507. Perfect Number](https://leetcode.com/problems/perfect-number/) - -## 题目 - - We define the Perfect Number is a positive integer that is equal to the sum of all its positive divisors except itself. - -Now, given an integer n, write a function that returns true when it is a perfect number and false when it is not. - - -Example: -Input: 28 -Output: True -Explanation: 28 = 1 + 2 + 4 + 7 + 14 - - - -Note: -The input number n will not exceed 100,000,000. (1e8) - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0507.perfect-number/perfect-number.go b/Algorithms/0507.perfect-number/perfect-number.go deleted file mode 100755 index a4ccbcce3..000000000 --- a/Algorithms/0507.perfect-number/perfect-number.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0507 - diff --git a/Algorithms/0507.perfect-number/perfect-number_test.go b/Algorithms/0507.perfect-number/perfect-number_test.go deleted file mode 100755 index cf9bc37bf..000000000 --- a/Algorithms/0507.perfect-number/perfect-number_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0507 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0507(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0508.most-frequent-subtree-sum/README.md b/Algorithms/0508.most-frequent-subtree-sum/README.md deleted file mode 100755 index c994f5240..000000000 --- a/Algorithms/0508.most-frequent-subtree-sum/README.md +++ /dev/null @@ -1,37 +0,0 @@ -# [508. Most Frequent Subtree Sum](https://leetcode.com/problems/most-frequent-subtree-sum/) - -## 题目 - - -Given the root of a tree, you are asked to find the most frequent subtree sum. The subtree sum of a node is defined as the sum of all the node values formed by the subtree rooted at that node (including the node itself). So what is the most frequent subtree sum value? If there is a tie, return all the values with the highest frequency in any order. - - -Examples 1 -Input: - 5 - / \ -2 -3 - -return [2, -3, 4], since all the values happen only once, return all of them in any order. - - -Examples 2 -Input: - 5 - / \ -2 -5 - -return [2], since 2 happens twice, however -5 only occur once. - - -Note: -You may assume the sum of values in any subtree is in the range of 32-bit signed integer. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0508.most-frequent-subtree-sum/most-frequent-subtree-sum.go b/Algorithms/0508.most-frequent-subtree-sum/most-frequent-subtree-sum.go deleted file mode 100755 index b70878e5f..000000000 --- a/Algorithms/0508.most-frequent-subtree-sum/most-frequent-subtree-sum.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0508 - diff --git a/Algorithms/0508.most-frequent-subtree-sum/most-frequent-subtree-sum_test.go b/Algorithms/0508.most-frequent-subtree-sum/most-frequent-subtree-sum_test.go deleted file mode 100755 index bdf39ab49..000000000 --- a/Algorithms/0508.most-frequent-subtree-sum/most-frequent-subtree-sum_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0508 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0508(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0513.find-bottom-left-tree-value/README.md b/Algorithms/0513.find-bottom-left-tree-value/README.md deleted file mode 100755 index b6d080d4d..000000000 --- a/Algorithms/0513.find-bottom-left-tree-value/README.md +++ /dev/null @@ -1,47 +0,0 @@ -# [513. Find Bottom Left Tree Value](https://leetcode.com/problems/find-bottom-left-tree-value/) - -## 题目 - - -Given a binary tree, find the leftmost value in the last row of the tree. - - -Example 1: -Input: - - 2 - / \ - 1 3 - -Output: -1 - - - - Example 2: -Input: - - 1 - / \ - 2 3 - / / \ - 4 5 6 - / - 7 - -Output: -7 - - - -Note: -You may assume the tree (i.e., the given root node) is not NULL. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0513.find-bottom-left-tree-value/find-bottom-left-tree-value.go b/Algorithms/0513.find-bottom-left-tree-value/find-bottom-left-tree-value.go deleted file mode 100755 index 25206b2cf..000000000 --- a/Algorithms/0513.find-bottom-left-tree-value/find-bottom-left-tree-value.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0513 - diff --git a/Algorithms/0513.find-bottom-left-tree-value/find-bottom-left-tree-value_test.go b/Algorithms/0513.find-bottom-left-tree-value/find-bottom-left-tree-value_test.go deleted file mode 100755 index 89e883f8c..000000000 --- a/Algorithms/0513.find-bottom-left-tree-value/find-bottom-left-tree-value_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0513 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0513(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0514.freedom-trail/README.md b/Algorithms/0514.freedom-trail/README.md deleted file mode 100755 index b161a3311..000000000 --- a/Algorithms/0514.freedom-trail/README.md +++ /dev/null @@ -1,49 +0,0 @@ -# [514. Freedom Trail](https://leetcode.com/problems/freedom-trail/) - -## 题目 - - -In the video game Fallout 4, the quest "Road to Freedom" requires players to reach a metal dial called the "Freedom Trail Ring", and use the dial to spell a specific keyword in order to open the door. - - - -Given a string ring, which represents the code engraved on the outer ring and another string key, which represents the keyword needs to be spelled. You need to find the minimum number of steps in order to spell all the characters in the keyword. - -Initially, the first character of the ring is aligned at 12:00 direction. You need to spell all the characters in the string key one by one by rotating the ring clockwise or anticlockwise to make each character of the string key aligned at 12:00 direction and then by pressing the center button. - - -At the stage of rotating the ring to spell the key character key[i]: - -You can rotate the ring clockwise or anticlockwise one place, which counts as 1 step. The final purpose of the rotation is to align one of the string ring's characters at the 12:00 direction, where this character must equal to the character key[i]. - -If the character key[i] has been aligned at the 12:00 direction, you need to press the center button to spell, which also counts as 1 step. After the pressing, you could begin to spell the next character in the key (next stage), otherwise, you've finished all the spelling. - - - - -Example: - - - - -Input: ring = "godding", key = "gd" -Output: 4 -Explanation: For the first key character 'g', since it is already in place, we just need 1 step to spell this character. For the second key character 'd', we need to rotate the ring "godding" anticlockwise by two steps to make it become "ddinggo". Also, we need 1 more step for spelling. So the final output is 4. - - - -Note: - -Length of both ring and key will be in range 1 to 100. -There are only lowercase letters in both strings and might be some duplcate characters in both strings. -It's guaranteed that string key could always be spelled by rotating the string ring. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0514.freedom-trail/freedom-trail.go b/Algorithms/0514.freedom-trail/freedom-trail.go deleted file mode 100755 index 0bcbe4072..000000000 --- a/Algorithms/0514.freedom-trail/freedom-trail.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0514 - diff --git a/Algorithms/0514.freedom-trail/freedom-trail_test.go b/Algorithms/0514.freedom-trail/freedom-trail_test.go deleted file mode 100755 index 51fd41c43..000000000 --- a/Algorithms/0514.freedom-trail/freedom-trail_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0514 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0514(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0515.find-largest-value-in-each-tree-row/README.md b/Algorithms/0515.find-largest-value-in-each-tree-row/README.md deleted file mode 100755 index af62c8516..000000000 --- a/Algorithms/0515.find-largest-value-in-each-tree-row/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# [515. Find Largest Value in Each Tree Row](https://leetcode.com/problems/find-largest-value-in-each-tree-row/) - -## 题目 - - You need to find the largest value in each row of a binary tree. - -Example: -Input: - - 1 - / \ - 3 2 - / \ \ - 5 3 9 - -Output: [1, 3, 9] - - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0515.find-largest-value-in-each-tree-row/find-largest-value-in-each-tree-row.go b/Algorithms/0515.find-largest-value-in-each-tree-row/find-largest-value-in-each-tree-row.go deleted file mode 100755 index 93436a0d4..000000000 --- a/Algorithms/0515.find-largest-value-in-each-tree-row/find-largest-value-in-each-tree-row.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0515 - diff --git a/Algorithms/0515.find-largest-value-in-each-tree-row/find-largest-value-in-each-tree-row_test.go b/Algorithms/0515.find-largest-value-in-each-tree-row/find-largest-value-in-each-tree-row_test.go deleted file mode 100755 index 17755191b..000000000 --- a/Algorithms/0515.find-largest-value-in-each-tree-row/find-largest-value-in-each-tree-row_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0515 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0515(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0516.longest-palindromic-subsequence/README.md b/Algorithms/0516.longest-palindromic-subsequence/README.md deleted file mode 100755 index 11f1237dd..000000000 --- a/Algorithms/0516.longest-palindromic-subsequence/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# [516. Longest Palindromic Subsequence](https://leetcode.com/problems/longest-palindromic-subsequence/) - -## 题目 - - -Given a string s, find the longest palindromic subsequence's length in s. You may assume that the maximum length of s is 1000. - - -Example 1: -Input: -"bbbab" - -Output: -4 - -One possible longest palindromic subsequence is "bbbb". - - -Example 2: -Input: -"cbbd" - -Output: -2 - -One possible longest palindromic subsequence is "bb". - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0516.longest-palindromic-subsequence/longest-palindromic-subsequence.go b/Algorithms/0516.longest-palindromic-subsequence/longest-palindromic-subsequence.go deleted file mode 100755 index e75ceef46..000000000 --- a/Algorithms/0516.longest-palindromic-subsequence/longest-palindromic-subsequence.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0516 - diff --git a/Algorithms/0516.longest-palindromic-subsequence/longest-palindromic-subsequence_test.go b/Algorithms/0516.longest-palindromic-subsequence/longest-palindromic-subsequence_test.go deleted file mode 100755 index a35a53470..000000000 --- a/Algorithms/0516.longest-palindromic-subsequence/longest-palindromic-subsequence_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0516 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0516(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0517.super-washing-machines/README.md b/Algorithms/0517.super-washing-machines/README.md deleted file mode 100755 index 7c43eea3c..000000000 --- a/Algorithms/0517.super-washing-machines/README.md +++ /dev/null @@ -1,57 +0,0 @@ -# [517. Super Washing Machines](https://leetcode.com/problems/super-washing-machines/) - -## 题目 - - You have n super washing machines on a line. Initially, each washing machine has some dresses or is empty. - - -For each move, you could choose any m (1 ? m ? n) washing machines, and pass one dress of each washing machine to one of its adjacent washing machines at the same time . - -Given an integer array representing the number of dresses in each washing machine from left to right on the line, you should find the minimum number of moves to make all the washing machines have the same number of dresses. If it is not possible to do it, return -1. - -Example1 -Input: [1,0,5] - -Output: 3 - -Explanation: -1st move: 1 0 <-- 5 => 1 1 4 -2nd move: 1 <-- 1 <-- 4 => 2 1 3 -3rd move: 2 1 <-- 3 => 2 2 2 - - -Example2 -Input: [0,3,0] - -Output: 2 - -Explanation: -1st move: 0 <-- 3 0 => 1 2 0 -2nd move: 1 2 --> 0 => 1 1 1 - - -Example3 -Input: [0,2,0] - -Output: -1 - -Explanation: -It's impossible to make all the three washing machines have the same number of dresses. - - - - -Note: - -The range of n is [1, 10000]. -The range of dresses number in a super washing machine is [0, 1e5]. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0517.super-washing-machines/super-washing-machines.go b/Algorithms/0517.super-washing-machines/super-washing-machines.go deleted file mode 100755 index 86a6940b1..000000000 --- a/Algorithms/0517.super-washing-machines/super-washing-machines.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0517 - diff --git a/Algorithms/0517.super-washing-machines/super-washing-machines_test.go b/Algorithms/0517.super-washing-machines/super-washing-machines_test.go deleted file mode 100755 index 1728fa84e..000000000 --- a/Algorithms/0517.super-washing-machines/super-washing-machines_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0517 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0517(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0520.detect-capital/README.md b/Algorithms/0520.detect-capital/README.md deleted file mode 100755 index 6d37b27ce..000000000 --- a/Algorithms/0520.detect-capital/README.md +++ /dev/null @@ -1,42 +0,0 @@ -# [520. Detect Capital](https://leetcode.com/problems/detect-capital/) - -## 题目 - - -Given a word, you need to judge whether the usage of capitals in it is right or not. - - - -We define the usage of capitals in a word to be right when one of the following cases holds: - -All letters in this word are capitals, like "USA". -All letters in this word are not capitals, like "leetcode". -Only the first letter in this word is capital if it has more than one letter, like "Google". - -Otherwise, we define that this word doesn't use capitals in a right way. - - - -Example 1: -Input: "USA" -Output: True - - - -Example 2: -Input: "FlaG" -Output: False - - - -Note: -The input will be a non-empty word consisting of uppercase and lowercase latin letters. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0520.detect-capital/detect-capital.go b/Algorithms/0520.detect-capital/detect-capital.go deleted file mode 100755 index 3f62cd2a8..000000000 --- a/Algorithms/0520.detect-capital/detect-capital.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0520 - diff --git a/Algorithms/0520.detect-capital/detect-capital_test.go b/Algorithms/0520.detect-capital/detect-capital_test.go deleted file mode 100755 index 0e208650c..000000000 --- a/Algorithms/0520.detect-capital/detect-capital_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0520 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0520(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0521.longest-uncommon-subsequence-i/README.md b/Algorithms/0521.longest-uncommon-subsequence-i/README.md deleted file mode 100755 index a29ee9b18..000000000 --- a/Algorithms/0521.longest-uncommon-subsequence-i/README.md +++ /dev/null @@ -1,38 +0,0 @@ -# [521. Longest Uncommon Subsequence I ](https://leetcode.com/problems/longest-uncommon-subsequence-i/) - -## 题目 - - -Given a group of two strings, you need to find the longest uncommon subsequence of this group of two strings. -The longest uncommon subsequence is defined as the longest subsequence of one of these strings and this subsequence should not be any subsequence of the other strings. - - - -A subsequence is a sequence that can be derived from one sequence by deleting some characters without changing the order of the remaining elements. Trivially, any string is a subsequence of itself and an empty string is a subsequence of any string. - - - -The input will be two strings, and the output needs to be the length of the longest uncommon subsequence. If the longest uncommon subsequence doesn't exist, return -1. - - -Example 1: -Input: "aba", "cdc" -Output: 3 -Explanation: The longest uncommon subsequence is "aba" (or "cdc"), because "aba" is a subsequence of "aba", but not a subsequence of any other strings in the group of two strings. - - - -Note: - -Both strings' lengths will not exceed 100. -Only letters from a ~ z will appear in input strings. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0521.longest-uncommon-subsequence-i/longest-uncommon-subsequence-i.go b/Algorithms/0521.longest-uncommon-subsequence-i/longest-uncommon-subsequence-i.go deleted file mode 100755 index b23fff157..000000000 --- a/Algorithms/0521.longest-uncommon-subsequence-i/longest-uncommon-subsequence-i.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0521 - diff --git a/Algorithms/0521.longest-uncommon-subsequence-i/longest-uncommon-subsequence-i_test.go b/Algorithms/0521.longest-uncommon-subsequence-i/longest-uncommon-subsequence-i_test.go deleted file mode 100755 index b96f9ed09..000000000 --- a/Algorithms/0521.longest-uncommon-subsequence-i/longest-uncommon-subsequence-i_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0521 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0521(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0522.longest-uncommon-subsequence-ii/README.md b/Algorithms/0522.longest-uncommon-subsequence-ii/README.md deleted file mode 100755 index df1d201f2..000000000 --- a/Algorithms/0522.longest-uncommon-subsequence-ii/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# [522. Longest Uncommon Subsequence II](https://leetcode.com/problems/longest-uncommon-subsequence-ii/) - -## 题目 - - -Given a list of strings, you need to find the longest uncommon subsequence among them. The longest uncommon subsequence is defined as the longest subsequence of one of these strings and this subsequence should not be any subsequence of the other strings. - - - -A subsequence is a sequence that can be derived from one sequence by deleting some characters without changing the order of the remaining elements. Trivially, any string is a subsequence of itself and an empty string is a subsequence of any string. - - - -The input will be a list of strings, and the output needs to be the length of the longest uncommon subsequence. If the longest uncommon subsequence doesn't exist, return -1. - - -Example 1: -Input: "aba", "cdc", "eae" -Output: 3 - - - -Note: - -All the given strings' lengths will not exceed 10. -The length of the given list will be in the range of [2, 50]. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0522.longest-uncommon-subsequence-ii/longest-uncommon-subsequence-ii.go b/Algorithms/0522.longest-uncommon-subsequence-ii/longest-uncommon-subsequence-ii.go deleted file mode 100755 index 81fe543a2..000000000 --- a/Algorithms/0522.longest-uncommon-subsequence-ii/longest-uncommon-subsequence-ii.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0522 - diff --git a/Algorithms/0522.longest-uncommon-subsequence-ii/longest-uncommon-subsequence-ii_test.go b/Algorithms/0522.longest-uncommon-subsequence-ii/longest-uncommon-subsequence-ii_test.go deleted file mode 100755 index 5dccc659f..000000000 --- a/Algorithms/0522.longest-uncommon-subsequence-ii/longest-uncommon-subsequence-ii_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0522 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0522(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0523.continuous-subarray-sum/README.md b/Algorithms/0523.continuous-subarray-sum/README.md deleted file mode 100755 index fc9a2362f..000000000 --- a/Algorithms/0523.continuous-subarray-sum/README.md +++ /dev/null @@ -1,38 +0,0 @@ -# [523. Continuous Subarray Sum](https://leetcode.com/problems/continuous-subarray-sum/) - -## 题目 - - -Given a list of non-negative numbers and a target integer k, write a function to check if the array has a continuous subarray of size at least 2 that sums up to the multiple of k, that is, sums up to n*k where n is also an integer. - - - -Example 1: -Input: [23, 2, 4, 6, 7], k=6 -Output: True -Explanation: Because [2, 4] is a continuous subarray of size 2 and sums up to 6. - - - - -Example 2: -Input: [23, 2, 6, 4, 7], k=6 -Output: True -Explanation: Because [23, 2, 6, 4, 7] is an continuous subarray of size 5 and sums up to 42. - - - -Note: - -The length of the array won't exceed 10,000. -You may assume the sum of all the numbers is in the range of a signed 32-bit integer. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0523.continuous-subarray-sum/continuous-subarray-sum.go b/Algorithms/0523.continuous-subarray-sum/continuous-subarray-sum.go deleted file mode 100755 index 77de5a48c..000000000 --- a/Algorithms/0523.continuous-subarray-sum/continuous-subarray-sum.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0523 - diff --git a/Algorithms/0523.continuous-subarray-sum/continuous-subarray-sum_test.go b/Algorithms/0523.continuous-subarray-sum/continuous-subarray-sum_test.go deleted file mode 100755 index 657d97eaf..000000000 --- a/Algorithms/0523.continuous-subarray-sum/continuous-subarray-sum_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0523 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0523(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0524.longest-word-in-dictionary-through-deleting/README.md b/Algorithms/0524.longest-word-in-dictionary-through-deleting/README.md deleted file mode 100755 index 9dd0a833b..000000000 --- a/Algorithms/0524.longest-word-in-dictionary-through-deleting/README.md +++ /dev/null @@ -1,41 +0,0 @@ -# [524. Longest Word in Dictionary through Deleting](https://leetcode.com/problems/longest-word-in-dictionary-through-deleting/) - -## 题目 - - -Given a string and a string dictionary, find the longest string in the dictionary that can be formed by deleting some characters of the given string. If there are more than one possible results, return the longest word with the smallest lexicographical order. If there is no possible result, return the empty string. - -Example 1: -Input: -s = "abpcplea", d = ["ale","apple","monkey","plea"] - -Output: -"apple" - - - - -Example 2: -Input: -s = "abpcplea", d = ["a","b","c"] - -Output: -"a" - - - -Note: - -All the strings in the input will only contain lower-case letters. -The size of the dictionary won't exceed 1,000. -The length of all the strings in the input won't exceed 1,000. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0524.longest-word-in-dictionary-through-deleting/longest-word-in-dictionary-through-deleting.go b/Algorithms/0524.longest-word-in-dictionary-through-deleting/longest-word-in-dictionary-through-deleting.go deleted file mode 100755 index cfbb97241..000000000 --- a/Algorithms/0524.longest-word-in-dictionary-through-deleting/longest-word-in-dictionary-through-deleting.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0524 - diff --git a/Algorithms/0524.longest-word-in-dictionary-through-deleting/longest-word-in-dictionary-through-deleting_test.go b/Algorithms/0524.longest-word-in-dictionary-through-deleting/longest-word-in-dictionary-through-deleting_test.go deleted file mode 100755 index 61f796f47..000000000 --- a/Algorithms/0524.longest-word-in-dictionary-through-deleting/longest-word-in-dictionary-through-deleting_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0524 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0524(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0525.contiguous-array/README.md b/Algorithms/0525.contiguous-array/README.md deleted file mode 100755 index 69bc17837..000000000 --- a/Algorithms/0525.contiguous-array/README.md +++ /dev/null @@ -1,32 +0,0 @@ -# [525. Contiguous Array](https://leetcode.com/problems/contiguous-array/) - -## 题目 - - Given a binary array, find the maximum length of a contiguous subarray with equal number of 0 and 1. - - -Example 1: -Input: [0,1] -Output: 2 -Explanation: [0, 1] is the longest contiguous subarray with equal number of 0 and 1. - - - -Example 2: -Input: [0,1,0] -Output: 2 -Explanation: [0, 1] (or [1, 0]) is a longest contiguous subarray with equal number of 0 and 1. - - - -Note: -The length of the given binary array will not exceed 50,000. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0525.contiguous-array/contiguous-array.go b/Algorithms/0525.contiguous-array/contiguous-array.go deleted file mode 100755 index bf75d7bff..000000000 --- a/Algorithms/0525.contiguous-array/contiguous-array.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0525 - diff --git a/Algorithms/0525.contiguous-array/contiguous-array_test.go b/Algorithms/0525.contiguous-array/contiguous-array_test.go deleted file mode 100755 index 8c0ec508c..000000000 --- a/Algorithms/0525.contiguous-array/contiguous-array_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0525 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0525(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0526.beautiful-arrangement/README.md b/Algorithms/0526.beautiful-arrangement/README.md deleted file mode 100755 index 1fac48690..000000000 --- a/Algorithms/0526.beautiful-arrangement/README.md +++ /dev/null @@ -1,42 +0,0 @@ -# [526. Beautiful Arrangement](https://leetcode.com/problems/beautiful-arrangement/) - -## 题目 - - -Suppose you have N integers from 1 to N. We define a beautiful arrangement as an array that is constructed by these N numbers successfully if one of the following is true for the ith position (1 ? i ? N) in this array: - -The number at the ith position is divisible by i. -i is divisible by the number at the ith position. - - - - -Now given N, how many beautiful arrangements can you construct? - - -Example 1: -Input: 2 -Output: 2 -Explanation: -The first beautiful arrangement is [1, 2]: -Number at the 1st position (i=1) is 1, and 1 is divisible by i (i=1). -Number at the 2nd position (i=2) is 2, and 2 is divisible by i (i=2). -The second beautiful arrangement is [2, 1]: -Number at the 1st position (i=1) is 2, and 2 is divisible by i (i=1). -Number at the 2nd position (i=2) is 1, and i (i=2) is divisible by 1. - - - -Note: - -N is a positive integer and will not exceed 15. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0526.beautiful-arrangement/beautiful-arrangement.go b/Algorithms/0526.beautiful-arrangement/beautiful-arrangement.go deleted file mode 100755 index c43af4c20..000000000 --- a/Algorithms/0526.beautiful-arrangement/beautiful-arrangement.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0526 - diff --git a/Algorithms/0526.beautiful-arrangement/beautiful-arrangement_test.go b/Algorithms/0526.beautiful-arrangement/beautiful-arrangement_test.go deleted file mode 100755 index a8ff0e3f4..000000000 --- a/Algorithms/0526.beautiful-arrangement/beautiful-arrangement_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0526 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0526(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0529.minesweeper/README.md b/Algorithms/0529.minesweeper/README.md deleted file mode 100755 index fa088af81..000000000 --- a/Algorithms/0529.minesweeper/README.md +++ /dev/null @@ -1,81 +0,0 @@ -# [529. Minesweeper](https://leetcode.com/problems/minesweeper/) - -## 题目 - - Let's play the minesweeper game (Wikipedia, online game)! - -You are given a 2D char matrix representing the game board. 'M' represents an unrevealed mine, 'E' represents an unrevealed empty square, 'B' represents a revealed blank square that has no adjacent (above, below, left, right, and all 4 diagonals) mines, digit ('1' to '8') represents how many mines are adjacent to this revealed square, and finally 'X' represents a revealed mine. - -Now given the next click position (row and column indices) among all the unrevealed squares ('M' or 'E'), return the board after revealing this position according to the following rules: - - - -If a mine ('M') is revealed, then the game is over - change it to 'X'. -If an empty square ('E') with no adjacent mines is revealed, then change it to revealed blank ('B') and all of its adjacent unrevealed squares should be revealed recursively. -If an empty square ('E') with at least one adjacent mine is revealed, then change it to a digit ('1' to '8') representing the number of adjacent mines. -Return the board when no more squares will be revealed. - - - -Example 1: -Input: - -[['E', 'E', 'E', 'E', 'E'], - ['E', 'E', 'M', 'E', 'E'], - ['E', 'E', 'E', 'E', 'E'], - ['E', 'E', 'E', 'E', 'E']] - -Click : [3,0] - -Output: - -[['B', '1', 'E', '1', 'B'], - ['B', '1', 'M', '1', 'B'], - ['B', '1', '1', '1', 'B'], - ['B', 'B', 'B', 'B', 'B']] - -Explanation: - - - - -Example 2: -Input: - -[['B', '1', 'E', '1', 'B'], - ['B', '1', 'M', '1', 'B'], - ['B', '1', '1', '1', 'B'], - ['B', 'B', 'B', 'B', 'B']] - -Click : [1,2] - -Output: - -[['B', '1', 'E', '1', 'B'], - ['B', '1', 'X', '1', 'B'], - ['B', '1', '1', '1', 'B'], - ['B', 'B', 'B', 'B', 'B']] - -Explanation: - - - - - - -Note: - -The range of the input matrix's height and width is [1,50]. -The click position will only be an unrevealed square ('M' or 'E'), which also means the input board contains at least one clickable square. -The input board won't be a stage when game is over (some mines have been revealed). -For simplicity, not mentioned rules should be ignored in this problem. For example, you don't need to reveal all the unrevealed mines when the game is over, consider any cases that you will win the game or flag any squares. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0529.minesweeper/minesweeper.go b/Algorithms/0529.minesweeper/minesweeper.go deleted file mode 100755 index 39e666fc7..000000000 --- a/Algorithms/0529.minesweeper/minesweeper.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0529 - diff --git a/Algorithms/0529.minesweeper/minesweeper_test.go b/Algorithms/0529.minesweeper/minesweeper_test.go deleted file mode 100755 index 5dcaa6994..000000000 --- a/Algorithms/0529.minesweeper/minesweeper_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0529 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0529(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0530.minimum-absolute-difference-in-bst/README.md b/Algorithms/0530.minimum-absolute-difference-in-bst/README.md deleted file mode 100755 index ca26dd951..000000000 --- a/Algorithms/0530.minimum-absolute-difference-in-bst/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# [530. Minimum Absolute Difference in BST](https://leetcode.com/problems/minimum-absolute-difference-in-bst/) - -## 题目 - - Given a binary search tree with non-negative values, find the minimum absolute difference between values of any two nodes. - - -Example: -Input: - - 1 - \ - 3 - / - 2 - -Output: -1 - -Explanation: -The minimum absolute difference is 1, which is the difference between 2 and 1 (or between 2 and 3). - - - - -Note: -There are at least two nodes in this BST. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0530.minimum-absolute-difference-in-bst/minimum-absolute-difference-in-bst.go b/Algorithms/0530.minimum-absolute-difference-in-bst/minimum-absolute-difference-in-bst.go deleted file mode 100755 index bfb7a8f07..000000000 --- a/Algorithms/0530.minimum-absolute-difference-in-bst/minimum-absolute-difference-in-bst.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0530 - diff --git a/Algorithms/0530.minimum-absolute-difference-in-bst/minimum-absolute-difference-in-bst_test.go b/Algorithms/0530.minimum-absolute-difference-in-bst/minimum-absolute-difference-in-bst_test.go deleted file mode 100755 index f820e75b9..000000000 --- a/Algorithms/0530.minimum-absolute-difference-in-bst/minimum-absolute-difference-in-bst_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0530 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0530(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0535.encode-and-decode-tinyurl/README.md b/Algorithms/0535.encode-and-decode-tinyurl/README.md deleted file mode 100755 index 9caa88e41..000000000 --- a/Algorithms/0535.encode-and-decode-tinyurl/README.md +++ /dev/null @@ -1,17 +0,0 @@ -# [535. Encode and Decode TinyURL](https://leetcode.com/problems/encode-and-decode-tinyurl/) - -## 题目 - - Note: This is a companion problem to the System Design problem: Design TinyURL. - -TinyURL is a URL shortening service where you enter a URL such as https://leetcode.com/problems/design-tinyurl and it returns a short URL such as http://tinyurl.com/4e9iAk. - -Design the encode and decode methods for the TinyURL service. There is no restriction on how your encode/decode algorithm should work. You just need to ensure that a URL can be encoded to a tiny URL and the tiny URL can be decoded to the original URL. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0535.encode-and-decode-tinyurl/encode-and-decode-tinyurl.go b/Algorithms/0535.encode-and-decode-tinyurl/encode-and-decode-tinyurl.go deleted file mode 100755 index a6cb8ed37..000000000 --- a/Algorithms/0535.encode-and-decode-tinyurl/encode-and-decode-tinyurl.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0535 - diff --git a/Algorithms/0535.encode-and-decode-tinyurl/encode-and-decode-tinyurl_test.go b/Algorithms/0535.encode-and-decode-tinyurl/encode-and-decode-tinyurl_test.go deleted file mode 100755 index 252040718..000000000 --- a/Algorithms/0535.encode-and-decode-tinyurl/encode-and-decode-tinyurl_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0535 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0535(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0537.complex-number-multiplication/README.md b/Algorithms/0537.complex-number-multiplication/README.md deleted file mode 100755 index 838913bac..000000000 --- a/Algorithms/0537.complex-number-multiplication/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# [537. Complex Number Multiplication](https://leetcode.com/problems/complex-number-multiplication/) - -## 题目 - - -Given two strings representing two complex numbers. - - -You need to return a string representing their multiplication. Note i2 = -1 according to the definition. - - -Example 1: -Input: "1+1i", "1+1i" -Output: "0+2i" -Explanation: (1 + i) * (1 + i) = 1 + i2 + 2 * i = 2i, and you need convert it to the form of 0+2i. - - - -Example 2: -Input: "1+-1i", "1+-1i" -Output: "0+-2i" -Explanation: (1 - i) * (1 - i) = 1 + i2 - 2 * i = -2i, and you need convert it to the form of 0+-2i. - - - -Note: - -The input strings will not have extra blank. -The input strings will be given in the form of a+bi, where the integer a and b will both belong to the range of [-100, 100]. And the output should be also in this form. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0537.complex-number-multiplication/complex-number-multiplication.go b/Algorithms/0537.complex-number-multiplication/complex-number-multiplication.go deleted file mode 100755 index 176a2f7e6..000000000 --- a/Algorithms/0537.complex-number-multiplication/complex-number-multiplication.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0537 - diff --git a/Algorithms/0537.complex-number-multiplication/complex-number-multiplication_test.go b/Algorithms/0537.complex-number-multiplication/complex-number-multiplication_test.go deleted file mode 100755 index 46d2d6ac5..000000000 --- a/Algorithms/0537.complex-number-multiplication/complex-number-multiplication_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0537 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0537(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0538.convert-bst-to-greater-tree/README.md b/Algorithms/0538.convert-bst-to-greater-tree/README.md deleted file mode 100755 index 545a2fd94..000000000 --- a/Algorithms/0538.convert-bst-to-greater-tree/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# [538. Convert BST to Greater Tree](https://leetcode.com/problems/convert-bst-to-greater-tree/) - -## 题目 - - Given a Binary Search Tree (BST), convert it to a Greater Tree such that every key of the original BST is changed to the original key plus sum of all keys greater than the original key in BST. - - -Example: -Input: The root of a Binary Search Tree like this: - 5 - / \ - 2 13 - -Output: The root of a Greater Tree like this: - 18 - / \ - 20 13 - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0538.convert-bst-to-greater-tree/convert-bst-to-greater-tree.go b/Algorithms/0538.convert-bst-to-greater-tree/convert-bst-to-greater-tree.go deleted file mode 100755 index d59de3923..000000000 --- a/Algorithms/0538.convert-bst-to-greater-tree/convert-bst-to-greater-tree.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0538 - diff --git a/Algorithms/0538.convert-bst-to-greater-tree/convert-bst-to-greater-tree_test.go b/Algorithms/0538.convert-bst-to-greater-tree/convert-bst-to-greater-tree_test.go deleted file mode 100755 index 198884199..000000000 --- a/Algorithms/0538.convert-bst-to-greater-tree/convert-bst-to-greater-tree_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0538 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0538(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0539.minimum-time-difference/README.md b/Algorithms/0539.minimum-time-difference/README.md deleted file mode 100755 index 36810d914..000000000 --- a/Algorithms/0539.minimum-time-difference/README.md +++ /dev/null @@ -1,26 +0,0 @@ -# [539. Minimum Time Difference](https://leetcode.com/problems/minimum-time-difference/) - -## 题目 - - Given a list of 24-hour clock time points in "Hour:Minutes" format, find the minimum minutes difference between any two time points in the list. - -Example 1: -Input: ["23:59","00:00"] -Output: 1 - - - -Note: - -The number of time points in the given list is at least 2 and won't exceed 20000. -The input time is legal and ranges from 00:00 to 23:59. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0539.minimum-time-difference/minimum-time-difference.go b/Algorithms/0539.minimum-time-difference/minimum-time-difference.go deleted file mode 100755 index 7c04a7d14..000000000 --- a/Algorithms/0539.minimum-time-difference/minimum-time-difference.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0539 - diff --git a/Algorithms/0539.minimum-time-difference/minimum-time-difference_test.go b/Algorithms/0539.minimum-time-difference/minimum-time-difference_test.go deleted file mode 100755 index 789138bad..000000000 --- a/Algorithms/0539.minimum-time-difference/minimum-time-difference_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0539 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0539(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0540.single-element-in-a-sorted-array/README.md b/Algorithms/0540.single-element-in-a-sorted-array/README.md deleted file mode 100755 index 9ebd84457..000000000 --- a/Algorithms/0540.single-element-in-a-sorted-array/README.md +++ /dev/null @@ -1,32 +0,0 @@ -# [540. Single Element in a Sorted Array](https://leetcode.com/problems/single-element-in-a-sorted-array/) - -## 题目 - - -Given a sorted array consisting of only integers where every element appears twice except for one element which appears once. Find this single element that appears only once. - - -Example 1: -Input: [1,1,2,3,3,4,4,8,8] -Output: 2 - - - -Example 2: -Input: [3,3,7,7,10,11,11] -Output: 10 - - - -Note: -Your solution should run in O(log n) time and O(1) space. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0540.single-element-in-a-sorted-array/single-element-in-a-sorted-array.go b/Algorithms/0540.single-element-in-a-sorted-array/single-element-in-a-sorted-array.go deleted file mode 100755 index 419759dfe..000000000 --- a/Algorithms/0540.single-element-in-a-sorted-array/single-element-in-a-sorted-array.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0540 - diff --git a/Algorithms/0540.single-element-in-a-sorted-array/single-element-in-a-sorted-array_test.go b/Algorithms/0540.single-element-in-a-sorted-array/single-element-in-a-sorted-array_test.go deleted file mode 100755 index 9e4a39717..000000000 --- a/Algorithms/0540.single-element-in-a-sorted-array/single-element-in-a-sorted-array_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0540 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0540(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0541.reverse-string-ii/README.md b/Algorithms/0541.reverse-string-ii/README.md deleted file mode 100755 index 89ee3a5f6..000000000 --- a/Algorithms/0541.reverse-string-ii/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# [541. Reverse String II](https://leetcode.com/problems/reverse-string-ii/) - -## 题目 - - -Given a string and an integer k, you need to reverse the first k characters for every 2k characters counting from the start of the string. If there are less than k characters left, reverse all of them. If there are less than 2k but greater than or equal to k characters, then reverse the first k characters and left the other as original. - - -Example: -Input: s = "abcdefg", k = 2 -Output: "bacdfeg" - - - -Restrictions: - - The string consists of lower English letters only. - Length of the given string and k will in the range [1, 10000] - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0541.reverse-string-ii/reverse-string-ii.go b/Algorithms/0541.reverse-string-ii/reverse-string-ii.go deleted file mode 100755 index 038df55f8..000000000 --- a/Algorithms/0541.reverse-string-ii/reverse-string-ii.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0541 - diff --git a/Algorithms/0541.reverse-string-ii/reverse-string-ii_test.go b/Algorithms/0541.reverse-string-ii/reverse-string-ii_test.go deleted file mode 100755 index 02847e474..000000000 --- a/Algorithms/0541.reverse-string-ii/reverse-string-ii_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0541 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0541(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0542.01-matrix/01-matrix.go b/Algorithms/0542.01-matrix/01-matrix.go deleted file mode 100755 index a0ec9d619..000000000 --- a/Algorithms/0542.01-matrix/01-matrix.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0542 - diff --git a/Algorithms/0542.01-matrix/01-matrix_test.go b/Algorithms/0542.01-matrix/01-matrix_test.go deleted file mode 100755 index 02da7ef52..000000000 --- a/Algorithms/0542.01-matrix/01-matrix_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0542 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0542(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0542.01-matrix/README.md b/Algorithms/0542.01-matrix/README.md deleted file mode 100755 index 83ef2f2f8..000000000 --- a/Algorithms/0542.01-matrix/README.md +++ /dev/null @@ -1,51 +0,0 @@ -# [542. 01 Matrix](https://leetcode.com/problems/01-matrix/) - -## 题目 - - -Given a matrix consists of 0 and 1, find the distance of the nearest 0 for each cell. - -The distance between two adjacent cells is 1. - -Example 1: -Input: -0 0 0 -0 1 0 -0 0 0 - -Output: -0 0 0 -0 1 0 -0 0 0 - - - -Example 2: -Input: -0 0 0 -0 1 0 -1 1 1 - -Output: -0 0 0 -0 1 0 -1 2 1 - - - -Note: - -The number of elements of the given matrix will not exceed 10,000. -There are at least one 0 in the given matrix. -The cells are adjacent in only four directions: up, down, left and right. - - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0543.diameter-of-binary-tree/README.md b/Algorithms/0543.diameter-of-binary-tree/README.md deleted file mode 100755 index 33c22ac16..000000000 --- a/Algorithms/0543.diameter-of-binary-tree/README.md +++ /dev/null @@ -1,33 +0,0 @@ -# [543. Diameter of Binary Tree](https://leetcode.com/problems/diameter-of-binary-tree/) - -## 题目 - - -Given a binary tree, you need to compute the length of the diameter of the tree. The diameter of a binary tree is the length of the longest path between any two nodes in a tree. This path may or may not pass through the root. - - - -Example: -Given a binary tree - 1 - / \ - 2 3 - / \ - 4 5 - - - -Return 3, which is the length of the path [4,2,1,3] or [5,2,1,3]. - - -Note: -The length of path between two nodes is represented by the number of edges between them. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0543.diameter-of-binary-tree/diameter-of-binary-tree.go b/Algorithms/0543.diameter-of-binary-tree/diameter-of-binary-tree.go deleted file mode 100755 index ee6cb9342..000000000 --- a/Algorithms/0543.diameter-of-binary-tree/diameter-of-binary-tree.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0543 - diff --git a/Algorithms/0543.diameter-of-binary-tree/diameter-of-binary-tree_test.go b/Algorithms/0543.diameter-of-binary-tree/diameter-of-binary-tree_test.go deleted file mode 100755 index cdd2239f8..000000000 --- a/Algorithms/0543.diameter-of-binary-tree/diameter-of-binary-tree_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0543 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0543(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0546.remove-boxes/README.md b/Algorithms/0546.remove-boxes/README.md deleted file mode 100755 index d772a5ca5..000000000 --- a/Algorithms/0546.remove-boxes/README.md +++ /dev/null @@ -1,37 +0,0 @@ -# [546. Remove Boxes](https://leetcode.com/problems/remove-boxes/) - -## 题目 - - Given several boxes with different colors represented by different positive numbers. -You may experience several rounds to remove boxes until there is no box left. Each time you can choose some continuous boxes with the same color (composed of k boxes, k >= 1), remove them and get k*k points. -Find the maximum points you can get. - - -Example 1: -Input: -[1, 3, 2, 2, 2, 3, 4, 3, 1] - -Output: -23 - -Explanation: -[1, 3, 2, 2, 2, 3, 4, 3, 1] -----> [1, 3, 3, 4, 3, 1] (3*3=9 points) -----> [1, 3, 3, 3, 1] (1*1=1 points) -----> [1, 1] (3*3=9 points) -----> [] (2*2=4 points) - - - -Note: -The number of boxes n would not exceed 100. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0546.remove-boxes/remove-boxes.go b/Algorithms/0546.remove-boxes/remove-boxes.go deleted file mode 100755 index eb9e2a6d0..000000000 --- a/Algorithms/0546.remove-boxes/remove-boxes.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0546 - diff --git a/Algorithms/0546.remove-boxes/remove-boxes_test.go b/Algorithms/0546.remove-boxes/remove-boxes_test.go deleted file mode 100755 index 5fc37301a..000000000 --- a/Algorithms/0546.remove-boxes/remove-boxes_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0546 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0546(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0547.friend-circles/README.md b/Algorithms/0547.friend-circles/README.md deleted file mode 100755 index 28f415b22..000000000 --- a/Algorithms/0547.friend-circles/README.md +++ /dev/null @@ -1,48 +0,0 @@ -# [547. Friend Circles](https://leetcode.com/problems/friend-circles/) - -## 题目 - - -There are N students in a class. Some of them are friends, while some are not. Their friendship is transitive in nature. For example, if A is a direct friend of B, and B is a direct friend of C, then A is an indirect friend of C. And we defined a friend circle is a group of students who are direct or indirect friends. - - - -Given a N*N matrix M representing the friend relationship between students in the class. If M[i][j] = 1, then the ith and jth students are direct friends with each other, otherwise not. And you have to output the total number of friend circles among all the students. - - -Example 1: -Input: -[[1,1,0], - [1,1,0], - [0,0,1]] -Output: 2 -Explanation:The 0th and 1st students are direct friends, so they are in a friend circle. The 2nd student himself is in a friend circle. So return 2. - - - -Example 2: -Input: -[[1,1,0], - [1,1,1], - [0,1,1]] -Output: 1 -Explanation:The 0th and 1st students are direct friends, the 1st and 2nd students are direct friends, so the 0th and 2nd students are indirect friends. All of them are in the same friend circle, so return 1. - - - - -Note: - -N is in range [1,200]. -M[i][i] = 1 for all students. -If M[i][j] = 1, then M[j][i] = 1. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0547.friend-circles/friend-circles.go b/Algorithms/0547.friend-circles/friend-circles.go deleted file mode 100755 index 9a6b6ccb0..000000000 --- a/Algorithms/0547.friend-circles/friend-circles.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0547 - diff --git a/Algorithms/0547.friend-circles/friend-circles_test.go b/Algorithms/0547.friend-circles/friend-circles_test.go deleted file mode 100755 index 09907ee2b..000000000 --- a/Algorithms/0547.friend-circles/friend-circles_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0547 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0547(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0551.student-attendance-record-i/README.md b/Algorithms/0551.student-attendance-record-i/README.md deleted file mode 100755 index f4fa05278..000000000 --- a/Algorithms/0551.student-attendance-record-i/README.md +++ /dev/null @@ -1,41 +0,0 @@ -# [551. Student Attendance Record I](https://leetcode.com/problems/student-attendance-record-i/) - -## 题目 - - You are given a string representing an attendance record for a student. The record only contains the following three characters: - - - -'A' : Absent. -'L' : Late. - 'P' : Present. - - - - -A student could be rewarded if his attendance record doesn't contain more than one 'A' (absent) or more than two continuous 'L' (late). - -You need to return whether the student could be rewarded according to his attendance record. - -Example 1: -Input: "PPALLP" -Output: True - - - -Example 2: -Input: "PPALLL" -Output: False - - - - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0551.student-attendance-record-i/student-attendance-record-i.go b/Algorithms/0551.student-attendance-record-i/student-attendance-record-i.go deleted file mode 100755 index aff5186d5..000000000 --- a/Algorithms/0551.student-attendance-record-i/student-attendance-record-i.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0551 - diff --git a/Algorithms/0551.student-attendance-record-i/student-attendance-record-i_test.go b/Algorithms/0551.student-attendance-record-i/student-attendance-record-i_test.go deleted file mode 100755 index 8878f12b0..000000000 --- a/Algorithms/0551.student-attendance-record-i/student-attendance-record-i_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0551 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0551(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0552.student-attendance-record-ii/README.md b/Algorithms/0552.student-attendance-record-ii/README.md deleted file mode 100755 index bea25b073..000000000 --- a/Algorithms/0552.student-attendance-record-ii/README.md +++ /dev/null @@ -1,43 +0,0 @@ -# [552. Student Attendance Record II](https://leetcode.com/problems/student-attendance-record-ii/) - -## 题目 - - Given a positive integer n, return the number of all possible attendance records with length n, which will be regarded as rewardable. The answer may be very large, return it after mod 109 + 7. - -A student attendance record is a string that only contains the following three characters: - - - -'A' : Absent. -'L' : Late. - 'P' : Present. - - - - -A record is regarded as rewardable if it doesn't contain more than one 'A' (absent) or more than two continuous 'L' (late). - -Example 1: -Input: n = 2 -Output: 8 -Explanation: -There are 8 records with length 2 will be regarded as rewardable: -"PP" , "AP", "PA", "LP", "PL", "AL", "LA", "LL" -Only "AA" won't be regarded as rewardable owing to more than one absent times. - - - -Note: -The value of n won't exceed 100,000. - - - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0552.student-attendance-record-ii/student-attendance-record-ii.go b/Algorithms/0552.student-attendance-record-ii/student-attendance-record-ii.go deleted file mode 100755 index 9f76346ec..000000000 --- a/Algorithms/0552.student-attendance-record-ii/student-attendance-record-ii.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0552 - diff --git a/Algorithms/0552.student-attendance-record-ii/student-attendance-record-ii_test.go b/Algorithms/0552.student-attendance-record-ii/student-attendance-record-ii_test.go deleted file mode 100755 index bfafa4c03..000000000 --- a/Algorithms/0552.student-attendance-record-ii/student-attendance-record-ii_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0552 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0552(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0553.optimal-division/README.md b/Algorithms/0553.optimal-division/README.md deleted file mode 100755 index 6e2027c90..000000000 --- a/Algorithms/0553.optimal-division/README.md +++ /dev/null @@ -1,38 +0,0 @@ -# [553. Optimal Division](https://leetcode.com/problems/optimal-division/) - -## 题目 - - Given a list of positive integers, the adjacent integers will perform the float division. For example, [2,3,4] -> 2 / 3 / 4. - -However, you can add any number of parenthesis at any position to change the priority of operations. You should find out how to add parenthesis to get the maximum result, and return the corresponding expression in string format. Your expression should NOT contain redundant parenthesis. - -Example: -Input: [1000,100,10,2] -Output: "1000/(100/10/2)" -Explanation: -1000/(100/10/2) = 1000/((100/10)/2) = 200 -However, the bold parenthesis in "1000/((100/10)/2)" are redundant, since they don't influence the operation priority. So you should return "1000/(100/10/2)". - -Other cases: -1000/(100/10)/2 = 50 -1000/(100/(10/2)) = 50 -1000/100/10/2 = 0.5 -1000/100/(10/2) = 2 - - - -Note: - -The length of the input array is [1, 10]. -Elements in the given array will be in range [2, 1000]. -There is only one optimal division for each test case. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0553.optimal-division/optimal-division.go b/Algorithms/0553.optimal-division/optimal-division.go deleted file mode 100755 index 2f42fdab4..000000000 --- a/Algorithms/0553.optimal-division/optimal-division.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0553 - diff --git a/Algorithms/0553.optimal-division/optimal-division_test.go b/Algorithms/0553.optimal-division/optimal-division_test.go deleted file mode 100755 index 726bd6294..000000000 --- a/Algorithms/0553.optimal-division/optimal-division_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0553 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0553(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0554.brick-wall/README.md b/Algorithms/0554.brick-wall/README.md deleted file mode 100755 index f86e8ac4a..000000000 --- a/Algorithms/0554.brick-wall/README.md +++ /dev/null @@ -1,42 +0,0 @@ -# [554. Brick Wall](https://leetcode.com/problems/brick-wall/) - -## 题目 - - There is a brick wall in front of you. The wall is rectangular and has several rows of bricks. The bricks have the same height but different width. You want to draw a vertical line from the top to the bottom and cross the least bricks. - - -The brick wall is represented by a list of rows. Each row is a list of integers representing the width of each brick in this row from left to right. - - -If your line go through the edge of a brick, then the brick is not considered as crossed. You need to find out how to draw the line to cross the least bricks and return the number of crossed bricks. - -You cannot draw a line just along one of the two vertical edges of the wall, in which case the line will obviously cross no bricks. - -Example: -Input: -[[1,2,2,1], - [3,1,2], - [1,3,2], - [2,4], - [3,1,2], - [1,3,1,1]] -Output: 2 -Explanation: - - - - -Note: - -The width sum of bricks in different rows are the same and won't exceed INT_MAX. -The number of bricks in each row is in range [1,10,000]. The height of wall is in range [1,10,000]. Total number of bricks of the wall won't exceed 20,000. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0554.brick-wall/brick-wall.go b/Algorithms/0554.brick-wall/brick-wall.go deleted file mode 100755 index a0dde9329..000000000 --- a/Algorithms/0554.brick-wall/brick-wall.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0554 - diff --git a/Algorithms/0554.brick-wall/brick-wall_test.go b/Algorithms/0554.brick-wall/brick-wall_test.go deleted file mode 100755 index bc3ffb97b..000000000 --- a/Algorithms/0554.brick-wall/brick-wall_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0554 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0554(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0556.next-greater-element-iii/README.md b/Algorithms/0556.next-greater-element-iii/README.md deleted file mode 100755 index 89834420c..000000000 --- a/Algorithms/0556.next-greater-element-iii/README.md +++ /dev/null @@ -1,26 +0,0 @@ -# [556. Next Greater Element III](https://leetcode.com/problems/next-greater-element-iii/) - -## 题目 - - -Given a positive 32-bit integer n, you need to find the smallest 32-bit integer which has exactly the same digits existing in the integer n and is greater in value than n. If no such positive 32-bit integer exists, you need to return -1. - -Example 1: -Input: 12 -Output: 21 - - - -Example 2: -Input: 21 -Output: -1 - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0556.next-greater-element-iii/next-greater-element-iii.go b/Algorithms/0556.next-greater-element-iii/next-greater-element-iii.go deleted file mode 100755 index 784b4bb1f..000000000 --- a/Algorithms/0556.next-greater-element-iii/next-greater-element-iii.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0556 - diff --git a/Algorithms/0556.next-greater-element-iii/next-greater-element-iii_test.go b/Algorithms/0556.next-greater-element-iii/next-greater-element-iii_test.go deleted file mode 100755 index c14e1e770..000000000 --- a/Algorithms/0556.next-greater-element-iii/next-greater-element-iii_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0556 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0556(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0557.reverse-words-in-a-string-iii/README.md b/Algorithms/0557.reverse-words-in-a-string-iii/README.md deleted file mode 100755 index 12f9658c0..000000000 --- a/Algorithms/0557.reverse-words-in-a-string-iii/README.md +++ /dev/null @@ -1,23 +0,0 @@ -# [557. Reverse Words in a String III](https://leetcode.com/problems/reverse-words-in-a-string-iii/) - -## 题目 - - Given a string, you need to reverse the order of characters in each word within a sentence while still preserving whitespace and initial word order. - -Example 1: -Input: "Let's take LeetCode contest" -Output: "s'teL ekat edoCteeL tsetnoc" - - - -Note: -In the string, each word is separated by single space and there will not be any extra space in the string. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0557.reverse-words-in-a-string-iii/reverse-words-in-a-string-iii.go b/Algorithms/0557.reverse-words-in-a-string-iii/reverse-words-in-a-string-iii.go deleted file mode 100755 index 1adb0da9c..000000000 --- a/Algorithms/0557.reverse-words-in-a-string-iii/reverse-words-in-a-string-iii.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0557 - diff --git a/Algorithms/0557.reverse-words-in-a-string-iii/reverse-words-in-a-string-iii_test.go b/Algorithms/0557.reverse-words-in-a-string-iii/reverse-words-in-a-string-iii_test.go deleted file mode 100755 index 491f3cb23..000000000 --- a/Algorithms/0557.reverse-words-in-a-string-iii/reverse-words-in-a-string-iii_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0557 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0557(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0560.subarray-sum-equals-k/README.md b/Algorithms/0560.subarray-sum-equals-k/README.md deleted file mode 100755 index 91054c9e8..000000000 --- a/Algorithms/0560.subarray-sum-equals-k/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# [560. Subarray Sum Equals K](https://leetcode.com/problems/subarray-sum-equals-k/) - -## 题目 - - Given an array of integers and an integer k, you need to find the total number of continuous subarrays whose sum equals to k. - -Example 1: -Input:nums = [1,1,1], k = 2 -Output: 2 - - - -Note: - -The length of the array is in range [1, 20,000]. -The range of numbers in the array is [-1000, 1000] and the range of the integer k is [-1e7, 1e7]. - - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0560.subarray-sum-equals-k/subarray-sum-equals-k.go b/Algorithms/0560.subarray-sum-equals-k/subarray-sum-equals-k.go deleted file mode 100755 index 3bfa2ecbd..000000000 --- a/Algorithms/0560.subarray-sum-equals-k/subarray-sum-equals-k.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0560 - diff --git a/Algorithms/0560.subarray-sum-equals-k/subarray-sum-equals-k_test.go b/Algorithms/0560.subarray-sum-equals-k/subarray-sum-equals-k_test.go deleted file mode 100755 index 212a42e60..000000000 --- a/Algorithms/0560.subarray-sum-equals-k/subarray-sum-equals-k_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0560 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0560(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0563.binary-tree-tilt/README.md b/Algorithms/0563.binary-tree-tilt/README.md deleted file mode 100755 index 2d3e164cf..000000000 --- a/Algorithms/0563.binary-tree-tilt/README.md +++ /dev/null @@ -1,38 +0,0 @@ -# [563. Binary Tree Tilt](https://leetcode.com/problems/binary-tree-tilt/) - -## 题目 - - Given a binary tree, return the tilt of the whole tree. - -The tilt of a tree node is defined as the absolute difference between the sum of all left subtree node values and the sum of all right subtree node values. Null node has tilt 0. - -The tilt of the whole tree is defined as the sum of all nodes' tilt. - -Example: -Input: - 1 - / \ - 2 3 -Output: 1 -Explanation: -Tilt of node 2 : 0 -Tilt of node 3 : 0 -Tilt of node 1 : |2-3| = 1 -Tilt of binary tree : 0 + 0 + 1 = 1 - - - -Note: - -The sum of node values in any subtree won't exceed the range of 32-bit integer. -All the tilt values won't exceed the range of 32-bit integer. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0563.binary-tree-tilt/binary-tree-tilt.go b/Algorithms/0563.binary-tree-tilt/binary-tree-tilt.go deleted file mode 100755 index 6cd8f2721..000000000 --- a/Algorithms/0563.binary-tree-tilt/binary-tree-tilt.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0563 - diff --git a/Algorithms/0563.binary-tree-tilt/binary-tree-tilt_test.go b/Algorithms/0563.binary-tree-tilt/binary-tree-tilt_test.go deleted file mode 100755 index 3c8bea169..000000000 --- a/Algorithms/0563.binary-tree-tilt/binary-tree-tilt_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0563 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0563(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0564.find-the-closest-palindrome/README.md b/Algorithms/0564.find-the-closest-palindrome/README.md deleted file mode 100755 index c902075fa..000000000 --- a/Algorithms/0564.find-the-closest-palindrome/README.md +++ /dev/null @@ -1,28 +0,0 @@ -# [564. Find the Closest Palindrome](https://leetcode.com/problems/find-the-closest-palindrome/) - -## 题目 - - Given an integer n, find the closest integer (not including itself), which is a palindrome. - -The 'closest' is defined as absolute difference minimized between two integers. - -Example 1: -Input: "123" -Output: "121" - - - -Note: - -The input n is a positive integer represented by string, whose length will not exceed 18. -If there is a tie, return the smaller one as answer. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0564.find-the-closest-palindrome/find-the-closest-palindrome.go b/Algorithms/0564.find-the-closest-palindrome/find-the-closest-palindrome.go deleted file mode 100755 index e29bb1fe3..000000000 --- a/Algorithms/0564.find-the-closest-palindrome/find-the-closest-palindrome.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0564 - diff --git a/Algorithms/0564.find-the-closest-palindrome/find-the-closest-palindrome_test.go b/Algorithms/0564.find-the-closest-palindrome/find-the-closest-palindrome_test.go deleted file mode 100755 index da74eebca..000000000 --- a/Algorithms/0564.find-the-closest-palindrome/find-the-closest-palindrome_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0564 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0564(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0565.array-nesting/README.md b/Algorithms/0565.array-nesting/README.md deleted file mode 100755 index c72c5cff1..000000000 --- a/Algorithms/0565.array-nesting/README.md +++ /dev/null @@ -1,43 +0,0 @@ -# [565. Array Nesting](https://leetcode.com/problems/array-nesting/) - -## 题目 - - A zero-indexed array A consisting of N different integers is given. The array contains all integers in the range [0, N - 1]. - -Sets S[K] for 0 <= K < N are defined as follows: - -S[K] = { A[K], A[A[K]], A[A[A[K]]], ... }. - -Sets S[K] are finite for each K and should NOT contain duplicates. - - -Write a function that given an array A consisting of N integers, return the size of the largest set S[K] for this array. - - -Example 1: -Input: A = [5,4,0,3,1,6,2] -Output: 4 -Explanation: -A[0] = 5, A[1] = 4, A[2] = 0, A[3] = 3, A[4] = 1, A[5] = 6, A[6] = 2. -One of the longest S[K]: -S[0] = {A[0], A[5], A[6], A[2]} = {5, 6, 2, 0} - - - -Note: - -N is an integer within the range [1, 20,000]. -The elements of A are all distinct. -Each element of array A is an integer within the range [0, N-1]. - - - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0565.array-nesting/array-nesting.go b/Algorithms/0565.array-nesting/array-nesting.go deleted file mode 100755 index 7f25d1960..000000000 --- a/Algorithms/0565.array-nesting/array-nesting.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0565 - diff --git a/Algorithms/0565.array-nesting/array-nesting_test.go b/Algorithms/0565.array-nesting/array-nesting_test.go deleted file mode 100755 index 0d1523d69..000000000 --- a/Algorithms/0565.array-nesting/array-nesting_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0565 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0565(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0567.permutation-in-string/README.md b/Algorithms/0567.permutation-in-string/README.md deleted file mode 100755 index bc7f6b590..000000000 --- a/Algorithms/0567.permutation-in-string/README.md +++ /dev/null @@ -1,33 +0,0 @@ -# [567. Permutation in String](https://leetcode.com/problems/permutation-in-string/) - -## 题目 - - Given two strings s1 and s2, write a function to return true if s2 contains the permutation of s1. In other words, one of the first string's permutations is the substring of the second string. - -Example 1: -Input:s1 = "ab" s2 = "eidbaooo" -Output:True -Explanation: s2 contains one permutation of s1 ("ba"). - - - -Example 2: -Input:s1= "ab" s2 = "eidboaoo" -Output: False - - - -Note: - -The input strings only contain lower case letters. -The length of both given strings is in range [1, 10,000]. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0567.permutation-in-string/permutation-in-string.go b/Algorithms/0567.permutation-in-string/permutation-in-string.go deleted file mode 100755 index 766e8b740..000000000 --- a/Algorithms/0567.permutation-in-string/permutation-in-string.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0567 - diff --git a/Algorithms/0567.permutation-in-string/permutation-in-string_test.go b/Algorithms/0567.permutation-in-string/permutation-in-string_test.go deleted file mode 100755 index b39a6a84b..000000000 --- a/Algorithms/0567.permutation-in-string/permutation-in-string_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0567 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0567(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0572.subtree-of-another-tree/README.md b/Algorithms/0572.subtree-of-another-tree/README.md deleted file mode 100755 index 5d8289098..000000000 --- a/Algorithms/0572.subtree-of-another-tree/README.md +++ /dev/null @@ -1,51 +0,0 @@ -# [572. Subtree of Another Tree](https://leetcode.com/problems/subtree-of-another-tree/) - -## 题目 - - -Given two non-empty binary trees s and t, check whether tree t has exactly the same structure and node values with a subtree of s. A subtree of s is a tree consists of a node in s and all of this node's descendants. The tree s could also be considered as a subtree of itself. - - -Example 1: - -Given tree s: - 3 - / \ - 4 5 - / \ - 1 2 - -Given tree t: - 4 - / \ - 1 2 - -Return true, because t has the same structure and node values with a subtree of s. - - -Example 2: - -Given tree s: - 3 - / \ - 4 5 - / \ - 1 2 - / - 0 - -Given tree t: - 4 - / \ - 1 2 - -Return false. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0572.subtree-of-another-tree/subtree-of-another-tree.go b/Algorithms/0572.subtree-of-another-tree/subtree-of-another-tree.go deleted file mode 100755 index 8c388e04d..000000000 --- a/Algorithms/0572.subtree-of-another-tree/subtree-of-another-tree.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0572 - diff --git a/Algorithms/0572.subtree-of-another-tree/subtree-of-another-tree_test.go b/Algorithms/0572.subtree-of-another-tree/subtree-of-another-tree_test.go deleted file mode 100755 index 7c96f1c2d..000000000 --- a/Algorithms/0572.subtree-of-another-tree/subtree-of-another-tree_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0572 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0572(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0575.distribute-candies/README.md b/Algorithms/0575.distribute-candies/README.md deleted file mode 100755 index 9af1bdcdb..000000000 --- a/Algorithms/0575.distribute-candies/README.md +++ /dev/null @@ -1,38 +0,0 @@ -# [575. Distribute Candies](https://leetcode.com/problems/distribute-candies/) - -## 题目 - - Given an integer array with even length, where different numbers in this array represent different kinds of candies. Each number means one candy of the corresponding kind. You need to distribute these candies equally in number to brother and sister. Return the maximum number of kinds of candies the sister could gain. - -Example 1: -Input: candies = [1,1,2,2,3,3] -Output: 3 -Explanation: -There are three different kinds of candies (1, 2 and 3), and two candies for each kind. -Optimal distribution: The sister has candies [1,2,3] and the brother has candies [1,2,3], too. -The sister has three different kinds of candies. - - - -Example 2: -Input: candies = [1,1,2,3] -Output: 2 -Explanation: For example, the sister has candies [2,3] and the brother has candies [1,1]. -The sister has two different kinds of candies, the brother has only one kind of candies. - - - -Note: - -The length of the given array is in range [2, 10,000], and will be even. -The number in given array is in range [-100,000, 100,000]. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0575.distribute-candies/distribute-candies.go b/Algorithms/0575.distribute-candies/distribute-candies.go deleted file mode 100755 index d9c2904e3..000000000 --- a/Algorithms/0575.distribute-candies/distribute-candies.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0575 - diff --git a/Algorithms/0575.distribute-candies/distribute-candies_test.go b/Algorithms/0575.distribute-candies/distribute-candies_test.go deleted file mode 100755 index 39c788572..000000000 --- a/Algorithms/0575.distribute-candies/distribute-candies_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0575 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0575(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0576.out-of-boundary-paths/README.md b/Algorithms/0576.out-of-boundary-paths/README.md deleted file mode 100755 index 44d711ba0..000000000 --- a/Algorithms/0576.out-of-boundary-paths/README.md +++ /dev/null @@ -1,37 +0,0 @@ -# [576. Out of Boundary Paths](https://leetcode.com/problems/out-of-boundary-paths/) - -## 题目 - - There is an m by n grid with a ball. Given the start coordinate (i,j) of the ball, you can move the ball to adjacent cell or cross the grid boundary in four directions (up, down, left, right). However, you can at most move N times. Find out the number of paths to move the ball out of grid boundary. The answer may be very large, return it after mod 109 + 7. - -Example 1: -Input:m = 2, n = 2, N = 2, i = 0, j = 0 -Output: 6 -Explanation: - - - - -Example 2: -Input:m = 1, n = 3, N = 3, i = 0, j = 1 -Output: 12 -Explanation: - - - - -Note: - -Once you move the ball out of boundary, you cannot move it back. -The length and height of the grid is in range [1,50]. -N is in range [0,50]. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0576.out-of-boundary-paths/out-of-boundary-paths.go b/Algorithms/0576.out-of-boundary-paths/out-of-boundary-paths.go deleted file mode 100755 index 793c62bf2..000000000 --- a/Algorithms/0576.out-of-boundary-paths/out-of-boundary-paths.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0576 - diff --git a/Algorithms/0576.out-of-boundary-paths/out-of-boundary-paths_test.go b/Algorithms/0576.out-of-boundary-paths/out-of-boundary-paths_test.go deleted file mode 100755 index aecfc17ba..000000000 --- a/Algorithms/0576.out-of-boundary-paths/out-of-boundary-paths_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0576 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0576(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0583.delete-operation-for-two-strings/README.md b/Algorithms/0583.delete-operation-for-two-strings/README.md deleted file mode 100755 index cf5d268cb..000000000 --- a/Algorithms/0583.delete-operation-for-two-strings/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# [583. Delete Operation for Two Strings](https://leetcode.com/problems/delete-operation-for-two-strings/) - -## 题目 - - -Given two words word1 and word2, find the minimum number of steps required to make word1 and word2 the same, where in each step you can delete one character in either string. - - -Example 1: -Input: "sea", "eat" -Output: 2 -Explanation: You need one step to make "sea" to "ea" and another step to make "eat" to "ea". - - - -Note: - -The length of given words won't exceed 500. -Characters in given words can only be lower-case letters. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0583.delete-operation-for-two-strings/delete-operation-for-two-strings.go b/Algorithms/0583.delete-operation-for-two-strings/delete-operation-for-two-strings.go deleted file mode 100755 index a6ee8d87d..000000000 --- a/Algorithms/0583.delete-operation-for-two-strings/delete-operation-for-two-strings.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0583 - diff --git a/Algorithms/0583.delete-operation-for-two-strings/delete-operation-for-two-strings_test.go b/Algorithms/0583.delete-operation-for-two-strings/delete-operation-for-two-strings_test.go deleted file mode 100755 index 68727a678..000000000 --- a/Algorithms/0583.delete-operation-for-two-strings/delete-operation-for-two-strings_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0583 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0583(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0587.erect-the-fence/README.md b/Algorithms/0587.erect-the-fence/README.md deleted file mode 100755 index f6ec30db0..000000000 --- a/Algorithms/0587.erect-the-fence/README.md +++ /dev/null @@ -1,40 +0,0 @@ -# [587. Erect the Fence](https://leetcode.com/problems/erect-the-fence/) - -## 题目 - - There are some trees, where each tree is represented by (x,y) coordinate in a two-dimensional garden. Your job is to fence the entire garden using the minimum length of rope as it is expensive. The garden is well fenced only if all the trees are enclosed. Your task is to help find the coordinates of trees which are exactly located on the fence perimeter. - -Example 1: -Input: [[1,1],[2,2],[2,0],[2,4],[3,3],[4,2]] -Output: [[1,1],[2,0],[4,2],[3,3],[2,4]] -Explanation: - - - - -Example 2: -Input: [[1,2],[2,2],[4,2]] -Output: [[1,2],[2,2],[4,2]] -Explanation: - -Even you only have trees in a line, you need to use rope to enclose them. - - - - Note: - -All trees should be enclosed together. You cannot cut the rope to enclose trees that will separate them in more than one group. -All input integers will range from 0 to 100. -The garden has at least one tree. -All coordinates are distinct. -Input points have NO order. No order required for output. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0587.erect-the-fence/erect-the-fence.go b/Algorithms/0587.erect-the-fence/erect-the-fence.go deleted file mode 100755 index 6f24172e2..000000000 --- a/Algorithms/0587.erect-the-fence/erect-the-fence.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0587 - diff --git a/Algorithms/0587.erect-the-fence/erect-the-fence_test.go b/Algorithms/0587.erect-the-fence/erect-the-fence_test.go deleted file mode 100755 index 10909f410..000000000 --- a/Algorithms/0587.erect-the-fence/erect-the-fence_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0587 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0587(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0591.tag-validator/README.md b/Algorithms/0591.tag-validator/README.md deleted file mode 100755 index 1cbfe684b..000000000 --- a/Algorithms/0591.tag-validator/README.md +++ /dev/null @@ -1,76 +0,0 @@ -# [591. Tag Validator](https://leetcode.com/problems/tag-validator/) - -## 题目 - - Given a string representing a code snippet, you need to implement a tag validator to parse the code and return whether it is valid. A code snippet is valid if all the following rules hold: - -The code must be wrapped in a valid closed tag. Otherwise, the code is invalid. -A closed tag (not necessarily valid) has exactly the following format : TAG_CONTENT. Among them, is the start tag, and is the end tag. The TAG_NAME in start and end tags should be the same. A closed tag is valid if and only if the TAG_NAME and TAG_CONTENT are valid. -A valid TAG_NAME only contain upper-case letters, and has length in range [1,9]. Otherwise, the TAG_NAME is invalid. -A valid TAG_CONTENT may contain other valid closed tags, cdata and any characters (see note1) EXCEPT unmatched <, unmatched start and end tag, and unmatched or closed tags with invalid TAG_NAME. Otherwise, the TAG_CONTENT is invalid. -A start tag is unmatched if no end tag exists with the same TAG_NAME, and vice versa. However, you also need to consider the issue of unbalanced when tags are nested. -A < is unmatched if you cannot find a subsequent >. And when you find a < or should be parsed as TAG_NAME (not necessarily valid). -The cdata has the following format : . The range of CDATA_CONTENT is defined as the characters between . -CDATA_CONTENT may contain any characters. The function of cdata is to forbid the validator to parse CDATA_CONTENT, so even it has some characters that can be parsed as tag (no matter valid or invalid), you should treat it as regular characters. - - -Valid Code Examples: -Input: "
This is the first line ]]>
" -Output: True -Explanation: -The code is wrapped in a closed tag :
and
. -The TAG_NAME is valid, the TAG_CONTENT consists of some characters and cdata. -Although CDATA_CONTENT has unmatched start tag with invalid TAG_NAME, it should be considered as plain text, not parsed as tag. -So TAG_CONTENT is valid, and then the code is valid. Thus return true. - -Input: "
>> ![cdata[]] ]>]]>]]>>]
" -Output: True -Explanation: -We first separate the code into : start_tag|tag_content|end_tag. -start_tag -> "
" -end_tag -> "
" -tag_content could also be separated into : text1|cdata|text2. -text1 -> ">> ![cdata[]] " -cdata -> "]>]]>", where the CDATA_CONTENT is "
]>" -text2 -> "]]>>]" - -The reason why start_tag is NOT "
>>" is because of the rule 6. -The reason why cdata is NOT "]>]]>]]>" is because of the rule 7. - - - -Invalid Code Examples: -Input: " " -Output: False -Explanation: Unbalanced. If "" is closed, then "" must be unmatched, and vice versa. - -Input: "
div tag is not closed
" -Output: False - -Input: "
unmatched <
" -Output: False - -Input: "
closed tags with invalid tag name 123
" -Output: False - -Input: "
unmatched tags with invalid tag name and
" -Output: False - -Input: "
unmatched start tag and unmatched end tag
" -Output: False - - - -Note: - -For simplicity, you could assume the input code (including the any characters mentioned above) only contain letters, digits, '<','>','/','!','[',']' and ' '. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0591.tag-validator/tag-validator.go b/Algorithms/0591.tag-validator/tag-validator.go deleted file mode 100755 index 3a27ea973..000000000 --- a/Algorithms/0591.tag-validator/tag-validator.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0591 - diff --git a/Algorithms/0591.tag-validator/tag-validator_test.go b/Algorithms/0591.tag-validator/tag-validator_test.go deleted file mode 100755 index 1bbddc4eb..000000000 --- a/Algorithms/0591.tag-validator/tag-validator_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0591 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0591(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0592.fraction-addition-and-subtraction/README.md b/Algorithms/0592.fraction-addition-and-subtraction/README.md deleted file mode 100755 index 8280c56a9..000000000 --- a/Algorithms/0592.fraction-addition-and-subtraction/README.md +++ /dev/null @@ -1,47 +0,0 @@ -# [592. Fraction Addition and Subtraction](https://leetcode.com/problems/fraction-addition-and-subtraction/) - -## 题目 - - Given a string representing an expression of fraction addition and subtraction, you need to return the calculation result in string format. The final result should be irreducible fraction. If your final result is an integer, say 2, you need to change it to the format of fraction that has denominator 1. So in this case, 2 should be converted to 2/1. - -Example 1: -Input:"-1/2+1/2" -Output: "0/1" - - - -Example 2: -Input:"-1/2+1/2+1/3" -Output: "1/3" - - - -Example 3: -Input:"1/3-1/2" -Output: "-1/6" - - - -Example 4: -Input:"5/3+1/3" -Output: "2/1" - - - -Note: - -The input string only contains '0' to '9', '/', '+' and '-'. So does the output. -Each fraction (input and output) has format ±numerator/denominator. If the first input fraction or the output is positive, then '+' will be omitted. -The input only contains valid irreducible fractions, where the numerator and denominator of each fraction will always be in the range [1,10]. If the denominator is 1, it means this fraction is actually an integer in a fraction format defined above. -The number of given fractions will be in the range [1,10]. -The numerator and denominator of the final result are guaranteed to be valid and in the range of 32-bit int. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0592.fraction-addition-and-subtraction/fraction-addition-and-subtraction.go b/Algorithms/0592.fraction-addition-and-subtraction/fraction-addition-and-subtraction.go deleted file mode 100755 index 0b162a68b..000000000 --- a/Algorithms/0592.fraction-addition-and-subtraction/fraction-addition-and-subtraction.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0592 - diff --git a/Algorithms/0592.fraction-addition-and-subtraction/fraction-addition-and-subtraction_test.go b/Algorithms/0592.fraction-addition-and-subtraction/fraction-addition-and-subtraction_test.go deleted file mode 100755 index 1e8bed2ae..000000000 --- a/Algorithms/0592.fraction-addition-and-subtraction/fraction-addition-and-subtraction_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0592 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0592(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0593.valid-square/README.md b/Algorithms/0593.valid-square/README.md deleted file mode 100755 index 497990649..000000000 --- a/Algorithms/0593.valid-square/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# [593. Valid Square](https://leetcode.com/problems/valid-square/) - -## 题目 - - Given the coordinates of four points in 2D space, return whether the four points could construct a square. - -The coordinate (x,y) of a point is represented by an integer array with two integers. - -Example: -Input: p1 = [0,0], p2 = [1,1], p3 = [1,0], p4 = [0,1] -Output: True - - - - Note: - -All the input integers are in the range [-10000, 10000]. -A valid square has four equal sides with positive length and four equal angles (90-degree angles). -Input points have no order. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0593.valid-square/valid-square.go b/Algorithms/0593.valid-square/valid-square.go deleted file mode 100755 index 0321ff8ff..000000000 --- a/Algorithms/0593.valid-square/valid-square.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0593 - diff --git a/Algorithms/0593.valid-square/valid-square_test.go b/Algorithms/0593.valid-square/valid-square_test.go deleted file mode 100755 index 8bec5d8fa..000000000 --- a/Algorithms/0593.valid-square/valid-square_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0593 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0593(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0594.longest-harmonious-subsequence/README.md b/Algorithms/0594.longest-harmonious-subsequence/README.md deleted file mode 100755 index f092f3616..000000000 --- a/Algorithms/0594.longest-harmonious-subsequence/README.md +++ /dev/null @@ -1,28 +0,0 @@ -# [594. Longest Harmonious Subsequence](https://leetcode.com/problems/longest-harmonious-subsequence/) - -## 题目 - - We define a harmonious array is an array where the difference between its maximum value and its minimum value is exactly 1. - -Now, given an integer array, you need to find the length of its longest harmonious subsequence among all its possible subsequences. - -Example 1: -Input: [1,3,2,2,5,2,3,7] -Output: 5 -Explanation: The longest harmonious subsequence is [3,2,2,2,3]. - - - -Note: -The length of the input array will not exceed 20,000. - - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0594.longest-harmonious-subsequence/longest-harmonious-subsequence.go b/Algorithms/0594.longest-harmonious-subsequence/longest-harmonious-subsequence.go deleted file mode 100755 index 9b06b3826..000000000 --- a/Algorithms/0594.longest-harmonious-subsequence/longest-harmonious-subsequence.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0594 - diff --git a/Algorithms/0594.longest-harmonious-subsequence/longest-harmonious-subsequence_test.go b/Algorithms/0594.longest-harmonious-subsequence/longest-harmonious-subsequence_test.go deleted file mode 100755 index aa760ee07..000000000 --- a/Algorithms/0594.longest-harmonious-subsequence/longest-harmonious-subsequence_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0594 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0594(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0598.range-addition-ii/README.md b/Algorithms/0598.range-addition-ii/README.md deleted file mode 100755 index 883e6c83f..000000000 --- a/Algorithms/0598.range-addition-ii/README.md +++ /dev/null @@ -1,48 +0,0 @@ -# [598. Range Addition II](https://leetcode.com/problems/range-addition-ii/) - -## 题目 - - Given an m * n matrix M initialized with all 0's and several update operations. -Operations are represented by a 2D array, and each operation is represented by an array with two positive integers a and b, which means M[i][j] should be added by one for all 0 <= i < a and 0 <= j < b. -You need to count and return the number of maximum integers in the matrix after performing all the operations. - -Example 1: -Input: -m = 3, n = 3 -operations = [[2,2],[3,3]] -Output: 4 -Explanation: -Initially, M = -[[0, 0, 0], - [0, 0, 0], - [0, 0, 0]] - -After performing [2,2], M = -[[1, 1, 0], - [1, 1, 0], - [0, 0, 0]] - -After performing [3,3], M = -[[2, 2, 1], - [2, 2, 1], - [1, 1, 1]] - -So the maximum integer in M is 2, and there are four of it in M. So return 4. - - - -Note: - -The range of m and n is [1,40000]. -The range of a is [1,m], and the range of b is [1,n]. -The range of operations size won't exceed 10,000. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0598.range-addition-ii/range-addition-ii.go b/Algorithms/0598.range-addition-ii/range-addition-ii.go deleted file mode 100755 index e76306470..000000000 --- a/Algorithms/0598.range-addition-ii/range-addition-ii.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0598 - diff --git a/Algorithms/0598.range-addition-ii/range-addition-ii_test.go b/Algorithms/0598.range-addition-ii/range-addition-ii_test.go deleted file mode 100755 index d04803c79..000000000 --- a/Algorithms/0598.range-addition-ii/range-addition-ii_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0598 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0598(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0599.minimum-index-sum-of-two-lists/README.md b/Algorithms/0599.minimum-index-sum-of-two-lists/README.md deleted file mode 100755 index 12a9dbcf7..000000000 --- a/Algorithms/0599.minimum-index-sum-of-two-lists/README.md +++ /dev/null @@ -1,47 +0,0 @@ -# [599. Minimum Index Sum of Two Lists](https://leetcode.com/problems/minimum-index-sum-of-two-lists/) - -## 题目 - - -Suppose Andy and Doris want to choose a restaurant for dinner, and they both have a list of favorite restaurants represented by strings. - - -You need to help them find out their common interest with the least list index sum. If there is a choice tie between answers, output all of them with no order requirement. You could assume there always exists an answer. - - - -Example 1: -Input: -["Shogun", "Tapioca Express", "Burger King", "KFC"] -["Piatti", "The Grill at Torrey Pines", "Hungry Hunter Steakhouse", "Shogun"] -Output: ["Shogun"] -Explanation: The only restaurant they both like is "Shogun". - - - -Example 2: -Input: -["Shogun", "Tapioca Express", "Burger King", "KFC"] -["KFC", "Shogun", "Burger King"] -Output: ["Shogun"] -Explanation: The restaurant they both like and have the least index sum is "Shogun" with index sum 1 (0+1). - - - - -Note: - -The length of both lists will be in the range of [1, 1000]. -The length of strings in both lists will be in the range of [1, 30]. -The index is starting from 0 to the list length minus 1. -No duplicates in both lists. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0599.minimum-index-sum-of-two-lists/minimum-index-sum-of-two-lists.go b/Algorithms/0599.minimum-index-sum-of-two-lists/minimum-index-sum-of-two-lists.go deleted file mode 100755 index 8ec3950ba..000000000 --- a/Algorithms/0599.minimum-index-sum-of-two-lists/minimum-index-sum-of-two-lists.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0599 - diff --git a/Algorithms/0599.minimum-index-sum-of-two-lists/minimum-index-sum-of-two-lists_test.go b/Algorithms/0599.minimum-index-sum-of-two-lists/minimum-index-sum-of-two-lists_test.go deleted file mode 100755 index d243ef26d..000000000 --- a/Algorithms/0599.minimum-index-sum-of-two-lists/minimum-index-sum-of-two-lists_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0599 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0599(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0600.non-negative-integers-without-consecutive-ones/README.md b/Algorithms/0600.non-negative-integers-without-consecutive-ones/README.md deleted file mode 100755 index 8eb5d2923..000000000 --- a/Algorithms/0600.non-negative-integers-without-consecutive-ones/README.md +++ /dev/null @@ -1,33 +0,0 @@ -# [600. Non-negative Integers without Consecutive Ones](https://leetcode.com/problems/non-negative-integers-without-consecutive-ones/) - -## 题目 - - Given a positive integer n, find the number of non-negative integers less than or equal to n, whose binary representations do NOT contain consecutive ones. - -Example 1: -Input: 5 -Output: 5 -Explanation: -Here are the non-negative integers <= 5 with their corresponding binary representations: -0 : 0 -1 : 1 -2 : 10 -3 : 11 -4 : 100 -5 : 101 -Among them, only integer 3 disobeys the rule (two consecutive ones) and the other 5 satisfy the rule. - - - -Note: -1 <= n <= 109 - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0600.non-negative-integers-without-consecutive-ones/non-negative-integers-without-consecutive-ones.go b/Algorithms/0600.non-negative-integers-without-consecutive-ones/non-negative-integers-without-consecutive-ones.go deleted file mode 100755 index 286c6072f..000000000 --- a/Algorithms/0600.non-negative-integers-without-consecutive-ones/non-negative-integers-without-consecutive-ones.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0600 - diff --git a/Algorithms/0600.non-negative-integers-without-consecutive-ones/non-negative-integers-without-consecutive-ones_test.go b/Algorithms/0600.non-negative-integers-without-consecutive-ones/non-negative-integers-without-consecutive-ones_test.go deleted file mode 100755 index aed975532..000000000 --- a/Algorithms/0600.non-negative-integers-without-consecutive-ones/non-negative-integers-without-consecutive-ones_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0600 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0600(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0606.construct-string-from-binary-tree/README.md b/Algorithms/0606.construct-string-from-binary-tree/README.md deleted file mode 100755 index 81116dd51..000000000 --- a/Algorithms/0606.construct-string-from-binary-tree/README.md +++ /dev/null @@ -1,41 +0,0 @@ -# [606. Construct String from Binary Tree](https://leetcode.com/problems/construct-string-from-binary-tree/) - -## 题目 - - You need to construct a string consists of parenthesis and integers from a binary tree with the preorder traversing way. - -The null node needs to be represented by empty parenthesis pair "()". And you need to omit all the empty parenthesis pairs that don't affect the one-to-one mapping relationship between the string and the original binary tree. - -Example 1: -Input: Binary tree: [1,2,3,4] - 1 - / \ - 2 3 - / - 4 - -Output: "1(2(4))(3)" -Explanation: Originallay it needs to be "1(2(4)())(3()())", but you need to omit all the unnecessary empty parenthesis pairs. And it will be "1(2(4))(3)". - - - -Example 2: -Input: Binary tree: [1,2,3,null,4] - 1 - / \ - 2 3 - \ - 4 - -Output: "1(2()(4))(3)" -Explanation: Almost the same as the first example, except we can't omit the first parenthesis pair to break the one-to-one mapping relationship between the input and the output. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0606.construct-string-from-binary-tree/construct-string-from-binary-tree.go b/Algorithms/0606.construct-string-from-binary-tree/construct-string-from-binary-tree.go deleted file mode 100755 index 173733375..000000000 --- a/Algorithms/0606.construct-string-from-binary-tree/construct-string-from-binary-tree.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0606 - diff --git a/Algorithms/0606.construct-string-from-binary-tree/construct-string-from-binary-tree_test.go b/Algorithms/0606.construct-string-from-binary-tree/construct-string-from-binary-tree_test.go deleted file mode 100755 index f2c0246e0..000000000 --- a/Algorithms/0606.construct-string-from-binary-tree/construct-string-from-binary-tree_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0606 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0606(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0609.find-duplicate-file-in-system/README.md b/Algorithms/0609.find-duplicate-file-in-system/README.md deleted file mode 100755 index 1110480f4..000000000 --- a/Algorithms/0609.find-duplicate-file-in-system/README.md +++ /dev/null @@ -1,52 +0,0 @@ -# [609. Find Duplicate File in System](https://leetcode.com/problems/find-duplicate-file-in-system/) - -## 题目 - - Given a list of directory info including directory path, and all the files with contents in this directory, you need to find out all the groups of duplicate files in the file system in terms of their paths. - -A group of duplicate files consists of at least two files that have exactly the same content. - -A single directory info string in the input list has the following format: -"root/d1/d2/.../dm f1.txt(f1_content) f2.txt(f2_content) ... fn.txt(fn_content)" -It means there are n files (f1.txt, f2.txt ... fn.txt with content f1_content, f2_content ... fn_content, respectively) in directory root/d1/d2/.../dm. Note that n >= 1 and m >= 0. If m = 0, it means the directory is just the root directory. - -The output is a list of group of duplicate file paths. For each group, it contains all the file paths of the files that have the same content. A file path is a string that has the following format: -"directory_path/file_name.txt" - - -Example 1: -Input: -["root/a 1.txt(abcd) 2.txt(efgh)", "root/c 3.txt(abcd)", "root/c/d 4.txt(efgh)", "root 4.txt(efgh)"] -Output: -[["root/a/2.txt","root/c/d/4.txt","root/4.txt"],["root/a/1.txt","root/c/3.txt"]] - - - - -Note: - -No order is required for the final output. -You may assume the directory name, file name and file content only has letters and digits, and the length of file content is in the range of [1,50]. -The number of files given is in the range of [1,20000]. -You may assume no files or directories share the same name in the same directory. -You may assume each given directory info represents a unique directory. Directory path and file info are separated by a single blank space. - - - - -Follow-up beyond contest: - - Imagine you are given a real file system, how will you search files? DFS or BFS? - If the file content is very large (GB level), how will you modify your solution? - If you can only read the file by 1kb each time, how will you modify your solution? - What is the time complexity of your modified solution? What is the most time-consuming part and memory consuming part of it? How to optimize? - How to make sure the duplicated files you find are not false positive? - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0609.find-duplicate-file-in-system/find-duplicate-file-in-system.go b/Algorithms/0609.find-duplicate-file-in-system/find-duplicate-file-in-system.go deleted file mode 100755 index 5fb7faccb..000000000 --- a/Algorithms/0609.find-duplicate-file-in-system/find-duplicate-file-in-system.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0609 - diff --git a/Algorithms/0609.find-duplicate-file-in-system/find-duplicate-file-in-system_test.go b/Algorithms/0609.find-duplicate-file-in-system/find-duplicate-file-in-system_test.go deleted file mode 100755 index e7366aa2e..000000000 --- a/Algorithms/0609.find-duplicate-file-in-system/find-duplicate-file-in-system_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0609 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0609(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0611.valid-triangle-number/README.md b/Algorithms/0611.valid-triangle-number/README.md deleted file mode 100755 index 38274660a..000000000 --- a/Algorithms/0611.valid-triangle-number/README.md +++ /dev/null @@ -1,32 +0,0 @@ -# [611. Valid Triangle Number](https://leetcode.com/problems/valid-triangle-number/) - -## 题目 - - Given an array consists of non-negative integers, your task is to count the number of triplets chosen from the array that can make triangles if we take them as side lengths of a triangle. - -Example 1: -Input: [2,2,3,4] -Output: 3 -Explanation: -Valid combinations are: -2,3,4 (using the first 2) -2,3,4 (using the second 2) -2,2,3 - - - -Note: - -The length of the given array won't exceed 1000. -The integers in the given array are in the range of [0, 1000]. - - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0611.valid-triangle-number/valid-triangle-number.go b/Algorithms/0611.valid-triangle-number/valid-triangle-number.go deleted file mode 100755 index a7c52df3a..000000000 --- a/Algorithms/0611.valid-triangle-number/valid-triangle-number.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0611 - diff --git a/Algorithms/0611.valid-triangle-number/valid-triangle-number_test.go b/Algorithms/0611.valid-triangle-number/valid-triangle-number_test.go deleted file mode 100755 index 2ce863a40..000000000 --- a/Algorithms/0611.valid-triangle-number/valid-triangle-number_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0611 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0611(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0617.merge-two-binary-trees/README.md b/Algorithms/0617.merge-two-binary-trees/README.md deleted file mode 100755 index 72b722499..000000000 --- a/Algorithms/0617.merge-two-binary-trees/README.md +++ /dev/null @@ -1,43 +0,0 @@ -# [617. Merge Two Binary Trees](https://leetcode.com/problems/merge-two-binary-trees/) - -## 题目 - - -Given two binary trees and imagine that when you put one of them to cover the other, some nodes of the two trees are overlapped while the others are not. - - -You need to merge them into a new binary tree. The merge rule is that if two nodes overlap, then sum node values up as the new value of the merged node. Otherwise, the NOT null node will be used as the node of new tree. - - - -Example 1: -Input: - Tree 1 Tree 2 - 1 2 - / \ / \ - 3 2 1 3 - / \ \ - 5 4 7 -Output: -Merged tree: - 3 - / \ - 4 5 - / \ \ - 5 4 7 - - - - -Note: -The merging process must start from the root nodes of both trees. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0617.merge-two-binary-trees/merge-two-binary-trees.go b/Algorithms/0617.merge-two-binary-trees/merge-two-binary-trees.go deleted file mode 100755 index 428674e2e..000000000 --- a/Algorithms/0617.merge-two-binary-trees/merge-two-binary-trees.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0617 - diff --git a/Algorithms/0617.merge-two-binary-trees/merge-two-binary-trees_test.go b/Algorithms/0617.merge-two-binary-trees/merge-two-binary-trees_test.go deleted file mode 100755 index bb1718a95..000000000 --- a/Algorithms/0617.merge-two-binary-trees/merge-two-binary-trees_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0617 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0617(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0621.task-scheduler/README.md b/Algorithms/0621.task-scheduler/README.md deleted file mode 100755 index 16cb361b9..000000000 --- a/Algorithms/0621.task-scheduler/README.md +++ /dev/null @@ -1,31 +0,0 @@ -# [621. Task Scheduler](https://leetcode.com/problems/task-scheduler/) - -## 题目 - - Given a char array representing tasks CPU need to do. It contains capital letters A to Z where different letters represent different tasks.Tasks could be done without original order. Each task could be done in one interval. For each interval, CPU could finish one task or just be idle. - -However, there is a non-negative cooling interval n that means between two same tasks, there must be at least n intervals that CPU are doing different tasks or just be idle. - -You need to return the least number of intervals the CPU will take to finish all the given tasks. - -Example 1: -Input: tasks = ['A','A','A','B','B','B'], n = 2 -Output: 8 -Explanation: A -> B -> idle -> A -> B -> idle -> A -> B. - - - -Note: - -The number of tasks is in the range [1, 10000]. -The integer n is in the range [0, 100]. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0621.task-scheduler/task-scheduler.go b/Algorithms/0621.task-scheduler/task-scheduler.go deleted file mode 100755 index cb7e9c43a..000000000 --- a/Algorithms/0621.task-scheduler/task-scheduler.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0621 - diff --git a/Algorithms/0621.task-scheduler/task-scheduler_test.go b/Algorithms/0621.task-scheduler/task-scheduler_test.go deleted file mode 100755 index bd9818aee..000000000 --- a/Algorithms/0621.task-scheduler/task-scheduler_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0621 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0621(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0623.add-one-row-to-tree/README.md b/Algorithms/0623.add-one-row-to-tree/README.md deleted file mode 100755 index 129f55dd5..000000000 --- a/Algorithms/0623.add-one-row-to-tree/README.md +++ /dev/null @@ -1,72 +0,0 @@ -# [623. Add One Row to Tree](https://leetcode.com/problems/add-one-row-to-tree/) - -## 题目 - - Given the root of a binary tree, then value v and depth d, you need to add a row of nodes with value v at the given depth d. The root node is at depth 1. - -The adding rule is: given a positive integer depth d, for each NOT null tree nodes N in depth d-1, create two tree nodes with value v as N's left subtree root and right subtree root. And N's original left subtree should be the left subtree of the new left subtree root, its original right subtree should be the right subtree of the new right subtree root. If depth d is 1 that means there is no depth d-1 at all, then create a tree node with value v as the new root of the whole original tree, and the original tree is the new root's left subtree. - -Example 1: -Input: -A binary tree as following: - 4 - / \ - 2 6 - / \ / - 3 1 5 - -v = 1 - -d = 2 - -Output: - 4 - / \ - 1 1 - / \ - 2 6 - / \ / - 3 1 5 - - - - - -Example 2: -Input: -A binary tree as following: - 4 - / - 2 - / \ - 3 1 - -v = 1 - -d = 3 - -Output: - 4 - / - 2 - / \ - 1 1 - / \ -3 1 - - - -Note: - -The given d is in range [1, maximum depth of the given tree + 1]. -The given binary tree has at least one tree node. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0623.add-one-row-to-tree/add-one-row-to-tree.go b/Algorithms/0623.add-one-row-to-tree/add-one-row-to-tree.go deleted file mode 100755 index 194634dcf..000000000 --- a/Algorithms/0623.add-one-row-to-tree/add-one-row-to-tree.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0623 - diff --git a/Algorithms/0623.add-one-row-to-tree/add-one-row-to-tree_test.go b/Algorithms/0623.add-one-row-to-tree/add-one-row-to-tree_test.go deleted file mode 100755 index 234146044..000000000 --- a/Algorithms/0623.add-one-row-to-tree/add-one-row-to-tree_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0623 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0623(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0629.k-inverse-pairs-array/README.md b/Algorithms/0629.k-inverse-pairs-array/README.md deleted file mode 100755 index b4a929b30..000000000 --- a/Algorithms/0629.k-inverse-pairs-array/README.md +++ /dev/null @@ -1,45 +0,0 @@ -# [629. K Inverse Pairs Array](https://leetcode.com/problems/k-inverse-pairs-array/) - -## 题目 - - -Given two integers n and k, find how many different arrays consist of numbers from 1 to n such that there are exactly k inverse pairs. - - -We define an inverse pair as following: -For ith and jth element in the array, if i < j and a[i] > a[j] then it's an inverse pair; Otherwise, it's not. - - - -Since the answer may be very large, the answer should be modulo 109 + 7. - - -Example 1: -Input: n = 3, k = 0 -Output: 1 -Explanation: -Only the array [1,2,3] which consists of numbers from 1 to 3 has exactly 0 inverse pair. - - - -Example 2: -Input: n = 3, k = 1 -Output: 2 -Explanation: -The array [1,3,2] and [2,1,3] have exactly 1 inverse pair. - - - -Note: - -The integer n is in the range [1, 1000] and k is in the range [0, 1000]. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0629.k-inverse-pairs-array/k-inverse-pairs-array.go b/Algorithms/0629.k-inverse-pairs-array/k-inverse-pairs-array.go deleted file mode 100755 index b59aeff72..000000000 --- a/Algorithms/0629.k-inverse-pairs-array/k-inverse-pairs-array.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0629 - diff --git a/Algorithms/0629.k-inverse-pairs-array/k-inverse-pairs-array_test.go b/Algorithms/0629.k-inverse-pairs-array/k-inverse-pairs-array_test.go deleted file mode 100755 index b1b2e8847..000000000 --- a/Algorithms/0629.k-inverse-pairs-array/k-inverse-pairs-array_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0629 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0629(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0630.course-schedule-iii/README.md b/Algorithms/0630.course-schedule-iii/README.md deleted file mode 100755 index a0e09237f..000000000 --- a/Algorithms/0630.course-schedule-iii/README.md +++ /dev/null @@ -1,40 +0,0 @@ -# [630. Course Schedule III](https://leetcode.com/problems/course-schedule-iii/) - -## 题目 - - -There are n different online courses numbered from 1 to n. Each course has some duration(course length) t and closed on dth day. A course should be taken continuously for t days and must be finished before or on the dth day. You will start at the 1st day. - - - -Given n online courses represented by pairs (t,d), your task is to find the maximal number of courses that can be taken. - - - -Example: -Input: [[100, 200], [200, 1300], [1000, 1250], [2000, 3200]] -Output: 3 -Explanation: -There're totally 4 courses, but you can take 3 courses at most: -First, take the 1st course, it costs 100 days so you will finish it on the 100th day, and ready to take the next course on the 101st day. -Second, take the 3rd course, it costs 1000 days so you will finish it on the 1100th day, and ready to take the next course on the 1101st day. -Third, take the 2nd course, it costs 200 days so you will finish it on the 1300th day. -The 4th course cannot be taken now, since you will finish it on the 3300th day, which exceeds the closed date. - - - - -Note: - -The integer 1 <= d, t, n <= 10,000. -You can't take two courses simultaneously. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0630.course-schedule-iii/course-schedule-iii.go b/Algorithms/0630.course-schedule-iii/course-schedule-iii.go deleted file mode 100755 index d93a96925..000000000 --- a/Algorithms/0630.course-schedule-iii/course-schedule-iii.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0630 - diff --git a/Algorithms/0630.course-schedule-iii/course-schedule-iii_test.go b/Algorithms/0630.course-schedule-iii/course-schedule-iii_test.go deleted file mode 100755 index 2f7e885ec..000000000 --- a/Algorithms/0630.course-schedule-iii/course-schedule-iii_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0630 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0630(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0632.smallest-range/README.md b/Algorithms/0632.smallest-range/README.md deleted file mode 100755 index 924a28154..000000000 --- a/Algorithms/0632.smallest-range/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# [632. Smallest Range](https://leetcode.com/problems/smallest-range/) - -## 题目 - - You have k lists of sorted integers in ascending order. Find the smallest range that includes at least one number from each of the k lists. - -We define the range [a,b] is smaller than range [c,d] if b-a < d-c or a < c if b-a == d-c. - -Example 1: -Input:[[4,10,15,24,26], [0,9,12,20], [5,18,22,30]] -Output: [20,24] -Explanation: -List 1: [4, 10, 15, 24,26], 24 is in range [20,24]. -List 2: [0, 9, 12, 20], 20 is in range [20,24]. -List 3: [5, 18, 22, 30], 22 is in range [20,24]. - - - - -Note: - -The given list may contain duplicates, so ascending order means >= here. -1 <= k <= 3500 - -105 <= value of elements <= 105. -For Java users, please note that the input type has been changed to List>. And after you reset the code template, you'll see this point. - - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0632.smallest-range/smallest-range.go b/Algorithms/0632.smallest-range/smallest-range.go deleted file mode 100755 index bb85b8d32..000000000 --- a/Algorithms/0632.smallest-range/smallest-range.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0632 - diff --git a/Algorithms/0632.smallest-range/smallest-range_test.go b/Algorithms/0632.smallest-range/smallest-range_test.go deleted file mode 100755 index bb5b13185..000000000 --- a/Algorithms/0632.smallest-range/smallest-range_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0632 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0632(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0633.sum-of-square-numbers/README.md b/Algorithms/0633.sum-of-square-numbers/README.md deleted file mode 100755 index 5a6fac911..000000000 --- a/Algorithms/0633.sum-of-square-numbers/README.md +++ /dev/null @@ -1,30 +0,0 @@ -# [633. Sum of Square Numbers](https://leetcode.com/problems/sum-of-square-numbers/) - -## 题目 - - -Given a non-negative integer c, your task is to decide whether there're two integers a and b such that a2 + b2 = c. - - -Example 1: -Input: 5 -Output: True -Explanation: 1 * 1 + 2 * 2 = 5 - - - - -Example 2: -Input: 3 -Output: False - - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0633.sum-of-square-numbers/sum-of-square-numbers.go b/Algorithms/0633.sum-of-square-numbers/sum-of-square-numbers.go deleted file mode 100755 index 60eff487a..000000000 --- a/Algorithms/0633.sum-of-square-numbers/sum-of-square-numbers.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0633 - diff --git a/Algorithms/0633.sum-of-square-numbers/sum-of-square-numbers_test.go b/Algorithms/0633.sum-of-square-numbers/sum-of-square-numbers_test.go deleted file mode 100755 index f2d5c9855..000000000 --- a/Algorithms/0633.sum-of-square-numbers/sum-of-square-numbers_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0633 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0633(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0636.exclusive-time-of-functions/README.md b/Algorithms/0636.exclusive-time-of-functions/README.md deleted file mode 100755 index a50b4a366..000000000 --- a/Algorithms/0636.exclusive-time-of-functions/README.md +++ /dev/null @@ -1,46 +0,0 @@ -# [636. Exclusive Time of Functions](https://leetcode.com/problems/exclusive-time-of-functions/) - -## 题目 - - Given the running logs of n functions that are executed in a nonpreemptive single threaded CPU, find the exclusive time of these functions. - -Each function has a unique id, start from 0 to n-1. A function may be called recursively or by another function. - -A log is a string has this format : function_id:start_or_end:timestamp. For example, "0:start:0" means function 0 starts from the very beginning of time 0. "0:end:0" means function 0 ends to the very end of time 0. - -Exclusive time of a function is defined as the time spent within this function, the time spent by calling other functions should not be considered as this function's exclusive time. You should return the exclusive time of each function sorted by their function id. - -Example 1: -Input: -n = 2 -logs = -["0:start:0", - "1:start:2", - "1:end:5", - "0:end:6"] -Output:[3, 4] -Explanation: -Function 0 starts at time 0, then it executes 2 units of time and reaches the end of time 1. -Now function 0 calls function 1, function 1 starts at time 2, executes 4 units of time and end at time 5. -Function 0 is running again at time 6, and also end at the time 6, thus executes 1 unit of time. -So function 0 totally execute 2 + 1 = 3 units of time, and function 1 totally execute 4 units of time. - - - -Note: - -Input logs will be sorted by timestamp, NOT log id. -Your output should be sorted by function id, which means the 0th element of your output corresponds to the exclusive time of function 0. -Two functions won't start or end at the same time. -Functions could be called recursively, and will always end. -1 <= n <= 100 - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0636.exclusive-time-of-functions/exclusive-time-of-functions.go b/Algorithms/0636.exclusive-time-of-functions/exclusive-time-of-functions.go deleted file mode 100755 index ae6312346..000000000 --- a/Algorithms/0636.exclusive-time-of-functions/exclusive-time-of-functions.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0636 - diff --git a/Algorithms/0636.exclusive-time-of-functions/exclusive-time-of-functions_test.go b/Algorithms/0636.exclusive-time-of-functions/exclusive-time-of-functions_test.go deleted file mode 100755 index c9c1a6f03..000000000 --- a/Algorithms/0636.exclusive-time-of-functions/exclusive-time-of-functions_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0636 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0636(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0637.average-of-levels-in-binary-tree/README.md b/Algorithms/0637.average-of-levels-in-binary-tree/README.md deleted file mode 100755 index 4ac432054..000000000 --- a/Algorithms/0637.average-of-levels-in-binary-tree/README.md +++ /dev/null @@ -1,32 +0,0 @@ -# [637. Average of Levels in Binary Tree](https://leetcode.com/problems/average-of-levels-in-binary-tree/) - -## 题目 - - Given a non-empty binary tree, return the average value of the nodes on each level in the form of an array. - -Example 1: -Input: - 3 - / \ - 9 20 - / \ - 15 7 -Output: [3, 14.5, 11] -Explanation: -The average value of nodes on level 0 is 3, on level 1 is 14.5, and on level 2 is 11. Hence return [3, 14.5, 11]. - - - -Note: - -The range of node's value is in the range of 32-bit signed integer. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0637.average-of-levels-in-binary-tree/average-of-levels-in-binary-tree.go b/Algorithms/0637.average-of-levels-in-binary-tree/average-of-levels-in-binary-tree.go deleted file mode 100755 index 4686315f5..000000000 --- a/Algorithms/0637.average-of-levels-in-binary-tree/average-of-levels-in-binary-tree.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0637 - diff --git a/Algorithms/0637.average-of-levels-in-binary-tree/average-of-levels-in-binary-tree_test.go b/Algorithms/0637.average-of-levels-in-binary-tree/average-of-levels-in-binary-tree_test.go deleted file mode 100755 index 9f5f186c8..000000000 --- a/Algorithms/0637.average-of-levels-in-binary-tree/average-of-levels-in-binary-tree_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0637 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0637(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0638.shopping-offers/README.md b/Algorithms/0638.shopping-offers/README.md deleted file mode 100755 index 351745dcd..000000000 --- a/Algorithms/0638.shopping-offers/README.md +++ /dev/null @@ -1,60 +0,0 @@ -# [638. Shopping Offers](https://leetcode.com/problems/shopping-offers/) - -## 题目 - - -In LeetCode Store, there are some kinds of items to sell. Each item has a price. - - - -However, there are some special offers, and a special offer consists of one or more different kinds of items with a sale price. - - - -You are given the each item's price, a set of special offers, and the number we need to buy for each item. -The job is to output the lowest price you have to pay for exactly certain items as given, where you could make optimal use of the special offers. - - - -Each special offer is represented in the form of an array, the last number represents the price you need to pay for this special offer, other numbers represents how many specific items you could get if you buy this offer. - - -You could use any of special offers as many times as you want. - -Example 1: -Input: [2,5], [[3,0,5],[1,2,10]], [3,2] -Output: 14 -Explanation: -There are two kinds of items, A and B. Their prices are $2 and $5 respectively. -In special offer 1, you can pay $5 for 3A and 0B -In special offer 2, you can pay $10 for 1A and 2B. -You need to buy 3A and 2B, so you may pay $10 for 1A and 2B (special offer #2), and $4 for 2A. - - - -Example 2: -Input: [2,3,4], [[1,1,0,4],[2,2,1,9]], [1,2,1] -Output: 11 -Explanation: -The price of A is $2, and $3 for B, $4 for C. -You may pay $4 for 1A and 1B, and $9 for 2A ,2B and 1C. -You need to buy 1A ,2B and 1C, so you may pay $4 for 1A and 1B (special offer #1), and $3 for 1B, $4 for 1C. -You cannot add more items, though only $9 for 2A ,2B and 1C. - - - -Note: - -There are at most 6 kinds of items, 100 special offers. -For each item, you need to buy at most 6 of them. -You are not allowed to buy more items than you want, even if that would lower the overall price. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0638.shopping-offers/shopping-offers.go b/Algorithms/0638.shopping-offers/shopping-offers.go deleted file mode 100755 index 9c026b777..000000000 --- a/Algorithms/0638.shopping-offers/shopping-offers.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0638 - diff --git a/Algorithms/0638.shopping-offers/shopping-offers_test.go b/Algorithms/0638.shopping-offers/shopping-offers_test.go deleted file mode 100755 index 1cfc73d44..000000000 --- a/Algorithms/0638.shopping-offers/shopping-offers_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0638 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0638(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0639.decode-ways-ii/README.md b/Algorithms/0639.decode-ways-ii/README.md deleted file mode 100755 index 24a7691cb..000000000 --- a/Algorithms/0639.decode-ways-ii/README.md +++ /dev/null @@ -1,54 +0,0 @@ -# [639. Decode Ways II](https://leetcode.com/problems/decode-ways-ii/) - -## 题目 - - -A message containing letters from A-Z is being encoded to numbers using the following mapping way: - - -'A' -> 1 -'B' -> 2 -... -'Z' -> 26 - - - -Beyond that, now the encoded string can also contain the character '*', which can be treated as one of the numbers from 1 to 9. - - - - -Given the encoded message containing digits and the character '*', return the total number of ways to decode it. - - - -Also, since the answer may be very large, you should return the output mod 109 + 7. - - -Example 1: -Input: "*" -Output: 9 -Explanation: The encoded message can be decoded to the string: "A", "B", "C", "D", "E", "F", "G", "H", "I". - - - -Example 2: -Input: "1*" -Output: 9 + 9 = 18 - - - -Note: - -The length of the input string will fit in range [1, 105]. -The input string will only contain the character '*' and digits '0' - '9'. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0639.decode-ways-ii/decode-ways-ii.go b/Algorithms/0639.decode-ways-ii/decode-ways-ii.go deleted file mode 100755 index e5523894c..000000000 --- a/Algorithms/0639.decode-ways-ii/decode-ways-ii.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0639 - diff --git a/Algorithms/0639.decode-ways-ii/decode-ways-ii_test.go b/Algorithms/0639.decode-ways-ii/decode-ways-ii_test.go deleted file mode 100755 index 7e05171fd..000000000 --- a/Algorithms/0639.decode-ways-ii/decode-ways-ii_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0639 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0639(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0640.solve-the-equation/README.md b/Algorithms/0640.solve-the-equation/README.md deleted file mode 100755 index 7e1778d3e..000000000 --- a/Algorithms/0640.solve-the-equation/README.md +++ /dev/null @@ -1,55 +0,0 @@ -# [640. Solve the Equation](https://leetcode.com/problems/solve-the-equation/) - -## 题目 - - -Solve a given equation and return the value of x in the form of string "x=#value". The equation contains only '+', '-' operation, the variable x and its coefficient. - - - -If there is no solution for the equation, return "No solution". - - -If there are infinite solutions for the equation, return "Infinite solutions". - - -If there is exactly one solution for the equation, we ensure that the value of x is an integer. - - -Example 1: -Input: "x+5-3+x=6+x-2" -Output: "x=2" - - - -Example 2: -Input: "x=x" -Output: "Infinite solutions" - - - -Example 3: -Input: "2x=x" -Output: "x=0" - - - -Example 4: -Input: "2x+3x-6x=x+2" -Output: "x=-1" - - - -Example 5: -Input: "x=x+2" -Output: "No solution" - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0640.solve-the-equation/solve-the-equation.go b/Algorithms/0640.solve-the-equation/solve-the-equation.go deleted file mode 100755 index 3d9abd40f..000000000 --- a/Algorithms/0640.solve-the-equation/solve-the-equation.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0640 - diff --git a/Algorithms/0640.solve-the-equation/solve-the-equation_test.go b/Algorithms/0640.solve-the-equation/solve-the-equation_test.go deleted file mode 100755 index a355ff44a..000000000 --- a/Algorithms/0640.solve-the-equation/solve-the-equation_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0640 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0640(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0645.set-mismatch/README.md b/Algorithms/0645.set-mismatch/README.md deleted file mode 100755 index f5517ded0..000000000 --- a/Algorithms/0645.set-mismatch/README.md +++ /dev/null @@ -1,33 +0,0 @@ -# [645. Set Mismatch](https://leetcode.com/problems/set-mismatch/) - -## 题目 - - -The set S originally contains numbers from 1 to n. But unfortunately, due to the data error, one of the numbers in the set got duplicated to another number in the set, which results in repetition of one number and loss of another number. - - - -Given an array nums representing the data status of this set after the error. Your task is to firstly find the number occurs twice and then find the number that is missing. Return them in the form of an array. - - - -Example 1: -Input: nums = [1,2,2,4] -Output: [2,3] - - - -Note: - -The given array size will in the range [2, 10000]. -The given array's numbers won't have any order. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0645.set-mismatch/set-mismatch.go b/Algorithms/0645.set-mismatch/set-mismatch.go deleted file mode 100755 index 5f8c7eb5f..000000000 --- a/Algorithms/0645.set-mismatch/set-mismatch.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0645 - diff --git a/Algorithms/0645.set-mismatch/set-mismatch_test.go b/Algorithms/0645.set-mismatch/set-mismatch_test.go deleted file mode 100755 index 1b1df1b8c..000000000 --- a/Algorithms/0645.set-mismatch/set-mismatch_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0645 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0645(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0646.maximum-length-of-pair-chain/README.md b/Algorithms/0646.maximum-length-of-pair-chain/README.md deleted file mode 100755 index 6ad46f2b8..000000000 --- a/Algorithms/0646.maximum-length-of-pair-chain/README.md +++ /dev/null @@ -1,37 +0,0 @@ -# [646. Maximum Length of Pair Chain](https://leetcode.com/problems/maximum-length-of-pair-chain/) - -## 题目 - - -You are given n pairs of numbers. In every pair, the first number is always smaller than the second number. - - - -Now, we define a pair (c, d) can follow another pair (a, b) if and only if b < c. Chain of pairs can be formed in this fashion. - - - -Given a set of pairs, find the length longest chain which can be formed. You needn't use up all the given pairs. You can select pairs in any order. - - - -Example 1: -Input: [[1,2], [2,3], [3,4]] -Output: 2 -Explanation: The longest chain is [1,2] -> [3,4] - - - -Note: - -The number of given pairs will be in the range [1, 1000]. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0646.maximum-length-of-pair-chain/maximum-length-of-pair-chain.go b/Algorithms/0646.maximum-length-of-pair-chain/maximum-length-of-pair-chain.go deleted file mode 100755 index c62345cc6..000000000 --- a/Algorithms/0646.maximum-length-of-pair-chain/maximum-length-of-pair-chain.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0646 - diff --git a/Algorithms/0646.maximum-length-of-pair-chain/maximum-length-of-pair-chain_test.go b/Algorithms/0646.maximum-length-of-pair-chain/maximum-length-of-pair-chain_test.go deleted file mode 100755 index 867a1aaec..000000000 --- a/Algorithms/0646.maximum-length-of-pair-chain/maximum-length-of-pair-chain_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0646 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0646(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0647.palindromic-substrings/README.md b/Algorithms/0647.palindromic-substrings/README.md deleted file mode 100755 index 2749fb7c7..000000000 --- a/Algorithms/0647.palindromic-substrings/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# [647. Palindromic Substrings](https://leetcode.com/problems/palindromic-substrings/) - -## 题目 - - -Given a string, your task is to count how many palindromic substrings in this string. - - - -The substrings with different start indexes or end indexes are counted as different substrings even they consist of same characters. - - -Example 1: -Input: "abc" -Output: 3 -Explanation: Three palindromic strings: "a", "b", "c". - - - -Example 2: -Input: "aaa" -Output: 6 -Explanation: Six palindromic strings: "a", "a", "a", "aa", "aa", "aaa". - - - -Note: - -The input string length won't exceed 1000. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0647.palindromic-substrings/palindromic-substrings.go b/Algorithms/0647.palindromic-substrings/palindromic-substrings.go deleted file mode 100755 index 054525e72..000000000 --- a/Algorithms/0647.palindromic-substrings/palindromic-substrings.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0647 - diff --git a/Algorithms/0647.palindromic-substrings/palindromic-substrings_test.go b/Algorithms/0647.palindromic-substrings/palindromic-substrings_test.go deleted file mode 100755 index 2f93e6b02..000000000 --- a/Algorithms/0647.palindromic-substrings/palindromic-substrings_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0647 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0647(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0648.replace-words/README.md b/Algorithms/0648.replace-words/README.md deleted file mode 100755 index cdb04203d..000000000 --- a/Algorithms/0648.replace-words/README.md +++ /dev/null @@ -1,43 +0,0 @@ -# [648. Replace Words](https://leetcode.com/problems/replace-words/) - -## 题目 - - -In English, we have a concept called root, which can be followed by some other words to form another longer word - let's call this word successor. For example, the root an, followed by other, which can form another word another. - - - - -Now, given a dictionary consisting of many roots and a sentence. You need to replace all the successor in the sentence with the root forming it. If a successor has many roots can form it, replace it with the root with the shortest length. - - - -You need to output the sentence after the replacement. - - - -Example 1: -Input: dict = ["cat", "bat", "rat"] -sentence = "the cattle was rattled by the battery" -Output: "the cat was rat by the bat" - - - - -Note: - -The input will only have lower-case letters. - 1 <= dict words number <= 1000 - 1 <= sentence words number <= 1000 - 1 <= root length <= 100 - 1 <= sentence words length <= 1000 - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0648.replace-words/replace-words.go b/Algorithms/0648.replace-words/replace-words.go deleted file mode 100755 index a10fb4a4b..000000000 --- a/Algorithms/0648.replace-words/replace-words.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0648 - diff --git a/Algorithms/0648.replace-words/replace-words_test.go b/Algorithms/0648.replace-words/replace-words_test.go deleted file mode 100755 index ee04f2448..000000000 --- a/Algorithms/0648.replace-words/replace-words_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0648 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0648(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0649.dota2-senate/README.md b/Algorithms/0649.dota2-senate/README.md deleted file mode 100755 index 4f489d0f0..000000000 --- a/Algorithms/0649.dota2-senate/README.md +++ /dev/null @@ -1,57 +0,0 @@ -# [649. Dota2 Senate](https://leetcode.com/problems/dota2-senate/) - -## 题目 - - -In the world of Dota2, there are two parties: the Radiant and the Dire. - - - -The Dota2 senate consists of senators coming from two parties. Now the senate wants to make a decision about a change in the Dota2 game. The voting for this change is a round-based procedure. In each round, each senator can exercise one of the two rights: - -Ban one senator's right: A senator can make another senator lose all his rights in this and all the following rounds. -Announce the victory: If this senator found the senators who still have rights to vote are all from the same party, he can announce the victory and make the decision about the change in the game. - - - - -Given a string representing each senator's party belonging. The character 'R' and 'D' represent the Radiant party and the Dire party respectively. Then if there are n senators, the size of the given string will be n. - - - -The round-based procedure starts from the first senator to the last senator in the given order. This procedure will last until the end of voting. All the senators who have lost their rights will be skipped during the procedure. - - - -Suppose every senator is smart enough and will play the best strategy for his own party, you need to predict which party will finally announce the victory and make the change in the Dota2 game. The output should be Radiant or Dire. - - -Example 1: -Input: "RD" -Output: "Radiant" -Explanation: The first senator comes from Radiant and he can just ban the next senator's right in the round 1. And the second senator can't exercise any rights any more since his right has been banned. And in the round 2, the first senator can just announce the victory since he is the only guy in the senate who can vote. - - - - -Example 2: -Input: "RDD" -Output: "Dire" -Explanation: -The first senator comes from Radiant and he can just ban the next senator's right in the round 1. And the second senator can't exercise any rights anymore since his right has been banned. And the third senator comes from Dire and he can ban the first senator's right in the round 1. And in the round 2, the third senator can just announce the victory since he is the only guy in the senate who can vote. - - - -Note: - -The length of the given string will in the range [1, 10,000]. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0649.dota2-senate/dota2-senate.go b/Algorithms/0649.dota2-senate/dota2-senate.go deleted file mode 100755 index ce6cb8aa9..000000000 --- a/Algorithms/0649.dota2-senate/dota2-senate.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0649 - diff --git a/Algorithms/0649.dota2-senate/dota2-senate_test.go b/Algorithms/0649.dota2-senate/dota2-senate_test.go deleted file mode 100755 index 676e20264..000000000 --- a/Algorithms/0649.dota2-senate/dota2-senate_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0649 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0649(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0650.2-keys-keyboard/2-keys-keyboard.go b/Algorithms/0650.2-keys-keyboard/2-keys-keyboard.go deleted file mode 100755 index 96596d8e3..000000000 --- a/Algorithms/0650.2-keys-keyboard/2-keys-keyboard.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0650 - diff --git a/Algorithms/0650.2-keys-keyboard/2-keys-keyboard_test.go b/Algorithms/0650.2-keys-keyboard/2-keys-keyboard_test.go deleted file mode 100755 index 81470f9e0..000000000 --- a/Algorithms/0650.2-keys-keyboard/2-keys-keyboard_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0650 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0650(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0650.2-keys-keyboard/README.md b/Algorithms/0650.2-keys-keyboard/README.md deleted file mode 100755 index 504bfb36b..000000000 --- a/Algorithms/0650.2-keys-keyboard/README.md +++ /dev/null @@ -1,41 +0,0 @@ -# [650. 2 Keys Keyboard](https://leetcode.com/problems/2-keys-keyboard/) - -## 题目 - - -Initially on a notepad only one character 'A' is present. You can perform two operations on this notepad for each step: - -Copy All: You can copy all the characters present on the notepad (partial copy is not allowed). -Paste: You can paste the characters which are copied last time. - - - - -Given a number n. You have to get exactly n 'A' on the notepad by performing the minimum number of steps permitted. Output the minimum number of steps to get n 'A'. - - -Example 1: -Input: 3 -Output: 3 -Explanation: -Intitally, we have one character 'A'. -In step 1, we use Copy All operation. -In step 2, we use Paste operation to get 'AA'. -In step 3, we use Paste operation to get 'AAA'. - - - - -Note: - -The n will be in the range [1, 1000]. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0652.find-duplicate-subtrees/README.md b/Algorithms/0652.find-duplicate-subtrees/README.md deleted file mode 100755 index 83746c124..000000000 --- a/Algorithms/0652.find-duplicate-subtrees/README.md +++ /dev/null @@ -1,40 +0,0 @@ -# [652. Find Duplicate Subtrees](https://leetcode.com/problems/find-duplicate-subtrees/) - -## 题目 - - -Given a binary tree, return all duplicate subtrees. For each kind of duplicate subtrees, you only need to return the root node of any one of them. - - -Two trees are duplicate if they have the same structure with same node values. - - -Example 1: - 1 - / \ - 2 3 - / / \ - 4 2 4 - / - 4 - -The following are two duplicate subtrees: - 2 - / - 4 - -and - 4 - -Therefore, you need to return above trees' root in the form of a list. - - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0652.find-duplicate-subtrees/find-duplicate-subtrees.go b/Algorithms/0652.find-duplicate-subtrees/find-duplicate-subtrees.go deleted file mode 100755 index 012cdc424..000000000 --- a/Algorithms/0652.find-duplicate-subtrees/find-duplicate-subtrees.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0652 - diff --git a/Algorithms/0652.find-duplicate-subtrees/find-duplicate-subtrees_test.go b/Algorithms/0652.find-duplicate-subtrees/find-duplicate-subtrees_test.go deleted file mode 100755 index e9cece03a..000000000 --- a/Algorithms/0652.find-duplicate-subtrees/find-duplicate-subtrees_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0652 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0652(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0653.two-sum-iv-input-is-a-bst/README.md b/Algorithms/0653.two-sum-iv-input-is-a-bst/README.md deleted file mode 100755 index 547cf75c3..000000000 --- a/Algorithms/0653.two-sum-iv-input-is-a-bst/README.md +++ /dev/null @@ -1,44 +0,0 @@ -# [653. Two Sum IV - Input is a BST](https://leetcode.com/problems/two-sum-iv-input-is-a-bst/) - -## 题目 - - Given a Binary Search Tree and a target number, return true if there exist two elements in the BST such that their sum is equal to the given target. - -Example 1: -Input: - 5 - / \ - 3 6 - / \ \ -2 4 7 - -Target = 9 - -Output: True - - - - -Example 2: -Input: - 5 - / \ - 3 6 - / \ \ -2 4 7 - -Target = 28 - -Output: False - - - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0653.two-sum-iv-input-is-a-bst/two-sum-iv-input-is-a-bst.go b/Algorithms/0653.two-sum-iv-input-is-a-bst/two-sum-iv-input-is-a-bst.go deleted file mode 100755 index e83bb02d1..000000000 --- a/Algorithms/0653.two-sum-iv-input-is-a-bst/two-sum-iv-input-is-a-bst.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0653 - diff --git a/Algorithms/0653.two-sum-iv-input-is-a-bst/two-sum-iv-input-is-a-bst_test.go b/Algorithms/0653.two-sum-iv-input-is-a-bst/two-sum-iv-input-is-a-bst_test.go deleted file mode 100755 index fda355287..000000000 --- a/Algorithms/0653.two-sum-iv-input-is-a-bst/two-sum-iv-input-is-a-bst_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0653 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0653(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0654.maximum-binary-tree/README.md b/Algorithms/0654.maximum-binary-tree/README.md deleted file mode 100755 index 815ab43d4..000000000 --- a/Algorithms/0654.maximum-binary-tree/README.md +++ /dev/null @@ -1,44 +0,0 @@ -# [654. Maximum Binary Tree](https://leetcode.com/problems/maximum-binary-tree/) - -## 题目 - - -Given an integer array with no duplicates. A maximum tree building on this array is defined as follow: - -The root is the maximum number in the array. -The left subtree is the maximum tree constructed from left part subarray divided by the maximum number. -The right subtree is the maximum tree constructed from right part subarray divided by the maximum number. - - - - -Construct the maximum tree by the given array and output the root node of this tree. - - -Example 1: -Input: [3,2,1,6,0,5] -Output: return the tree root node representing the following tree: - - 6 - / \ - 3 5 - \ / - 2 0 - \ - 1 - - - -Note: - -The size of the given array will be in the range [1,1000]. - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0654.maximum-binary-tree/maximum-binary-tree.go b/Algorithms/0654.maximum-binary-tree/maximum-binary-tree.go deleted file mode 100755 index c4cda6ee0..000000000 --- a/Algorithms/0654.maximum-binary-tree/maximum-binary-tree.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0654 - diff --git a/Algorithms/0654.maximum-binary-tree/maximum-binary-tree_test.go b/Algorithms/0654.maximum-binary-tree/maximum-binary-tree_test.go deleted file mode 100755 index 430fc8594..000000000 --- a/Algorithms/0654.maximum-binary-tree/maximum-binary-tree_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0654 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0654(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0655.print-binary-tree/README.md b/Algorithms/0655.print-binary-tree/README.md deleted file mode 100755 index ec4b80ffa..000000000 --- a/Algorithms/0655.print-binary-tree/README.md +++ /dev/null @@ -1,69 +0,0 @@ -# [655. Print Binary Tree](https://leetcode.com/problems/print-binary-tree/) - -## 题目 - - Print a binary tree in an m*n 2D string array following these rules: - - -The row number m should be equal to the height of the given binary tree. -The column number n should always be an odd number. -The root node's value (in string format) should be put in the exactly middle of the first row it can be put. The column and the row where the root node belongs will separate the rest space into two parts (left-bottom part and right-bottom part). You should print the left subtree in the left-bottom part and print the right subtree in the right-bottom part. The left-bottom part and the right-bottom part should have the same size. Even if one subtree is none while the other is not, you don't need to print anything for the none subtree but still need to leave the space as large as that for the other subtree. However, if two subtrees are none, then you don't need to leave space for both of them. -Each unused space should contain an empty string "". -Print the subtrees following the same rules. - - -Example 1: -Input: - 1 - / - 2 -Output: -[["", "1", ""], - ["2", "", ""]] - - - - -Example 2: -Input: - 1 - / \ - 2 3 - \ - 4 -Output: -[["", "", "", "1", "", "", ""], - ["", "2", "", "", "", "3", ""], - ["", "", "4", "", "", "", ""]] - - - -Example 3: -Input: - 1 - / \ - 2 5 - / - 3 - / -4 -Output: - -[["", "", "", "", "", "", "", "1", "", "", "", "", "", "", ""] - ["", "", "", "2", "", "", "", "", "", "", "", "5", "", "", ""] - ["", "3", "", "", "", "", "", "", "", "", "", "", "", "", ""] - ["4", "", "", "", "", "", "", "", "", "", "", "", "", "", ""]] - - - -Note: -The height of binary tree is in the range of [1, 10]. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0655.print-binary-tree/print-binary-tree.go b/Algorithms/0655.print-binary-tree/print-binary-tree.go deleted file mode 100755 index a5c7ce61d..000000000 --- a/Algorithms/0655.print-binary-tree/print-binary-tree.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0655 - diff --git a/Algorithms/0655.print-binary-tree/print-binary-tree_test.go b/Algorithms/0655.print-binary-tree/print-binary-tree_test.go deleted file mode 100755 index 7c4bd54b4..000000000 --- a/Algorithms/0655.print-binary-tree/print-binary-tree_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0655 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0655(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0657.judge-route-circle/README.md b/Algorithms/0657.judge-route-circle/README.md deleted file mode 100755 index d1946d7d4..000000000 --- a/Algorithms/0657.judge-route-circle/README.md +++ /dev/null @@ -1,31 +0,0 @@ -# [657. Judge Route Circle](https://leetcode.com/problems/judge-route-circle/) - -## 题目 - - -Initially, there is a Robot at position (0, 0). Given a sequence of its moves, judge if this robot makes a circle, which means it moves back to the original place. - - - -The move sequence is represented by a string. And each move is represent by a character. The valid robot moves are R (Right), L (Left), U (Up) and D (down). The output should be true or false representing whether the robot makes a circle. - - -Example 1: -Input: "UD" -Output: true - - - -Example 2: -Input: "LL" -Output: false - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0657.judge-route-circle/judge-route-circle.go b/Algorithms/0657.judge-route-circle/judge-route-circle.go deleted file mode 100755 index 030f600eb..000000000 --- a/Algorithms/0657.judge-route-circle/judge-route-circle.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0657 - diff --git a/Algorithms/0657.judge-route-circle/judge-route-circle_test.go b/Algorithms/0657.judge-route-circle/judge-route-circle_test.go deleted file mode 100755 index be2f2e083..000000000 --- a/Algorithms/0657.judge-route-circle/judge-route-circle_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0657 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0657(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0658.find-k-closest-elements/README.md b/Algorithms/0658.find-k-closest-elements/README.md deleted file mode 100755 index 91c63214f..000000000 --- a/Algorithms/0658.find-k-closest-elements/README.md +++ /dev/null @@ -1,37 +0,0 @@ -# [658. Find K Closest Elements](https://leetcode.com/problems/find-k-closest-elements/) - -## 题目 - - -Given a sorted array, two integers k and x, find the k closest elements to x in the array. The result should also be sorted in ascending order. -If there is a tie, the smaller elements are always preferred. - - -Example 1: -Input: [1,2,3,4,5], k=4, x=3 -Output: [1,2,3,4] - - - - -Example 2: -Input: [1,2,3,4,5], k=4, x=-1 -Output: [1,2,3,4] - - - -Note: - -The value k is positive and will always be smaller than the length of the sorted array. - Length of the given array is positive and will not exceed 104 - Absolute value of elements in the array and x will not exceed 104 - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0658.find-k-closest-elements/find-k-closest-elements.go b/Algorithms/0658.find-k-closest-elements/find-k-closest-elements.go deleted file mode 100755 index e540dffb9..000000000 --- a/Algorithms/0658.find-k-closest-elements/find-k-closest-elements.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0658 - diff --git a/Algorithms/0658.find-k-closest-elements/find-k-closest-elements_test.go b/Algorithms/0658.find-k-closest-elements/find-k-closest-elements_test.go deleted file mode 100755 index 3861bf02b..000000000 --- a/Algorithms/0658.find-k-closest-elements/find-k-closest-elements_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0658 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0658(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0659.split-array-into-consecutive-subsequences/README.md b/Algorithms/0659.split-array-into-consecutive-subsequences/README.md deleted file mode 100755 index 6ffb5e6b9..000000000 --- a/Algorithms/0659.split-array-into-consecutive-subsequences/README.md +++ /dev/null @@ -1,45 +0,0 @@ -# [659. Split Array into Consecutive Subsequences](https://leetcode.com/problems/split-array-into-consecutive-subsequences/) - -## 题目 - - You are given an integer array sorted in ascending order (may contain duplicates), you need to split them into several subsequences, where each subsequences consist of at least 3 consecutive integers. Return whether you can make such a split. - -Example 1: -Input: [1,2,3,3,4,5] -Output: True -Explanation: -You can split them into two consecutive subsequences : -1, 2, 3 -3, 4, 5 - - - -Example 2: -Input: [1,2,3,3,4,4,5,5] -Output: True -Explanation: -You can split them into two consecutive subsequences : -1, 2, 3, 4, 5 -3, 4, 5 - - - -Example 3: -Input: [1,2,3,4,4,5] -Output: False - - - -Note: - -The length of the input is in range of [1, 10000] - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0659.split-array-into-consecutive-subsequences/split-array-into-consecutive-subsequences.go b/Algorithms/0659.split-array-into-consecutive-subsequences/split-array-into-consecutive-subsequences.go deleted file mode 100755 index 8152fc6d6..000000000 --- a/Algorithms/0659.split-array-into-consecutive-subsequences/split-array-into-consecutive-subsequences.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0659 - diff --git a/Algorithms/0659.split-array-into-consecutive-subsequences/split-array-into-consecutive-subsequences_test.go b/Algorithms/0659.split-array-into-consecutive-subsequences/split-array-into-consecutive-subsequences_test.go deleted file mode 100755 index b540c97a5..000000000 --- a/Algorithms/0659.split-array-into-consecutive-subsequences/split-array-into-consecutive-subsequences_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0659 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0659(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0662.maximum-width-of-binary-tree/README.md b/Algorithms/0662.maximum-width-of-binary-tree/README.md deleted file mode 100755 index 7f23e97b6..000000000 --- a/Algorithms/0662.maximum-width-of-binary-tree/README.md +++ /dev/null @@ -1,76 +0,0 @@ -# [662. Maximum Width of Binary Tree](https://leetcode.com/problems/maximum-width-of-binary-tree/) - -## 题目 - - Given a binary tree, write a function to get the maximum width of the given tree. The width of a tree is the maximum width among all levels. The binary tree has the same structure as a full binary tree, but some nodes are null. - -The width of one level is defined as the length between the end-nodes (the leftmost and right most non-null nodes in the level, where the null nodes between the end-nodes are also counted into the length calculation. - -Example 1: -Input: - - 1 - / \ - 3 2 - / \ \ - 5 3 9 - -Output: 4 -Explanation: The maximum width existing in the third level with the length 4 (5,3,null,9). - - - -Example 2: -Input: - - 1 - / - 3 - / \ - 5 3 - -Output: 2 -Explanation: The maximum width existing in the third level with the length 2 (5,3). - - - -Example 3: -Input: - - 1 - / \ - 3 2 - / - 5 - -Output: 2 -Explanation: The maximum width existing in the second level with the length 2 (3,2). - - -Example 4: -Input: - - 1 - / \ - 3 2 - / \ - 5 9 - / \ - 6 7 -Output: 8 -Explanation:The maximum width existing in the fourth level with the length 8 (6,null,null,null,null,null,null,7). - - - - -Note: -Answer will in the range of 32-bit signed integer. - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0662.maximum-width-of-binary-tree/maximum-width-of-binary-tree.go b/Algorithms/0662.maximum-width-of-binary-tree/maximum-width-of-binary-tree.go deleted file mode 100755 index 9d723e432..000000000 --- a/Algorithms/0662.maximum-width-of-binary-tree/maximum-width-of-binary-tree.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0662 - diff --git a/Algorithms/0662.maximum-width-of-binary-tree/maximum-width-of-binary-tree_test.go b/Algorithms/0662.maximum-width-of-binary-tree/maximum-width-of-binary-tree_test.go deleted file mode 100755 index 42adf4169..000000000 --- a/Algorithms/0662.maximum-width-of-binary-tree/maximum-width-of-binary-tree_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0662 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0662(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0663.equal-tree-partition/README.md b/Algorithms/0663.equal-tree-partition/README.md deleted file mode 100755 index f2480146e..000000000 --- a/Algorithms/0663.equal-tree-partition/README.md +++ /dev/null @@ -1,60 +0,0 @@ -# [663. Equal Tree Partition](https://leetcode.com/problems/equal-tree-partition/) - -## 题目 - - -Given a binary tree with n nodes, your task is to check if it's possible to partition the tree to two trees which have the equal sum of values after removing exactly one edge on the original tree. - - -Example 1: -Input: - 5 - / \ - 10 10 - / \ - 2 3 - -Output: True -Explanation: - 5 - / - 10 - -Sum: 15 - - 10 - / \ - 2 3 - -Sum: 15 - - - - -Example 2: -Input: - 1 - / \ - 2 10 - / \ - 2 20 - -Output: False -Explanation: You can't split the tree into two trees with equal sum after removing exactly one edge on the tree. - - - -Note: - -The range of tree node value is in the range of [-100000, 100000]. -1 <= n <= 10000 - - - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0663.equal-tree-partition/equal-tree-partition.go b/Algorithms/0663.equal-tree-partition/equal-tree-partition.go deleted file mode 100755 index 7a0ae4fd1..000000000 --- a/Algorithms/0663.equal-tree-partition/equal-tree-partition.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0663 - diff --git a/Algorithms/0663.equal-tree-partition/equal-tree-partition_test.go b/Algorithms/0663.equal-tree-partition/equal-tree-partition_test.go deleted file mode 100755 index 27df6ba3b..000000000 --- a/Algorithms/0663.equal-tree-partition/equal-tree-partition_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0663 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0663(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Algorithms/0664.strange-printer/README.md b/Algorithms/0664.strange-printer/README.md deleted file mode 100755 index a5a1d91df..000000000 --- a/Algorithms/0664.strange-printer/README.md +++ /dev/null @@ -1,41 +0,0 @@ -# [664. Strange Printer](https://leetcode.com/problems/strange-printer/) - -## 题目 - - -There is a strange printer with the following two special requirements: - - -The printer can only print a sequence of the same character each time. -At each turn, the printer can print new characters starting from and ending at any places, and will cover the original existing characters. - - - - - -Given a string consists of lower English letters only, your job is to count the minimum number of turns the printer needed in order to print it. - - -Example 1: -Input: "aaabbb" -Output: 2 -Explanation: Print "aaa" first and then print "bbb". - - - -Example 2: -Input: "aba" -Output: 2 -Explanation: Print "aaa" first and then print "b" from the second place of the string, which will cover the existing character 'a'. - - - -Hint: Length of the given string will not exceed 100. - - -## 解题思路 - - -## 总结 - - diff --git a/Algorithms/0664.strange-printer/strange-printer.go b/Algorithms/0664.strange-printer/strange-printer.go deleted file mode 100755 index 95c17f1d4..000000000 --- a/Algorithms/0664.strange-printer/strange-printer.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0664 - diff --git a/Algorithms/0664.strange-printer/strange-printer_test.go b/Algorithms/0664.strange-printer/strange-printer_test.go deleted file mode 100755 index a9362adc4..000000000 --- a/Algorithms/0664.strange-printer/strange-printer_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0664 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0664(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Draft/0433.minimum-genetic-mutation/README.md b/Draft/0433.minimum-genetic-mutation/README.md deleted file mode 100755 index a7752616e..000000000 --- a/Draft/0433.minimum-genetic-mutation/README.md +++ /dev/null @@ -1,56 +0,0 @@ -# [433. Minimum Genetic Mutation](https://leetcode.com/problems/minimum-genetic-mutation/) - -## 题目 - - A gene string can be represented by an 8-character long string, with choices from "A", "C", "G", "T". - -Suppose we need to investigate about a mutation (mutation from "start" to "end"), where ONE mutation is defined as ONE single character changed in the gene string. - -For example, "AACCGGTT" -> "AACCGGTA" is 1 mutation. - -Also, there is a given gene "bank", which records all the valid gene mutations. A gene must be in the bank to make it a valid gene string. - -Now, given 3 things - start, end, bank, your task is to determine what is the minimum number of mutations needed to mutate from "start" to "end". If there is no such a mutation, return -1. - -Note: - -Starting point is assumed to be valid, so it might not be included in the bank. -If multiple mutations are needed, all mutations during in the sequence must be valid. -You may assume start and end string is not the same. - - - -Example 1: -start: "AACCGGTT" -end: "AACCGGTA" -bank: ["AACCGGTA"] - -return: 1 - - - -Example 2: -start: "AACCGGTT" -end: "AAACGGTA" -bank: ["AACCGGTA", "AACCGCTA", "AAACGGTA"] - -return: 2 - - - -Example 3: -start: "AAAAACCC" -end: "AACCCCCC" -bank: ["AAAACCCC", "AAACCCCC", "AACCCCCC"] - -return: 3 - - - - -## 解题思路 - - -## 总结 - - diff --git a/Draft/0433.minimum-genetic-mutation/minimum-genetic-mutation.go b/Draft/0433.minimum-genetic-mutation/minimum-genetic-mutation.go deleted file mode 100755 index 73d45c540..000000000 --- a/Draft/0433.minimum-genetic-mutation/minimum-genetic-mutation.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0433 - diff --git a/Draft/0433.minimum-genetic-mutation/minimum-genetic-mutation_test.go b/Draft/0433.minimum-genetic-mutation/minimum-genetic-mutation_test.go deleted file mode 100755 index 13d28dbd1..000000000 --- a/Draft/0433.minimum-genetic-mutation/minimum-genetic-mutation_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0433 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0433(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Draft/0457.circular-array-loop/README.md b/Draft/0457.circular-array-loop/README.md deleted file mode 100755 index 15a8adfaf..000000000 --- a/Draft/0457.circular-array-loop/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# [457. Circular Array Loop](https://leetcode.com/problems/circular-array-loop/) - -## 题目 - - -You are given an array of positive and negative integers. If a number n at an index is positive, then move forward n steps. Conversely, if it's negative (-n), move backward n steps. Assume the first element of the array is forward next to the last element, and the last element is backward next to the first element. Determine if there is a loop in this array. A loop starts and ends at a particular index with more than 1 element along the loop. The loop must be "forward" or "backward'. - - -Example 1: - -Given the array [2, -1, 1, 2, 2], there is a loop, from index 0 -> 2 -> 3 -> 0. - - -Example 2: - -Given the array [-1, 2], there is no loop. - - -Note: - -The given array is guaranteed to contain no element "0". - - - -Can you do it in O(n) time complexity and O(1) space complexity? - - - - -## 解题思路 - - -## 总结 - - diff --git a/Draft/0457.circular-array-loop/circular-array-loop.go b/Draft/0457.circular-array-loop/circular-array-loop.go deleted file mode 100755 index 753756a6e..000000000 --- a/Draft/0457.circular-array-loop/circular-array-loop.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0457 - diff --git a/Draft/0457.circular-array-loop/circular-array-loop_test.go b/Draft/0457.circular-array-loop/circular-array-loop_test.go deleted file mode 100755 index 44f9650ea..000000000 --- a/Draft/0457.circular-array-loop/circular-array-loop_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0457 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0457(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Draft/0458.poor-pigs/README.md b/Draft/0458.poor-pigs/README.md deleted file mode 100755 index 1b4958477..000000000 --- a/Draft/0458.poor-pigs/README.md +++ /dev/null @@ -1,26 +0,0 @@ -# [458. Poor Pigs](https://leetcode.com/problems/poor-pigs/) - -## 题目 - - -There are 1000 buckets, one and only one of them contains poison, the rest are filled with water. They all look the same. If a pig drinks that poison it will die within 15 minutes. What is the minimum amount of pigs you need to figure out which bucket contains the poison within one hour. - - -Answer this question, and write an algorithm for the follow-up general case. - - - -Follow-up: - - - -If there are n buckets and a pig drinking poison will die within m minutes, how many pigs (x) you need to figure out the "poison" bucket within p minutes? There is exact one bucket with poison. - - - -## 解题思路 - - -## 总结 - - diff --git a/Draft/0458.poor-pigs/poor-pigs.go b/Draft/0458.poor-pigs/poor-pigs.go deleted file mode 100755 index 73cd8e22f..000000000 --- a/Draft/0458.poor-pigs/poor-pigs.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0458 - diff --git a/Draft/0458.poor-pigs/poor-pigs_test.go b/Draft/0458.poor-pigs/poor-pigs_test.go deleted file mode 100755 index 7880c0143..000000000 --- a/Draft/0458.poor-pigs/poor-pigs_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0458 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0458(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Draft/0518.coin-change-2/README.md b/Draft/0518.coin-change-2/README.md deleted file mode 100755 index f79b0e847..000000000 --- a/Draft/0518.coin-change-2/README.md +++ /dev/null @@ -1,47 +0,0 @@ -# [518. Coin Change 2](https://leetcode.com/problems/coin-change-2/) - -## 题目 - - -You are given coins of different denominations and a total amount of money. Write a function to compute the number of combinations that make up that amount. You may assume that you have infinite number of each kind of coin. - - -Note: -You can assume that - - 0 <= amount <= 5000 - 1 <= coin <= 5000 - the number of coins is less than 500 - the answer is guaranteed to fit into signed 32-bit integer - - - -Example 1: -Input: amount = 5, coins = [1, 2, 5] -Output: 4 -Explanation: there are four ways to make up the amount: -5=5 -5=2+2+1 -5=2+1+1+1 -5=1+1+1+1+1 - - -Example 2: -Input: amount = 3, coins = [2] -Output: 0 -Explanation: the amount of 3 cannot be made up just with coins of 2. - - -Example 3: -Input: amount = 10, coins = [10] -Output: 1 - - - - -## 解题思路 - - -## 总结 - - diff --git a/Draft/0518.coin-change-2/coin-change-2.go b/Draft/0518.coin-change-2/coin-change-2.go deleted file mode 100755 index 28026e5cf..000000000 --- a/Draft/0518.coin-change-2/coin-change-2.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0518 - diff --git a/Draft/0518.coin-change-2/coin-change-2_test.go b/Draft/0518.coin-change-2/coin-change-2_test.go deleted file mode 100755 index 00f9f09dc..000000000 --- a/Draft/0518.coin-change-2/coin-change-2_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0518 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0518(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/Draft/0626.exchange-seats/README.md b/Draft/0626.exchange-seats/README.md deleted file mode 100755 index 0c03490be..000000000 --- a/Draft/0626.exchange-seats/README.md +++ /dev/null @@ -1,41 +0,0 @@ -# [626. Exchange Seats](https://leetcode.com/problems/exchange-seats/) - -## 题目 - - Mary is a teacher in a middle school and she has a table seat storing students' names and their corresponding seat ids. -The column id is continuous increment. -Mary wants to change seats for the adjacent students. -Can you write a SQL query to output the result for Mary? -+---------+---------+ -| id | student | -+---------+---------+ -| 1 | Abbot | -| 2 | Doris | -| 3 | Emerson | -| 4 | Green | -| 5 | Jeames | -+---------+---------+ - -For the sample input, the output is: -+---------+---------+ -| id | student | -+---------+---------+ -| 1 | Doris | -| 2 | Abbot | -| 3 | Green | -| 4 | Emerson | -| 5 | Jeames | -+---------+---------+ - - -Note: -If the number of students is odd, there is no need to change the last one's seat. - - - -## 解题思路 - - -## 总结 - - diff --git a/Draft/0626.exchange-seats/exchange-seats.go b/Draft/0626.exchange-seats/exchange-seats.go deleted file mode 100755 index d6e0fa83a..000000000 --- a/Draft/0626.exchange-seats/exchange-seats.go +++ /dev/null @@ -1,2 +0,0 @@ -package Problem0626 - diff --git a/Draft/0626.exchange-seats/exchange-seats_test.go b/Draft/0626.exchange-seats/exchange-seats_test.go deleted file mode 100755 index 6f744299e..000000000 --- a/Draft/0626.exchange-seats/exchange-seats_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package Problem0626 - -import ( - "testing" - "fmt" - - "github.com/stretchr/testify/assert" -) - -type question struct { - para - ans -} - -// para 是参数 -// one 代表第一个参数 -type para struct { - one string -} - -// ans 是答案 -// one 代表第一个答案 -type ans struct { - one string -} - -func Test_Problem0626(t *testing.T) { - ast := assert.New(t) - - qs := []question{ - - question{ - para{""}, - ans{""}, - }, - - // 如需多个测试,可以复制上方元素。 - } - - for _, q := range qs { - a, p := q.ans, q.para - fmt.Printf("~~%v~~\n", p) - - ast.Equal(a.one, (p.one), "输入:%v", p) - } -} diff --git a/helper b/helper index 371c8ba4ccc91624a922213933b5ec949fc517d3..4d211dc29a0edc3549568ded569e400dd036cdac 100755 GIT binary patch delta 1404272 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

kYJ#;F_j2Ga@|LuHFEbu4UDG~!tn8nD-@%Oc-< z+A%J8ejTgMKPY5y9)G%3*if+f@w%|l6lYvDiWudw0-9XJ=py|<;Ux?|vJ^G)A*f(c zV;oLK*A+GDU9kmE2N4mXU@vb@aMzFCk^ zE7-fH%Opx zDR%-l=Tp0A!+}d1T-KTMX>GJI5jGaZVvJ+hGI||@M%k1V*991mrI#>5aPSoz%Ya!a z)))gj^4xT!q>(o;n)9s3n#2@V0B9X2<5m1Zf+M3%ODW?=85<`_WsLQ(b}CWU*ec6= zauRbAPhaDV5X%kpli>2kFr3pYEN>XzML9#(roUaML*ls_HK-*o<7>GTQqV6quUsPfacORMiVcXfxPZ){3HKZhHiE-`k?nz?`o8g@|vT& z8pB~Knv-Vw2l^V{eeZ5W%QJG)iXl0CsYVZD1IEC2J&Z{fsen1E z4~keCPsRITnEo2+8m3=Hx`yd?U#VR`3>8NrX+l3EI%>SL@n6{D(fET|5!u#%anpC^ z(+eBsZ+zkOwPSe*TQ#5BBPipa9>c)CDACEVgC|3=4^=*cVT@SafME~8P|o5 zarJaKdv zh#f}#{*Wg`!T#C9GUF_$2rV6Lgiu0)VGkI><5*GD+rfmLn6CyV3LHbFSogzeQ-VYu=P76; z^7oS3k2Hoc7wWf0VgfqHP#lzdlrbAeE5Im1mqr#j=!E%kAFizJa30JB}NNt9*ss$H=?}npy;{za=<@5X!mq9kQjPC-I$8b zKYWHU3&$imW+J8TREdEo8a@*O-Odmw5#~r0XBn}%BXNL}+$LX*v;=XCay^ogW*G%? z?PMD~PBk32-J*i&@GPU89}k8io6MdNV9Frc-u)oTGuy~-yUANmMTBh1;h?Isjmk3M z)Y(RuoZUfNXB*uyYZ!Bksu6zxlf7hw^C!M%W_@^^H6@R2(<>}MsDCHD6`DE6m|+R9 zD-=4{h*IwsL0lE=H$sZ`>{owQGFcSrJ=b`Ot;ZJgFbbZbck|GTPE+0a#$2yB#@{wN zj?(5EqXI8Qx_3z;uuD>k?UG!zh+UGQmuLbRrQ}!lXg^`$b1EENdcjqeH|O&}N!FDJ z#QyfcL-du5057nE01;p_L%gFAMRmiiK&4n`q2Ny1&rymEO`j#@mV3MW7um?c!bd|Kh#( z71dmnLG*!*Iw`gv-C4i!+y5cZ{Wr9f5uw~!r6dWW!g#HgtNPaQ{}<8BH}ncbx|7Hd zL<_@RM8$ujh{edo8>+fEgZFQ|+u5qsbD`bZ;1bB=iNTkzX(5Q}USt9#V7JE>Gfxnp zh2kMXYr_8UOsVa$Vme{kGmC0Uu`X>%?UrCoICZ`Yqcy|$l(AZERniqxk;Nou#Oz#1zk$|&$wC)~ zjbUucSkGQBMt=cAeKyC1aWe%NSNR!>E#WBTT54#pWh}DP7y?b`r=>vcf4yRMKkX%c7MO0 zrLoJQf1RbZ%c0@@LN!)E*ZRfGzS8iPrRJvcvvEq6j+^&aLGy(L*Zb8*3mk9OUt@HV z8|9=|FY$`?g*BK+j?$|&#xuELPTKrB*x&rJ)_84&8-eE=jbhS1^510iEwDKpecI6* zAgv3(EXpo<<4SJ?A846f0=j(D&9r5cp?Ps++r-W0l}(s=VB%J1i-AqvSyX2mCODJM zZi5;%D;KS-h>3Gas&_W(f6*s1ZQfyICC7FwR!l0h-PnN@*30ciqW?}b96Ut5gtfNh z?aqtyY>#d0jQ@*AUKo{K+hO#SpU zh5Md%KhidKv3cbc=Y5?OBiz^7LU*IQ`WeD@*?)MoT$MP8xayiu)=0

rE-*GBsG{RK* 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

e<~A> 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

T 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 z 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⁡7kP19Q&idGO#lucs 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�q$zjIfWMc!U~cpadb8@Ss}s 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�z&gwP;=)iU6IjWzz&WuJxIfuc74cgQQB{6w7 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 ##`osU8%K;rj~uF5HylL7 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%0D#{lceB3jJEl&Mf>@$MC<$4>lZ^?()zpTzR!%r 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≻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�opIUPhP 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
>5YuZzx`4>U-pd0qsD(8S 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