├── 0001-two-sum ├── 0001-two-sum.cpp ├── 0001-two-sum.java ├── NOTES.md └── README.md ├── 0003-longest-substring-without-repeating-characters ├── 0003-longest-substring-without-repeating-characters.java └── README.md ├── 0005-longest-palindromic-substring ├── 0005-longest-palindromic-substring.java ├── NOTES.md └── README.md ├── 0009-palindrome-number ├── 0009-palindrome-number.java └── NOTES.md ├── 0011-container-with-most-water ├── 0011-container-with-most-water.java ├── NOTES.md └── README.md ├── 0013-roman-to-integer ├── 0013-roman-to-integer.java ├── NOTES.md └── README.md ├── 0014-longest-common-prefix ├── 0014-longest-common-prefix.java ├── NOTES.md └── README.md ├── 0015-3sum ├── 0015-3sum.java └── README.md ├── 0016-3sum-closest ├── 0016-3sum-closest.java └── README.md ├── 0020-valid-parentheses ├── 0020-valid-parentheses.java └── README.md ├── 0021-merge-two-sorted-lists ├── 0021-merge-two-sorted-lists.java └── README.md ├── 0023-merge-k-sorted-lists ├── 0023-merge-k-sorted-lists.java └── README.md ├── 0024-swap-nodes-in-pairs ├── 0024-swap-nodes-in-pairs.java ├── NOTES.md └── README.md ├── 0025-reverse-nodes-in-k-group ├── 0025-reverse-nodes-in-k-group.java └── README.md ├── 0028-find-the-index-of-the-first-occurrence-in-a-string ├── 0028-find-the-index-of-the-first-occurrence-in-a-string.java ├── NOTES.md └── README.md ├── 0029-divide-two-integers ├── 0029-divide-two-integers.java └── README.md ├── 0032-longest-valid-parentheses ├── 0032-longest-valid-parentheses.java ├── NOTES.md └── README.md ├── 0033-search-in-rotated-sorted-array ├── 0033-search-in-rotated-sorted-array.java └── README.md ├── 0034-find-first-and-last-position-of-element-in-sorted-array ├── 0034-find-first-and-last-position-of-element-in-sorted-array.java └── README.md ├── 0038-count-and-say ├── 0038-count-and-say.java └── README.md ├── 0039-combination-sum ├── 0039-combination-sum.java └── README.md ├── 0045-jump-game-ii ├── 0045-jump-game-ii.java └── README.md ├── 0048-rotate-image ├── 0048-rotate-image.java └── README.md ├── 0049-group-anagrams ├── 0049-group-anagrams.java └── README.md ├── 0050-powx-n ├── 0050-powx-n.java ├── NOTES.md └── README.md ├── 0053-maximum-subarray ├── 0053-maximum-subarray.java └── README.md ├── 0055-jump-game ├── 0055-jump-game.java └── README.md ├── 0056-merge-intervals ├── 0056-merge-intervals.java └── README.md ├── 0057-insert-interval ├── 0057-insert-interval.java └── README.md ├── 0058-length-of-last-word ├── 0058-length-of-last-word.java ├── NOTES.md └── README.md ├── 0061-rotate-list ├── 0061-rotate-list.java ├── NOTES.md └── README.md ├── 0062-unique-paths ├── 0062-unique-paths.java └── README.md ├── 0063-unique-paths-ii ├── 0063-unique-paths-ii.java └── README.md ├── 0064-minimum-path-sum ├── 0064-minimum-path-sum.java └── README.md ├── 0069-sqrtx ├── 0069-sqrtx.java └── README.md ├── 0070-climbing-stairs ├── 0070-climbing-stairs.java └── README.md ├── 0073-set-matrix-zeroes ├── 0073-set-matrix-zeroes.java ├── NOTES.md └── README.md ├── 0075-sort-colors ├── 0075-sort-colors.java └── README.md ├── 0076-minimum-window-substring ├── 0076-minimum-window-substring.java └── README.md ├── 0078-subsets ├── 0078-subsets.java └── README.md ├── 0082-remove-duplicates-from-sorted-list-ii ├── 0082-remove-duplicates-from-sorted-list-ii.cpp └── README.md ├── 0083-remove-duplicates-from-sorted-list ├── 0083-remove-duplicates-from-sorted-list.java └── README.md ├── 0088-merge-sorted-array ├── 0088-merge-sorted-array.java ├── NOTES.md └── README.md ├── 0092-reverse-linked-list-ii ├── 0092-reverse-linked-list-ii.java └── README.md ├── 0094-binary-tree-inorder-traversal ├── 0094-binary-tree-inorder-traversal.java └── README.md ├── 0098-validate-binary-search-tree ├── 0098-validate-binary-search-tree.java └── README.md ├── 0100-same-tree ├── 0100-same-tree.java ├── NOTES.md └── README.md ├── 0102-binary-tree-level-order-traversal ├── 0102-binary-tree-level-order-traversal.java └── README.md ├── 0103-binary-tree-zigzag-level-order-traversal ├── 0103-binary-tree-zigzag-level-order-traversal.java └── README.md ├── 0104-maximum-depth-of-binary-tree ├── 0104-maximum-depth-of-binary-tree.java └── README.md ├── 0106-construct-binary-tree-from-inorder-and-postorder-traversal ├── 0106-construct-binary-tree-from-inorder-and-postorder-traversal.cpp └── README.md ├── 0108-convert-sorted-array-to-binary-search-tree ├── 0108-convert-sorted-array-to-binary-search-tree.java └── README.md ├── 0110-balanced-binary-tree ├── 0110-balanced-binary-tree.java └── README.md ├── 0112-path-sum ├── 0112-path-sum.java └── README.md ├── 0114-flatten-binary-tree-to-linked-list ├── 0114-flatten-binary-tree-to-linked-list.java └── README.md ├── 0116-populating-next-right-pointers-in-each-node ├── 0116-populating-next-right-pointers-in-each-node.java └── README.md ├── 0118-pascals-triangle ├── 0118-pascals-triangle.java └── README.md ├── 0119-pascals-triangle-ii ├── 0119-pascals-triangle-ii.java ├── NOTES.md └── README.md ├── 0120-triangle ├── 0120-triangle.java └── README.md ├── 0121-best-time-to-buy-and-sell-stock ├── 0121-best-time-to-buy-and-sell-stock.java ├── NOTES.md └── README.md ├── 0124-binary-tree-maximum-path-sum ├── 0124-binary-tree-maximum-path-sum.java └── README.md ├── 0125-valid-palindrome ├── 0125-valid-palindrome.java ├── NOTES.md └── README.md ├── 0128-longest-consecutive-sequence ├── 0128-longest-consecutive-sequence.java └── README.md ├── 0129-sum-root-to-leaf-numbers ├── 0129-sum-root-to-leaf-numbers.java └── README.md ├── 0133-clone-graph ├── 0133-clone-graph.java └── README.md ├── 0134-gas-station ├── 0134-gas-station.java └── README.md ├── 0138-copy-list-with-random-pointer ├── 0138-copy-list-with-random-pointer.java ├── NOTES.md └── README.md ├── 0141-linked-list-cycle ├── 0141-linked-list-cycle.java ├── NOTES.md └── README.md ├── 0142-linked-list-cycle-ii ├── 0142-linked-list-cycle-ii.java └── README.md ├── 0143-reorder-list ├── 0143-reorder-list.java └── README.md ├── 0144-binary-tree-preorder-traversal ├── 0144-binary-tree-preorder-traversal.java └── README.md ├── 0145-binary-tree-postorder-traversal ├── 0145-binary-tree-postorder-traversal.java ├── NOTES.md └── README.md ├── 0146-lru-cache ├── 0146-lru-cache.java └── README.md ├── 0149-max-points-on-a-line ├── 0149-max-points-on-a-line.java ├── NOTES.md └── README.md ├── 0150-evaluate-reverse-polish-notation ├── 0150-evaluate-reverse-polish-notation.java ├── NOTES.md └── README.md ├── 0151-reverse-words-in-a-string ├── 0151-reverse-words-in-a-string.java ├── NOTES.md └── README.md ├── 0152-maximum-product-subarray ├── 0152-maximum-product-subarray.java └── README.md ├── 0153-find-minimum-in-rotated-sorted-array ├── 0153-find-minimum-in-rotated-sorted-array.java ├── 0153-find-minimum-in-rotated-sorted-array.py └── README.md ├── 0155-min-stack ├── 0155-min-stack.java ├── NOTES.md └── README.md ├── 0160-intersection-of-two-linked-lists ├── 0160-intersection-of-two-linked-lists.java └── README.md ├── 0162-find-peak-element ├── 0162-find-peak-element.java └── README.md ├── 0167-two-sum-ii-input-array-is-sorted ├── 0167-two-sum-ii-input-array-is-sorted.java ├── NOTES.md └── README.md ├── 0169-majority-element ├── 0169-majority-element.java ├── NOTES.md └── README.md ├── 0175-combine-two-tables ├── 0175-combine-two-tables.sql └── NOTES.md ├── 0176-second-highest-salary ├── 0176-second-highest-salary.sql └── README.md ├── 0177-nth-highest-salary └── README.md ├── 0179-largest-number ├── 0179-largest-number.java ├── NOTES.md └── README.md ├── 0187-repeated-dna-sequences ├── 0187-repeated-dna-sequences.java └── README.md ├── 0189-rotate-array ├── 0189-rotate-array.java ├── NOTES.md └── README.md ├── 0191-number-of-1-bits ├── 0191-number-of-1-bits.java └── README.md ├── 0196-delete-duplicate-emails ├── 0196-delete-duplicate-emails.sql └── NOTES.md ├── 0198-house-robber ├── 0198-house-robber.java └── README.md ├── 0199-binary-tree-right-side-view ├── 0199-binary-tree-right-side-view.java └── README.md ├── 0200-number-of-islands ├── 0200-number-of-islands.java └── README.md ├── 0201-bitwise-and-of-numbers-range ├── 0201-bitwise-and-of-numbers-range.java └── README.md ├── 0205-isomorphic-strings ├── 0205-isomorphic-strings.java ├── NOTES.md └── README.md ├── 0206-reverse-linked-list ├── 0206-reverse-linked-list.java └── README.md ├── 0209-minimum-size-subarray-sum ├── 0209-minimum-size-subarray-sum.java └── README.md ├── 0213-house-robber-ii ├── 0213-house-robber-ii.java └── README.md ├── 0214-shortest-palindrome ├── 0214-shortest-palindrome.java ├── NOTES.md └── README.md ├── 0215-kth-largest-element-in-an-array ├── 0215-kth-largest-element-in-an-array.java ├── NOTES.md └── README.md ├── 0217-contains-duplicate ├── 0217-contains-duplicate.java └── README.md ├── 0225-implement-stack-using-queues ├── 0225-implement-stack-using-queues.java └── README.md ├── 0226-invert-binary-tree ├── 0226-invert-binary-tree.java └── README.md ├── 0229-majority-element-ii ├── 0229-majority-element-ii.java └── README.md ├── 0230-kth-smallest-element-in-a-bst ├── 0230-kth-smallest-element-in-a-bst.java └── README.md ├── 0232-implement-queue-using-stacks ├── 0232-implement-queue-using-stacks.java └── README.md ├── 0234-palindrome-linked-list ├── 0234-palindrome-linked-list.java └── README.md ├── 0235-lowest-common-ancestor-of-a-binary-search-tree ├── 0235-lowest-common-ancestor-of-a-binary-search-tree.java └── README.md ├── 0236-lowest-common-ancestor-of-a-binary-tree ├── 0236-lowest-common-ancestor-of-a-binary-tree.java └── README.md ├── 0237-delete-node-in-a-linked-list ├── 0237-delete-node-in-a-linked-list.java ├── NOTES.md └── README.md ├── 0238-product-of-array-except-self ├── 0238-product-of-array-except-self.java ├── NOTES.md └── README.md ├── 0239-sliding-window-maximum ├── 0239-sliding-window-maximum.java └── README.md ├── 0241-different-ways-to-add-parentheses ├── 0241-different-ways-to-add-parentheses.java ├── NOTES.md └── README.md ├── 0242-valid-anagram ├── 0242-valid-anagram.java ├── NOTES.md └── README.md ├── 0268-missing-number ├── 0268-missing-number.java └── README.md ├── 0283-move-zeroes ├── 0283-move-zeroes.java ├── NOTES.md └── README.md ├── 0287-find-the-duplicate-number ├── 0287-find-the-duplicate-number.java └── README.md ├── 0300-longest-increasing-subsequence ├── 0300-longest-increasing-subsequence.java ├── NOTES.md └── README.md ├── 0303-range-sum-query-immutable ├── 0303-range-sum-query-immutable.java └── README.md ├── 0322-coin-change ├── 0322-coin-change.java └── README.md ├── 0326-power-of-three ├── 0326-power-of-three.java └── README.md ├── 0328-odd-even-linked-list ├── 0328-odd-even-linked-list.cpp └── README.md ├── 0334-increasing-triplet-subsequence ├── 0334-increasing-triplet-subsequence.java ├── NOTES.md └── README.md ├── 0337-house-robber-iii ├── 0337-house-robber-iii.java └── README.md ├── 0338-counting-bits ├── 0338-counting-bits.java └── README.md ├── 0342-power-of-four ├── 0342-power-of-four.java └── README.md ├── 0345-reverse-vowels-of-a-string ├── 0345-reverse-vowels-of-a-string.java └── README.md ├── 0347-top-k-frequent-elements ├── 0347-top-k-frequent-elements.java └── README.md ├── 0350-intersection-of-two-arrays-ii ├── 0350-intersection-of-two-arrays-ii.java ├── NOTES.md └── README.md ├── 0374-guess-number-higher-or-lower ├── 0374-guess-number-higher-or-lower.java └── README.md ├── 0380-insert-delete-getrandom-o1 └── README.md ├── 0386-lexicographical-numbers ├── 0386-lexicographical-numbers.java └── README.md ├── 0392-is-subsequence ├── 0392-is-subsequence.java ├── NOTES.md └── README.md ├── 0402-remove-k-digits ├── 0402-remove-k-digits.java └── README.md ├── 0404-sum-of-left-leaves ├── 0404-sum-of-left-leaves.java └── README.md ├── 0416-partition-equal-subset-sum ├── 0416-partition-equal-subset-sum.java └── README.md ├── 0424-longest-repeating-character-replacement ├── 0424-longest-repeating-character-replacement.java └── README.md ├── 0435-non-overlapping-intervals ├── 0435-non-overlapping-intervals.java └── README.md ├── 0440-k-th-smallest-in-lexicographical-order ├── NOTES.md └── README.md ├── 0443-string-compression ├── 0443-string-compression.java ├── NOTES.md └── README.md ├── 0451-sort-characters-by-frequency ├── 0451-sort-characters-by-frequency.java └── README.md ├── 0452-minimum-number-of-arrows-to-burst-balloons ├── 0452-minimum-number-of-arrows-to-burst-balloons.java ├── NOTES.md └── README.md ├── 0480-sliding-window-median ├── 0480-sliding-window-median.java └── README.md ├── 0485-max-consecutive-ones ├── 0485-max-consecutive-ones.java └── README.md ├── 0503-next-greater-element-ii ├── 0503-next-greater-element-ii.java └── README.md ├── 0509-fibonacci-number ├── NOTES.md └── README.md ├── 0513-find-bottom-left-tree-value ├── 0513-find-bottom-left-tree-value.java └── README.md ├── 0515-find-largest-value-in-each-tree-row └── README.md ├── 0516-longest-palindromic-subsequence ├── 0516-longest-palindromic-subsequence.java └── README.md ├── 0525-contiguous-array ├── 0525-contiguous-array.java └── README.md ├── 0539-minimum-time-difference ├── 0539-minimum-time-difference.java ├── NOTES.md └── README.md ├── 0540-single-element-in-a-sorted-array ├── 0540-single-element-in-a-sorted-array.java └── README.md ├── 0543-diameter-of-binary-tree ├── 0543-diameter-of-binary-tree.java └── README.md ├── 0560-subarray-sum-equals-k ├── 0560-subarray-sum-equals-k.java └── README.md ├── 0584-find-customer-referee ├── 0584-find-customer-referee.sql └── README.md ├── 0605-can-place-flowers ├── 0605-can-place-flowers.java ├── NOTES.md └── README.md ├── 0621-task-scheduler ├── 0621-task-scheduler.java ├── NOTES.md └── README.md ├── 0637-average-of-levels-in-binary-tree ├── 0637-average-of-levels-in-binary-tree.java └── README.md ├── 0643-maximum-average-subarray-i ├── 0643-maximum-average-subarray-i.java ├── NOTES.md └── README.md ├── 0713-subarray-product-less-than-k ├── 0713-subarray-product-less-than-k.java └── README.md ├── 0724-find-pivot-index ├── 0724-find-pivot-index.java ├── NOTES.md └── README.md ├── 0725-split-linked-list-in-parts ├── 0725-split-linked-list-in-parts.java └── README.md ├── 0735-asteroid-collision ├── 0735-asteroid-collision.java └── README.md ├── 0739-daily-temperatures ├── 0739-daily-temperatures.java └── README.md ├── 0763-partition-labels ├── 0763-partition-labels.java ├── NOTES.md └── README.md ├── 0768-partition-labels ├── 0768-partition-labels.java └── README.md ├── 0784-insert-into-a-binary-search-tree ├── 0784-insert-into-a-binary-search-tree.java └── README.md ├── 0820-find-eventual-safe-states ├── 0820-find-eventual-safe-states.java └── README.md ├── 0838-design-linked-list ├── 0838-design-linked-list.java └── README.md ├── 0844-backspace-string-compare ├── 0844-backspace-string-compare.java ├── NOTES.md └── README.md ├── 0872-leaf-similar-trees ├── 0872-leaf-similar-trees.java ├── NOTES.md └── README.md ├── 0884-uncommon-words-from-two-sentences ├── 0884-uncommon-words-from-two-sentences.java ├── NOTES.md └── README.md ├── 0894-all-possible-full-binary-trees ├── 0894-all-possible-full-binary-trees.java ├── NOTES.md └── README.md ├── 0907-koko-eating-bananas ├── 0907-koko-eating-bananas.java └── README.md ├── 0908-middle-of-the-linked-list ├── 0908-middle-of-the-linked-list.java └── README.md ├── 0925-construct-binary-tree-from-preorder-and-postorder-traversal ├── 0925-construct-binary-tree-from-preorder-and-postorder-traversal.java └── README.md ├── 0926-flip-string-to-monotone-increasing ├── 0926-flip-string-to-monotone-increasing.java ├── NOTES.md └── README.md ├── 0937-online-stock-span ├── 0937-online-stock-span.java └── README.md ├── 0944-delete-columns-to-make-sorted ├── 0944-delete-columns-to-make-sorted.java ├── NOTES.md └── README.md ├── 0954-maximum-sum-circular-subarray ├── 0954-maximum-sum-circular-subarray.java └── README.md ├── 0966-binary-subarrays-with-sum ├── 0966-binary-subarrays-with-sum.java └── README.md ├── 0967-minimum-falling-path-sum ├── 0967-minimum-falling-path-sum.java └── README.md ├── 0988-flip-equivalent-binary-trees ├── 0988-flip-equivalent-binary-trees.java └── README.md ├── 0997-find-the-town-judge ├── NOTES.md └── README.md ├── 1-two-sum ├── 1-two-sum.java ├── NOTES.md └── README.md ├── 1004-max-consecutive-ones-iii ├── 1004-max-consecutive-ones-iii.java ├── NOTES.md └── README.md ├── 1008-construct-binary-search-tree-from-preorder-traversal ├── 1008-construct-binary-search-tree-from-preorder-traversal.java ├── NOTES.md └── README.md ├── 1009-complement-of-base-10-integer ├── 1009-complement-of-base-10-integer.java ├── NOTES.md └── README.md ├── 101-symmetric-tree ├── 101-symmetric-tree.java ├── NOTES.md └── README.md ├── 1014-k-closest-points-to-origin ├── 1014-k-closest-points-to-origin.java └── README.md ├── 1019-next-greater-node-in-linked-list ├── 1019-next-greater-node-in-linked-list.java ├── NOTES.md └── README.md ├── 102-binary-tree-level-order-traversal ├── 102-binary-tree-level-order-traversal.java ├── NOTES.md └── README.md ├── 1022-sum-of-root-to-leaf-binary-numbers ├── 1022-sum-of-root-to-leaf-binary-numbers.java ├── NOTES.md └── README.md ├── 1026-maximum-difference-between-node-and-ancestor ├── 1026-maximum-difference-between-node-and-ancestor.java ├── NOTES.md └── README.md ├── 1029-vertical-order-traversal-of-a-binary-tree ├── 1029-vertical-order-traversal-of-a-binary-tree.java └── README.md ├── 103-binary-tree-zigzag-level-order-traversal ├── 103-binary-tree-zigzag-level-order-traversal.java ├── NOTES.md └── README.md ├── 1030-smallest-string-starting-from-leaf ├── 1030-smallest-string-starting-from-leaf.java └── README.md ├── 1034-subarrays-with-k-different-integers └── README.md ├── 1038-binary-search-tree-to-greater-sum-tree ├── 1038-binary-search-tree-to-greater-sum-tree.java ├── NOTES.md └── README.md ├── 104-maximum-depth-of-binary-tree ├── 104-maximum-depth-of-binary-tree.java ├── NOTES.md └── README.md ├── 105-construct-binary-tree-from-preorder-and-inorder-traversal ├── 105-construct-binary-tree-from-preorder-and-inorder-traversal.java ├── NOTES.md └── README.md ├── 1050-construct-binary-search-tree-from-preorder-traversal ├── 1050-construct-binary-search-tree-from-preorder-traversal.java └── README.md ├── 1056-capacity-to-ship-packages-within-d-days ├── 1056-capacity-to-ship-packages-within-d-days.java └── README.md ├── 106-construct-binary-tree-from-inorder-and-postorder-traversal ├── 106-construct-binary-tree-from-inorder-and-postorder-traversal.java ├── NOTES.md └── README.md ├── 1061-lexicographically-smallest-equivalent-string ├── 1061-lexicographically-smallest-equivalent-string.java └── README.md ├── 107-binary-tree-level-order-traversal-ii ├── 107-binary-tree-level-order-traversal-ii.java ├── NOTES.md └── README.md ├── 1071-greatest-common-divisor-of-strings ├── 1071-greatest-common-divisor-of-strings.java ├── NOTES.md └── README.md ├── 1081-smallest-subsequence-of-distinct-characters ├── 1081-smallest-subsequence-of-distinct-characters.java ├── NOTES.md └── README.md ├── 1089-duplicate-zeros ├── 1089-duplicate-zeros.java └── README.md ├── 1093-recover-a-tree-from-preorder-traversal ├── 1093-recover-a-tree-from-preorder-traversal.java └── README.md ├── 11-container-with-most-water ├── 11-container-with-most-water.java ├── NOTES.md └── README.md ├── 1110-delete-nodes-and-return-forest ├── 1110-delete-nodes-and-return-forest.java ├── NOTES.md └── README.md ├── 1122-relative-sort-array ├── 1122-relative-sort-array.java ├── NOTES.md └── README.md ├── 1137-n-th-tribonacci-number ├── 1137-n-th-tribonacci-number.java ├── NOTES.md └── README.md ├── 1143-longest-common-subsequence ├── 1143-longest-common-subsequence.java ├── NOTES.md └── README.md ├── 1153-product-sales-analysis-i └── README.md ├── 116-populating-next-right-pointers-in-each-node ├── 116-populating-next-right-pointers-in-each-node.java ├── NOTES.md └── README.md ├── 1160-find-words-that-can-be-formed-by-characters ├── 1160-find-words-that-can-be-formed-by-characters.java ├── NOTES.md └── README.md ├── 1161-maximum-level-sum-of-a-binary-tree ├── 1161-maximum-level-sum-of-a-binary-tree.java ├── NOTES.md └── README.md ├── 117-populating-next-right-pointers-in-each-node-ii ├── 117-populating-next-right-pointers-in-each-node-ii.java ├── NOTES.md └── README.md ├── 1170-shortest-common-supersequence ├── 1170-shortest-common-supersequence.java └── README.md ├── 1171-remove-zero-sum-consecutive-nodes-from-linked-list ├── 1171-remove-zero-sum-consecutive-nodes-from-linked-list.java ├── NOTES.md └── README.md ├── 118-pascals-triangle ├── 118-pascals-triangle.java ├── NOTES.md └── README.md ├── 1190-reverse-substrings-between-each-pair-of-parentheses └── 1190-reverse-substrings-between-each-pair-of-parentheses.java ├── 1207-unique-number-of-occurrences ├── 1207-unique-number-of-occurrences.java ├── NOTES.md └── README.md ├── 121-best-time-to-buy-and-sell-stock ├── 121-best-time-to-buy-and-sell-stock.java ├── NOTES.md └── README.md ├── 1224-minimum-falling-path-sum-ii ├── 1224-minimum-falling-path-sum-ii.java └── README.md ├── 1249-minimum-remove-to-make-valid-parentheses ├── 1249-minimum-remove-to-make-valid-parentheses.java └── README.md ├── 1250-longest-common-subsequence ├── 1250-longest-common-subsequence.java └── README.md ├── 1258-article-views-i ├── 1258-article-views-i.sql └── README.md ├── 1261-find-elements-in-a-contaminated-binary-tree ├── 1261-find-elements-in-a-contaminated-binary-tree.java ├── NOTES.md └── README.md ├── 1266-minimum-time-visiting-all-points ├── 1266-minimum-time-visiting-all-points.java └── README.md ├── 128-longest-consecutive-sequence ├── 128-longest-consecutive-sequence.java └── NOTES.md ├── 1287-element-appearing-more-than-25-in-sorted-array ├── 1287-element-appearing-more-than-25-in-sorted-array.java ├── NOTES.md └── README.md ├── 129-sum-root-to-leaf-numbers ├── 129-sum-root-to-leaf-numbers.java ├── NOTES.md └── README.md ├── 1291-sequential-digits ├── 1291-sequential-digits.java ├── NOTES.md └── README.md ├── 1296-divide-array-in-sets-of-k-consecutive-numbers ├── 1296-divide-array-in-sets-of-k-consecutive-numbers.java ├── NOTES.md └── README.md ├── 1299-replace-elements-with-greatest-element-on-right-side ├── 1299-replace-elements-with-greatest-element-on-right-side.java ├── NOTES.md └── README.md ├── 1302-deepest-leaves-sum ├── 1302-deepest-leaves-sum.java ├── NOTES.md └── README.md ├── 1305-all-elements-in-two-binary-search-trees ├── 1305-all-elements-in-two-binary-search-trees.java ├── NOTES.md └── README.md ├── 1310-xor-queries-of-a-subarray ├── 1310-xor-queries-of-a-subarray.java └── README.md ├── 1315-sum-of-nodes-with-even-valued-grandparent ├── 1315-sum-of-nodes-with-even-valued-grandparent.java └── NOTES.md ├── 1331-rank-transform-of-an-array ├── 1331-rank-transform-of-an-array.java ├── NOTES.md └── README.md ├── 1335-maximum-candies-allocated-to-k-children ├── 1335-maximum-candies-allocated-to-k-children.java └── README.md ├── 134-gas-station ├── 134-gas-station.java ├── NOTES.md └── README.md ├── 136-single-number ├── 136-single-number.java ├── NOTES.md └── README.md ├── 1367-linked-list-in-binary-tree ├── 1367-linked-list-in-binary-tree.java ├── NOTES.md └── README.md ├── 1371-find-the-longest-substring-containing-vowels-in-even-counts ├── 1371-find-the-longest-substring-containing-vowels-in-even-counts.java └── README.md ├── 1373-maximum-sum-bst-in-binary-tree ├── 1373-maximum-sum-bst-in-binary-tree.java ├── NOTES.md └── README.md ├── 13745-606-153-find-minimum-in-rotated-sorted-array ├── 13745-606-153-find-minimum-in-rotated-sorted-array.py └── README.md ├── 138-copy-list-with-random-pointer ├── 138-copy-list-with-random-pointer.java ├── NOTES.md └── README.md ├── 1387-find-elements-in-a-contaminated-binary-tree ├── 1387-find-elements-in-a-contaminated-binary-tree.java └── README.md ├── 1390-four-divisors ├── 1390-four-divisors.java ├── NOTES.md └── README.md ├── 14-longest-common-prefix ├── 14-longest-common-prefix.java ├── NOTES.md └── README.md ├── 141-linked-list-cycle ├── 141-linked-list-cycle.java └── NOTES.md ├── 1414-find-the-minimum-number-of-fibonacci-numbers-whose-sum-is-k ├── 1414-find-the-minimum-number-of-fibonacci-numbers-whose-sum-is-k.java └── NOTES.md ├── 142-linked-list-cycle-ii ├── 142-linked-list-cycle-ii.java ├── NOTES.md └── README.md ├── 1421-find-numbers-with-even-number-of-digits ├── 1421-find-numbers-with-even-number-of-digits.java └── README.md ├── 1431-kids-with-the-greatest-number-of-candies ├── 1431-kids-with-the-greatest-number-of-candies.java ├── NOTES.md └── README.md ├── 1441-build-an-array-with-stack-operations ├── 1441-build-an-array-with-stack-operations.java └── NOTES.md ├── 1443-minimum-time-to-collect-all-apples-in-a-tree ├── 1443-minimum-time-to-collect-all-apples-in-a-tree.java ├── NOTES.md └── README.md ├── 1448-count-good-nodes-in-binary-tree ├── 1448-count-good-nodes-in-binary-tree.java ├── NOTES.md └── README.md ├── 1451-rearrange-words-in-a-sentence ├── 1451-rearrange-words-in-a-sentence.java ├── NOTES.md └── README.md ├── 1456-maximum-number-of-vowels-in-a-substring-of-given-length ├── 1456-maximum-number-of-vowels-in-a-substring-of-given-length.java ├── NOTES.md └── README.md ├── 1460-number-of-substrings-containing-all-three-characters ├── 1460-number-of-substrings-containing-all-three-characters.java └── README.md ├── 147-insertion-sort-list ├── 147-insertion-sort-list.java ├── NOTES.md └── README.md ├── 1476-subrectangle-queries ├── 1476-subrectangle-queries.java ├── NOTES.md └── README.md ├── 148-sort-list ├── 148-sort-list.java ├── NOTES.md └── README.md ├── 1480-running-sum-of-1d-array ├── 1480-running-sum-of-1d-array.java ├── NOTES.md └── README.md ├── 1491-average-salary-excluding-the-minimum-and-maximum-salary ├── 1491-average-salary-excluding-the-minimum-and-maximum-salary.java ├── NOTES.md └── README.md ├── 1493-longest-subarray-of-1s-after-deleting-one-element ├── 1493-longest-subarray-of-1s-after-deleting-one-element.java ├── NOTES.md └── README.md ├── 1497-check-if-array-pairs-are-divisible-by-k ├── 1497-check-if-array-pairs-are-divisible-by-k.java ├── NOTES.md └── README.md ├── 150-evaluate-reverse-polish-notation ├── 150-evaluate-reverse-polish-notation.java ├── NOTES.md └── README.md ├── 1508-range-sum-of-sorted-subarray-sums ├── 1508-range-sum-of-sorted-subarray-sums.java ├── NOTES.md └── README.md ├── 1509-minimum-difference-between-largest-and-smallest-value-in-three-moves ├── 1509-minimum-difference-between-largest-and-smallest-value-in-three-moves.java └── NOTES.md ├── 1509-replace-employee-id-with-the-unique-identifier ├── 1509-replace-employee-id-with-the-unique-identifier.sql └── README.md ├── 1518-water-bottles ├── 1518-water-bottles.java ├── NOTES.md └── README.md ├── 1519-number-of-nodes-in-the-sub-tree-with-the-same-label ├── 1519-number-of-nodes-in-the-sub-tree-with-the-same-label.java └── NOTES.md ├── 155-min-stack ├── 155-min-stack.java ├── NOTES.md └── README.md ├── 1550-three-consecutive-odds ├── 1550-three-consecutive-odds.java ├── NOTES.md └── README.md ├── 1582-special-positions-in-a-binary-matrix ├── 1582-special-positions-in-a-binary-matrix.java ├── NOTES.md └── README.md ├── 1598-crawler-log-folder ├── 1598-crawler-log-folder.java ├── NOTES.md └── README.md ├── 160-intersection-of-two-linked-lists ├── 160-intersection-of-two-linked-lists.java └── NOTES.md ├── 1609-even-odd-tree ├── 1609-even-odd-tree.java ├── NOTES.md └── README.md ├── 162-find-peak-element ├── 162-find-peak-element.java ├── NOTES.md └── README.md ├── 1631-number-of-sub-arrays-with-odd-sum ├── 1631-number-of-sub-arrays-with-odd-sum.java └── README.md ├── 1662-check-if-two-string-arrays-are-equivalent ├── 1662-check-if-two-string-arrays-are-equivalent.java ├── NOTES.md └── README.md ├── 167-two-sum-ii-input-array-is-sorted ├── 167-two-sum-ii-input-array-is-sorted.java ├── NOTES.md └── README.md ├── 1672-richest-customer-wealth ├── 1672-richest-customer-wealth.java ├── NOTES.md └── README.md ├── 1679-max-number-of-k-sum-pairs ├── 1679-max-number-of-k-sum-pairs.java ├── NOTES.md └── README.md ├── 1684-count-the-number-of-consistent-strings ├── 1684-count-the-number-of-consistent-strings.java ├── NOTES.md └── README.md ├── 1689-partitioning-into-minimum-number-of-deci-binary-numbers ├── 1689-partitioning-into-minimum-number-of-deci-binary-numbers.java ├── NOTES.md └── README.md ├── 169-majority-element ├── 169-majority-element.java ├── NOTES.md └── README.md ├── 17-letter-combinations-of-a-phone-number ├── 17-letter-combinations-of-a-phone-number.java ├── NOTES.md └── README.md ├── 1701-average-waiting-time ├── 1701-average-waiting-time.java ├── NOTES.md └── README.md ├── 1710-maximum-units-on-a-truck ├── 1710-maximum-units-on-a-truck.java ├── NOTES.md └── README.md ├── 1717-maximum-score-from-removing-substrings ├── 1717-maximum-score-from-removing-substrings.java └── README.md ├── 172-factorial-trailing-zeroes ├── 172-factorial-trailing-zeroes.java ├── NOTES.md └── README.md ├── 1721-swapping-nodes-in-a-linked-list ├── 1721-swapping-nodes-in-a-linked-list.java ├── NOTES.md └── README.md ├── 1724-customer-who-visited-but-did-not-make-any-transactions ├── 1724-customer-who-visited-but-did-not-make-any-transactions.sql └── README.md ├── 173-binary-search-tree-iterator ├── 173-binary-search-tree-iterator.java └── NOTES.md ├── 1732-find-the-highest-altitude ├── 1732-find-the-highest-altitude.java ├── NOTES.md └── README.md ├── 1768-merge-strings-alternately ├── 1768-merge-strings-alternately.java ├── NOTES.md └── README.md ├── 1791-find-center-of-star-graph ├── 1791-find-center-of-star-graph.java └── README.md ├── 1817-finding-the-users-active-minutes ├── 1817-finding-the-users-active-minutes.java ├── NOTES.md └── README.md ├── 182-duplicate-emails ├── 182-duplicate-emails.sql ├── NOTES.md └── README.md ├── 1822-sign-of-the-product-of-an-array ├── 1822-sign-of-the-product-of-an-array.java ├── NOTES.md └── README.md ├── 1823-find-the-winner-of-the-circular-game ├── 1823-find-the-winner-of-the-circular-game.java ├── NOTES.md └── README.md ├── 1827-invalid-tweets ├── 1827-invalid-tweets.sql └── README.md ├── 1833-maximum-ice-cream-bars ├── 1833-maximum-ice-cream-bars.java ├── NOTES.md └── README.md ├── 1845-seat-reservation-manager ├── 1845-seat-reservation-manager.java ├── NOTES.md └── README.md ├── 1846-maximum-element-after-decreasing-and-rearranging ├── 1846-maximum-element-after-decreasing-and-rearranging.java └── README.md ├── 1849-maximum-absolute-sum-of-any-subarray ├── 1849-maximum-absolute-sum-of-any-subarray.java └── README.md ├── 1889-check-if-number-is-a-sum-of-powers-of-three ├── 1889-check-if-number-is-a-sum-of-powers-of-three.java └── README.md ├── 19-remove-nth-node-from-end-of-list ├── 19-remove-nth-node-from-end-of-list.java └── NOTES.md ├── 1908-recyclable-and-low-fat-products ├── 1908-recyclable-and-low-fat-products.sql └── README.md ├── 1920-build-array-from-permutation ├── 1920-build-array-from-permutation.py └── README.md ├── 1945-sum-of-digits-of-string-after-convert ├── 1945-sum-of-digits-of-string-after-convert.java └── README.md ├── 1979-find-greatest-common-divisor-of-array ├── 1979-find-greatest-common-divisor-of-array.java ├── NOTES.md └── README.md ├── 198-house-robber ├── 198-house-robber.java ├── NOTES.md └── README.md ├── 1983-maximum-population-year ├── 1983-maximum-population-year.java └── README.md ├── 199-binary-tree-right-side-view ├── 199-binary-tree-right-side-view.java ├── NOTES.md └── README.md ├── 1991-find-the-middle-index-in-array ├── 1991-find-the-middle-index-in-array.java ├── NOTES.md └── README.md ├── 2-add-two-numbers ├── 2-add-two-numbers.java └── NOTES.md ├── 20-valid-parentheses ├── 20-valid-parentheses.java ├── NOTES.md └── README.md ├── 2000-reverse-prefix-of-word ├── 2000-reverse-prefix-of-word.java ├── NOTES.md └── README.md ├── 202-happy-number ├── 202-happy-number.java └── NOTES.md ├── 2021-remove-all-occurrences-of-a-substring ├── 2021-remove-all-occurrences-of-a-substring.java └── README.md ├── 2048-build-array-from-permutation ├── 2048-build-array-from-permutation.java └── README.md ├── 2058-find-the-minimum-and-maximum-number-of-nodes-between-critical-points ├── 2058-find-the-minimum-and-maximum-number-of-nodes-between-critical-points.java └── README.md ├── 2085-count-common-words-with-one-occurrence ├── 2085-count-common-words-with-one-occurrence.java └── README.md ├── 2089-find-target-indices-after-sorting-array ├── 2089-find-target-indices-after-sorting-array.java └── NOTES.md ├── 2090-number-of-ways-to-arrive-at-destination ├── 2090-number-of-ways-to-arrive-at-destination.java └── README.md ├── 2091-removing-minimum-and-maximum-from-array ├── 2091-removing-minimum-and-maximum-from-array.java ├── NOTES.md └── README.md ├── 21-merge-two-sorted-lists ├── 21-merge-two-sorted-lists.java └── NOTES.md ├── 2107-find-unique-binary-string ├── 2107-find-unique-binary-string.java └── README.md ├── 2131-longest-palindrome-by-concatenating-two-letter-words ├── 2131-longest-palindrome-by-concatenating-two-letter-words.java ├── NOTES.md └── README.md ├── 2133-check-if-every-row-and-column-contains-all-numbers ├── 2133-check-if-every-row-and-column-contains-all-numbers.java ├── NOTES.md └── README.md ├── 2138-divide-a-string-into-groups-of-size-k ├── 2138-divide-a-string-into-groups-of-size-k.java └── README.md ├── 2139-minimum-moves-to-reach-target-score ├── 2139-minimum-moves-to-reach-target-score.java ├── NOTES.md └── README.md ├── 2148-count-elements-with-strictly-smaller-and-greater-elements ├── 2148-count-elements-with-strictly-smaller-and-greater-elements.java ├── NOTES.md └── README.md ├── 2149-rearrange-array-elements-by-sign ├── 2149-rearrange-array-elements-by-sign.java ├── NOTES.md └── README.md ├── 215-kth-largest-element-in-an-array ├── 215-kth-largest-element-in-an-array.java ├── NOTES.md └── README.md ├── 2150-find-all-lonely-numbers-in-the-array ├── 2150-find-all-lonely-numbers-in-the-array.java ├── NOTES.md └── README.md ├── 2154-keep-multiplying-found-values-by-two ├── 2154-keep-multiplying-found-values-by-two.java └── README.md ├── 2160-minimum-operations-to-make-a-uni-value-grid ├── 2160-minimum-operations-to-make-a-uni-value-grid.java └── README.md ├── 2160-minimum-sum-of-four-digit-number-after-splitting-digits ├── 2160-minimum-sum-of-four-digit-number-after-splitting-digits.java ├── NOTES.md └── README.md ├── 2161-partition-array-according-to-given-pivot ├── 2161-partition-array-according-to-given-pivot.java └── README.md ├── 2164-sort-even-and-odd-indices-independently ├── 2164-sort-even-and-odd-indices-independently.java ├── NOTES.md └── README.md ├── 2165-smallest-value-of-the-rearranged-number ├── 2165-smallest-value-of-the-rearranged-number.java ├── NOTES.md └── README.md ├── 2166-design-bitset ├── 2166-design-bitset.java ├── NOTES.md └── README.md ├── 2174-next-greater-numerically-balanced-number ├── 2174-next-greater-numerically-balanced-number.java └── README.md ├── 2177-find-three-consecutive-integers-that-sum-to-a-given-number ├── 2177-find-three-consecutive-integers-that-sum-to-a-given-number.java ├── NOTES.md └── README.md ├── 2180-count-integers-with-even-digit-sum ├── 2180-count-integers-with-even-digit-sum.java └── README.md ├── 2181-merge-nodes-in-between-zeros ├── 2181-merge-nodes-in-between-zeros.java ├── NOTES.md └── README.md ├── 2183-count-array-pairs-divisible-by-k ├── 2183-count-array-pairs-divisible-by-k.java ├── NOTES.md └── README.md ├── 2190-most-frequent-number-following-key-in-an-array ├── 2190-most-frequent-number-following-key-in-an-array.java └── README.md ├── 2215-find-the-difference-of-two-arrays ├── 2215-find-the-difference-of-two-arrays.java ├── NOTES.md └── README.md ├── 2216-delete-the-middle-node-of-a-linked-list ├── 2216-delete-the-middle-node-of-a-linked-list.java └── README.md ├── 2220-find-all-possible-recipes-from-given-supplies ├── 2220-find-all-possible-recipes-from-given-supplies.java └── README.md ├── 2220-minimum-bit-flips-to-convert-number ├── 2220-minimum-bit-flips-to-convert-number.java └── README.md ├── 2244-minimum-rounds-to-complete-all-tasks ├── 2244-minimum-rounds-to-complete-all-tasks.java ├── NOTES.md └── README.md ├── 2246-longest-path-with-different-adjacent-characters ├── 2246-longest-path-with-different-adjacent-characters.java └── README.md ├── 225-implement-stack-using-queues ├── 225-implement-stack-using-queues.java ├── NOTES.md └── README.md ├── 2255-minimum-swaps-to-group-all-1s-together-ii ├── 2255-minimum-swaps-to-group-all-1s-together-ii.java └── README.md ├── 2264-largest-3-same-digit-number-in-string ├── 2264-largest-3-same-digit-number-in-string.java ├── NOTES.md └── README.md ├── 2265-partition-array-according-to-given-pivot ├── 2265-partition-array-according-to-given-pivot.java └── README.md ├── 228-summary-ranges ├── 228-summary-ranges.java ├── NOTES.md └── README.md ├── 23-merge-k-sorted-lists ├── 23-merge-k-sorted-lists.java ├── NOTES.md └── README.md ├── 230-kth-smallest-element-in-a-bst ├── 230-kth-smallest-element-in-a-bst.java └── NOTES.md ├── 2308-divide-array-into-equal-pairs ├── 2308-divide-array-into-equal-pairs.java └── README.md ├── 232-implement-queue-using-stacks ├── 232-implement-queue-using-stacks.java ├── NOTES.md └── README.md ├── 234-palindrome-linked-list └── README.md ├── 2352-equal-row-and-column-pairs ├── 2352-equal-row-and-column-pairs.java └── NOTES.md ├── 236-lowest-common-ancestor-of-a-binary-tree ├── 236-lowest-common-ancestor-of-a-binary-tree.java ├── NOTES.md └── README.md ├── 238-product-of-array-except-self ├── 238-product-of-array-except-self.java ├── NOTES.md └── README.md ├── 2390-removing-stars-from-a-string ├── 2390-removing-stars-from-a-string.java ├── NOTES.md └── README.md ├── 2394-count-subarrays-with-score-less-than-k ├── 2394-count-subarrays-with-score-less-than-k.java └── README.md ├── 24-swap-nodes-in-pairs ├── 24-swap-nodes-in-pairs.java └── README.md ├── 240-search-a-2d-matrix-ii ├── 240-search-a-2d-matrix-ii.java ├── NOTES.md └── README.md ├── 2405-optimal-partition-of-string ├── 2405-optimal-partition-of-string.java ├── NOTES.md └── README.md ├── 2419-longest-subarray-with-maximum-bitwise-and ├── 2419-longest-subarray-with-maximum-bitwise-and.java ├── NOTES.md └── README.md ├── 2421-number-of-good-paths ├── 2421-number-of-good-paths.java └── README.md ├── 2427-first-letter-to-appear-twice ├── 2427-first-letter-to-appear-twice.java └── README.md ├── 2448-count-number-of-bad-pairs ├── 2448-count-number-of-bad-pairs.java └── README.md ├── 2461-amount-of-time-for-binary-tree-to-be-infected ├── 2461-amount-of-time-for-binary-tree-to-be-infected.java └── README.md ├── 2463-minimum-recolors-to-get-k-consecutive-black-blocks ├── 2463-minimum-recolors-to-get-k-consecutive-black-blocks.java └── README.md ├── 2471-minimum-number-of-operations-to-sort-a-binary-tree-by-level ├── 2471-minimum-number-of-operations-to-sort-a-binary-tree-by-level.java └── README.md ├── 2478-longest-nice-subarray ├── 2478-longest-nice-subarray.java └── README.md ├── 2482-difference-between-ones-and-zeros-in-row-and-column ├── 2482-difference-between-ones-and-zeros-in-row-and-column.java ├── NOTES.md └── README.md ├── 2487-remove-nodes-from-linked-list ├── 2487-remove-nodes-from-linked-list.java ├── NOTES.md └── README.md ├── 2493-reverse-odd-levels-of-binary-tree ├── 2493-reverse-odd-levels-of-binary-tree.java └── README.md ├── 2551-apply-operations-to-an-array ├── 2551-apply-operations-to-an-array.java └── README.md ├── 2564-most-profitable-path-in-a-tree ├── 2564-most-profitable-path-in-a-tree.java └── README.md ├── 258-add-digits ├── 258-add-digits.java └── README.md ├── 2582-pass-the-pillow ├── 2582-pass-the-pillow.java ├── NOTES.md └── README.md ├── 2588-maximum-number-of-points-from-grid-queries ├── 2588-maximum-number-of-points-from-grid-queries.java └── README.md ├── 2610-closest-prime-numbers-in-range ├── 2610-closest-prime-numbers-in-range.java └── README.md ├── 2614-maximum-count-of-positive-integer-and-negative-integer ├── 2614-maximum-count-of-positive-integer-and-negative-integer.java └── README.md ├── 263-ugly-number ├── 263-ugly-number.java ├── NOTES.md └── README.md ├── 2649-count-total-number-of-colored-cells ├── 2649-count-total-number-of-colored-cells.java └── README.md ├── 2665-minimum-time-to-repair-cars ├── 2665-minimum-time-to-repair-cars.java └── README.md ├── 2681-put-marbles-in-bags ├── 2681-put-marbles-in-bags.java └── README.md ├── 2690-house-robber-iv ├── 2690-house-robber-iv.java └── README.md ├── 2707-extra-characters-in-a-string ├── 2707-extra-characters-in-a-string.java └── README.md ├── 2707-merge-two-2d-arrays-by-summing-values ├── 2707-merge-two-2d-arrays-by-summing-values.java └── README.md ├── 2751-robot-collisions ├── 2751-robot-collisions.java └── NOTES.md ├── 279-perfect-squares ├── 279-perfect-squares.java └── NOTES.md ├── 2793-count-the-number-of-complete-components ├── 2793-count-the-number-of-complete-components.java └── README.md ├── 2807-insert-greatest-common-divisors-in-linked-list ├── 2807-insert-greatest-common-divisors-in-linked-list.java └── README.md ├── 284-peeking-iterator ├── 284-peeking-iterator.java ├── NOTES.md └── README.md ├── 2869-minimum-operations-to-collect-elements ├── 2869-minimum-operations-to-collect-elements.java ├── NOTES.md └── README.md ├── 287-find-the-duplicate-number ├── 287-find-the-duplicate-number.java ├── NOTES.md └── README.md ├── 2888-minimum-index-of-a-valid-split ├── 2888-minimum-index-of-a-valid-split.java └── README.md ├── 290-word-pattern ├── 290-word-pattern.java ├── NOTES.md └── README.md ├── 295-find-median-from-data-stream ├── 295-find-median-from-data-stream.java └── NOTES.md ├── 297-serialize-and-deserialize-binary-tree ├── 297-serialize-and-deserialize-binary-tree.java ├── NOTES.md └── README.md ├── 300-longest-increasing-subsequence ├── 300-longest-increasing-subsequence.java ├── NOTES.md └── README.md ├── 3001-apply-operations-to-maximize-score ├── 3001-apply-operations-to-maximize-score.java └── README.md ├── 3075-maximize-happiness-of-selected-children ├── 3075-maximize-happiness-of-selected-children.java ├── NOTES.md └── README.md ├── 316-remove-duplicate-letters ├── 316-remove-duplicate-letters.java ├── NOTES.md └── README.md ├── 3172-divisible-and-non-divisible-sums-difference ├── 3172-divisible-and-non-divisible-sums-difference.java └── README.md ├── 3201-distribute-candies-among-children-ii ├── 3201-distribute-candies-among-children-ii.java └── README.md ├── 3213-count-subarrays-where-max-element-appears-at-least-k-times ├── 3213-count-subarrays-where-max-element-appears-at-least-k-times.java └── README.md ├── 3227-find-missing-and-repeated-values ├── 3227-find-missing-and-repeated-values.java └── README.md ├── 3242-count-elements-with-maximum-frequency ├── 3242-count-elements-with-maximum-frequency.java └── README.md ├── 328-odd-even-linked-list ├── 328-odd-even-linked-list.java └── NOTES.md ├── 33-search-in-rotated-sorted-array └── 33-search-in-rotated-sorted-array.java ├── 3332-minimum-operations-to-exceed-threshold-value-ii ├── 3332-minimum-operations-to-exceed-threshold-value-ii.java └── README.md ├── 3348-minimum-cost-walk-in-weighted-graph ├── 3348-minimum-cost-walk-in-weighted-graph.java └── README.md ├── 3372-longest-strictly-increasing-or-strictly-decreasing-subarray ├── 3372-longest-strictly-increasing-or-strictly-decreasing-subarray.java └── README.md ├── 338-counting-bits ├── 338-counting-bits.java ├── NOTES.md └── README.md ├── 3398-make-a-square-with-the-same-color ├── 3398-make-a-square-with-the-same-color.java └── README.md ├── 34-find-first-and-last-position-of-element-in-sorted-array ├── 34-find-first-and-last-position-of-element-in-sorted-array.java ├── NOTES.md └── README.md ├── 3430-count-days-without-meetings ├── 3430-count-days-without-meetings.java └── README.md ├── 344-reverse-string ├── 344-reverse-string.java └── README.md ├── 3447-clear-digits ├── 3447-clear-digits.java └── README.md ├── 347-top-k-frequent-elements ├── 347-top-k-frequent-elements.java ├── NOTES.md └── README.md ├── 3475-minimum-operations-to-make-binary-array-elements-equal-to-one-i ├── 3475-minimum-operations-to-make-binary-array-elements-equal-to-one-i.java └── README.md ├── 3483-alternating-groups-ii ├── 3483-alternating-groups-ii.java └── README.md ├── 350-intersection-of-two-arrays-ii ├── 350-intersection-of-two-arrays-ii.java ├── NOTES.md └── README.md ├── 3501-delete-nodes-from-linked-list-present-in-array ├── 3501-delete-nodes-from-linked-list-present-in-array.java └── README.md ├── 3541-report-spam-message ├── 3541-report-spam-message.java └── README.md ├── 3569-count-of-substrings-containing-every-vowel-and-k-consonants-ii ├── 3569-count-of-substrings-containing-every-vowel-and-k-consonants-ii.java └── README.md ├── 36-valid-sudoku ├── 36-valid-sudoku.java ├── NOTES.md └── README.md ├── 3643-zero-array-transformation-ii ├── 3643-zero-array-transformation-ii.java └── README.md ├── 3657-check-if-grid-can-be-cut-into-sections ├── 3657-check-if-grid-can-be-cut-into-sections.java └── README.md ├── 3685-count-subarrays-of-length-three-with-a-condition └── README.md ├── 371-sum-of-two-integers ├── 371-sum-of-two-integers.java ├── NOTES.md └── README.md ├── 380-insert-delete-getrandom-o1 ├── 380-insert-delete-getrandom-o1.java ├── NOTES.md └── README.md ├── 382-linked-list-random-node ├── 382-linked-list-random-node.java ├── NOTES.md └── README.md ├── 387-first-unique-character-in-a-string ├── 387-first-unique-character-in-a-string.java ├── NOTES.md └── README.md ├── 389-find-the-difference ├── 389-find-the-difference.java ├── NOTES.md └── README.md ├── 39-combination-sum ├── 39-combination-sum.java ├── NOTES.md └── README.md ├── 392-is-subsequence ├── 392-is-subsequence.java ├── NOTES.md └── README.md ├── 397-integer-replacement ├── 397-integer-replacement.java ├── NOTES.md └── README.md ├── 398-random-pick-index ├── 398-random-pick-index.java ├── NOTES.md └── README.md ├── 400-nth-digit ├── 400-nth-digit.java ├── NOTES.md └── README.md ├── 413-arithmetic-slices ├── 413-arithmetic-slices.java ├── NOTES.md └── README.md ├── 416-partition-equal-subset-sum ├── 416-partition-equal-subset-sum.java ├── NOTES.md └── README.md ├── 42-trapping-rain-water ├── 42-trapping-rain-water.java ├── NOTES.md └── README.md ├── 429-n-ary-tree-level-order-traversal ├── 429-n-ary-tree-level-order-traversal.java ├── NOTES.md └── README.md ├── 438-find-all-anagrams-in-a-string ├── 438-find-all-anagrams-in-a-string.java ├── NOTES.md └── README.md ├── 449-serialize-and-deserialize-bst ├── 449-serialize-and-deserialize-bst.java ├── NOTES.md └── README.md ├── 45-jump-game-ii ├── 45-jump-game-ii.java ├── NOTES.md └── README.md ├── 450-delete-node-in-a-bst ├── 450-delete-node-in-a-bst.java ├── NOTES.md └── README.md ├── 451-sort-characters-by-frequency ├── 451-sort-characters-by-frequency.java └── NOTES.md ├── 452-minimum-number-of-arrows-to-burst-balloons ├── 452-minimum-number-of-arrows-to-burst-balloons.java ├── NOTES.md └── README.md ├── 46-permutations ├── 46-permutations.java ├── NOTES.md └── README.md ├── 462-minimum-moves-to-equal-array-elements-ii ├── 462-minimum-moves-to-equal-array-elements-ii.java ├── NOTES.md └── README.md ├── 470-implement-rand10-using-rand7 ├── 470-implement-rand10-using-rand7.java ├── NOTES.md └── README.md ├── 48-rotate-image ├── 48-rotate-image.java ├── NOTES.md └── README.md ├── 494-target-sum ├── 494-target-sum.java ├── NOTES.md └── README.md ├── 496-next-greater-element-i ├── 496-next-greater-element-i.java ├── NOTES.md └── README.md ├── 509-fibonacci-number ├── 509-fibonacci-number.java ├── NOTES.md └── README.md ├── 511-game-play-analysis-i ├── 511-game-play-analysis-i.sql ├── NOTES.md └── README.md ├── 515-find-largest-value-in-each-tree-row ├── 515-find-largest-value-in-each-tree-row.java ├── NOTES.md └── README.md ├── 520-detect-capital ├── 520-detect-capital.java └── NOTES.md ├── 525-contiguous-array ├── 525-contiguous-array.java ├── NOTES.md └── README.md ├── 532-k-diff-pairs-in-an-array ├── 532-k-diff-pairs-in-an-array.java ├── NOTES.md └── README.md ├── 538-convert-bst-to-greater-tree ├── 538-convert-bst-to-greater-tree.java ├── NOTES.md └── README.md ├── 54-spiral-matrix ├── 54-spiral-matrix.java ├── NOTES.md └── README.md ├── 540-single-element-in-a-sorted-array ├── 540-single-element-in-a-sorted-array.java └── NOTES.md ├── 55-jump-game ├── 55-jump-game.java ├── NOTES.md └── README.md ├── 560-subarray-sum-equals-k ├── 560-subarray-sum-equals-k.java ├── NOTES.md └── README.md ├── 567-permutation-in-string ├── 567-permutation-in-string.java ├── NOTES.md └── README.md ├── 575-distribute-candies ├── 575-distribute-candies.java ├── NOTES.md └── README.md ├── 59-spiral-matrix-ii ├── 59-spiral-matrix-ii.java ├── NOTES.md └── README.md ├── 595-big-countries ├── 595-big-countries.sql ├── NOTES.md └── README.md ├── 596-classes-more-than-5-students ├── 596-classes-more-than-5-students.sql ├── NOTES.md └── README.md ├── 605-can-place-flowers ├── 605-can-place-flowers.java ├── NOTES.md └── README.md ├── 606-construct-string-from-binary-tree ├── 606-construct-string-from-binary-tree.java ├── NOTES.md └── README.md ├── 61-rotate-list ├── 61-rotate-list.java └── NOTES.md ├── 62-unique-paths ├── 62-unique-paths.java ├── NOTES.md └── README.md ├── 623-add-one-row-to-tree ├── 623-add-one-row-to-tree.java ├── NOTES.md └── README.md ├── 63-unique-paths-ii ├── 63-unique-paths-ii.java ├── NOTES.md └── README.md ├── 637-average-of-levels-in-binary-tree ├── NOTES.md └── README.md ├── 64-minimum-path-sum ├── 64-minimum-path-sum.java ├── NOTES.md └── README.md ├── 645-set-mismatch ├── 645-set-mismatch.java └── README.md ├── 662-maximum-width-of-binary-tree ├── 662-maximum-width-of-binary-tree.java ├── NOTES.md └── README.md ├── 669-trim-a-binary-search-tree ├── 669-trim-a-binary-search-tree.java ├── NOTES.md └── README.md ├── 67-add-binary ├── 67-add-binary.java └── README.md ├── 671-second-minimum-node-in-a-binary-tree ├── 671-second-minimum-node-in-a-binary-tree.java ├── NOTES.md └── README.md ├── 695-max-area-of-island ├── 695-max-area-of-island.java ├── NOTES.md └── README.md ├── 70-climbing-stairs ├── 70-climbing-stairs.java └── README.md ├── 700-search-in-a-binary-search-tree ├── 700-search-in-a-binary-search-tree.java ├── NOTES.md └── README.md ├── 701-insert-into-a-binary-search-tree ├── 701-insert-into-a-binary-search-tree.java ├── NOTES.md └── README.md ├── 704-binary-search ├── 704-binary-search.java ├── NOTES.md └── README.md ├── 709-to-lower-case ├── 709-to-lower-case.java ├── NOTES.md └── README.md ├── 72-edit-distance ├── 72-edit-distance.java ├── NOTES.md └── README.md ├── 73-set-matrix-zeroes ├── 73-set-matrix-zeroes.java ├── NOTES.md └── README.md ├── 735-asteroid-collision ├── 735-asteroid-collision.java └── NOTES.md ├── 739-daily-temperatures ├── 739-daily-temperatures.java ├── NOTES.md └── README.md ├── 74-search-a-2d-matrix ├── 74-search-a-2d-matrix.java ├── NOTES.md └── README.md ├── 740-delete-and-earn ├── 740-delete-and-earn.java └── README.md ├── 746-min-cost-climbing-stairs ├── 746-min-cost-climbing-stairs.java ├── NOTES.md └── README.md ├── 747-largest-number-at-least-twice-of-others ├── 747-largest-number-at-least-twice-of-others.java ├── NOTES.md └── README.md ├── 75-sort-colors ├── 75-sort-colors.java ├── NOTES.md └── README.md ├── 78-subsets ├── 78-subsets.java ├── NOTES.md └── README.md ├── 79-word-search ├── 79-word-search.java ├── NOTES.md └── README.md ├── 799-champagne-tower ├── 799-champagne-tower.java ├── NOTES.md └── README.md ├── 8-string-to-integer-atoi ├── 8-string-to-integer-atoi.java ├── NOTES.md └── README.md ├── 807-max-increase-to-keep-city-skyline ├── 807-max-increase-to-keep-city-skyline.java ├── NOTES.md └── README.md ├── 814-binary-tree-pruning ├── 814-binary-tree-pruning.c ├── 814-binary-tree-pruning.java ├── NOTES.md └── README.md ├── 82-remove-duplicates-from-sorted-list-ii ├── 82-remove-duplicates-from-sorted-list-ii.java ├── NOTES.md └── README.md ├── 846-hand-of-straights ├── 846-hand-of-straights.java ├── NOTES.md └── README.md ├── 849-maximize-distance-to-closest-person ├── 849-maximize-distance-to-closest-person.java ├── NOTES.md └── README.md ├── 852-peak-index-in-a-mountain-array ├── 852-peak-index-in-a-mountain-array.java ├── NOTES.md └── README.md ├── 867-transpose-matrix ├── 867-transpose-matrix.java ├── NOTES.md └── README.md ├── 875-koko-eating-bananas ├── 875-koko-eating-bananas.java ├── NOTES.md └── README.md ├── 88-merge-sorted-array ├── 88-merge-sorted-array.java ├── NOTES.md └── README.md ├── 889-construct-binary-tree-from-preorder-and-postorder-traversal ├── 889-construct-binary-tree-from-preorder-and-postorder-traversal.java ├── NOTES.md └── README.md ├── 890-find-and-replace-pattern ├── 890-find-and-replace-pattern.java ├── NOTES.md └── README.md ├── 9-palindrome-number ├── 9-palindrome-number.cpp ├── 9-palindrome-number.java ├── NOTES.md └── README.md ├── 931-minimum-falling-path-sum └── 931-minimum-falling-path-sum.java ├── 94-binary-tree-inorder-traversal ├── 94-binary-tree-inorder-traversal.java ├── NOTES.md └── README.md ├── 941-valid-mountain-array ├── 941-valid-mountain-array.java ├── NOTES.md └── README.md ├── 946-validate-stack-sequences ├── 946-validate-stack-sequences.java ├── NOTES.md └── README.md ├── 96-unique-binary-search-trees ├── 96-unique-binary-search-trees.java ├── NOTES.md └── README.md ├── 969-pancake-sorting ├── 969-pancake-sorting.java ├── NOTES.md └── README.md ├── 973-k-closest-points-to-origin ├── 973-k-closest-points-to-origin.java ├── NOTES.md └── README.md ├── 991-broken-calculator ├── 991-broken-calculator.java ├── NOTES.md └── README.md ├── Binary Search - GFG ├── README.md └── binary-search.java ├── Bottom View of Binary Tree - GFG ├── README.md └── bottom-view-of-binary-tree.java ├── Buildings receiving sunlight - GFG ├── README.md └── buildings-receiving-sunlight.java ├── Check for BST - GFG ├── README.md └── check-for-bst.java ├── Check if Linked List is Palindrome - GFG ├── README.md └── check-if-linked-list-is-palindrome.java ├── Connect Nodes at Same Level - GFG ├── README.md └── connect-nodes-at-same-level.java ├── Count distinct elements in every window - GFG ├── README.md └── count-distinct-elements-in-every-window.java ├── Count pairs in array divisible by K - GFG ├── README.md └── count-pairs-in-array-divisible-by-k.java ├── Detect Loop in linked list - GFG ├── README.md └── detect-loop-in-linked-list.java ├── Diameter of a Binary Tree - GFG ├── README.md └── diameter-of-a-binary-tree.java ├── Find Transition Point - GFG ├── README.md └── find-transition-point.java ├── Find duplicates in an array - GFG ├── README.md └── find-duplicates-in-an-array.java ├── Finding middle element in a linked list - GFG ├── README.md └── finding-middle-element-in-a-linked-list.java ├── GCD of two numbers - GFG ├── README.md └── gcd-of-two-numbers.java ├── Get minimum element from stack - GFG ├── README.md └── get-minimum-element-from-stack.java ├── Given a linked list of 0s, 1s and 2s, sort it. - GFG ├── README.md └── given-a-linked-list-of-0s-1s-and-2s-sort-it..java ├── Height of Binary Tree - GFG ├── README.md └── height-of-binary-tree.java ├── Inorder Successor in BST - GFG ├── README.md └── inorder-successor-in-bst.java ├── Intersection Point in Y Shapped Linked Lists - GFG ├── README.md └── intersection-point-in-y-shapped-linked-lists.java ├── Kadane's Algorithm - GFG ├── README.md └── kadanes-algorithm.java ├── Largest value in each level - GFG ├── README.md └── largest-value-in-each-level.java ├── Left View of Binary Tree - GFG ├── README.md └── left-view-of-binary-tree.java ├── Level order traversal in spiral form - GFG ├── README.md └── level-order-traversal-in-spiral-form.java ├── Lowest Common Ancestor in a Binary Tree - GFG ├── README.md └── lowest-common-ancestor-in-a-binary-tree.java ├── Max Sum Subarray of size K - GFG ├── README.md └── max-sum-subarray-of-size-k.java ├── Maximum no of 1's row - GFG ├── README.md └── maximum-no-of-1s-row.java ├── Minimum Operations - GFG ├── README.md └── minimum-operations.java ├── Missing number in array - GFG ├── README.md └── missing-number-in-array.java ├── Move all zeroes to end of array - GFG ├── README.md └── move-all-zeroes-to-end-of-array.java ├── Peak element - GFG ├── README.md └── peak-element.java ├── README.md ├── Rearrange a linked list - GFG ├── README.md └── rearrange-a-linked-list.java ├── Remove loop in Linked List - GFG ├── README.md └── remove-loop-in-linked-list.java ├── Rotate Array - GFG ├── README.md └── rotate-array.c ├── Rotate a Linked List - GFG ├── README.md └── rotate-a-linked-list.java ├── Subset Sum Problem - GFG └── subset-sum-problem.java ├── Sum Tree - GFG ├── README.md └── sum-tree.java ├── Top View of Binary Tree - GFG ├── README.md └── top-view-of-binary-tree.java ├── Trailing zeroes in factorial - GFG ├── README.md └── trailing-zeroes-in-factorial.java ├── Transform to Sum Tree - GFG └── README.md ├── Vertical Traversal of Binary Tree - GFG ├── README.md └── vertical-traversal-of-binary-tree.java ├── a-number-after-a-double-reversal ├── README.md └── a-number-after-a-double-reversal.java ├── add-digits ├── README.md └── add-digits.java ├── add-two-numbers-ii ├── README.md └── add-two-numbers-ii.java ├── add-two-numbers ├── README.md └── add-two-numbers.java ├── adding-spaces-to-a-string ├── README.md └── adding-spaces-to-a-string.java ├── apply-discount-every-n-orders ├── README.md └── apply-discount-every-n-orders.java ├── arranging-coins ├── README.md └── arranging-coins.java ├── array-partition-i ├── README.md └── array-partition-i.java ├── average-of-levels-in-binary-tree ├── README.md └── average-of-levels-in-binary-tree.java ├── balanced-binary-tree ├── README.md └── balanced-binary-tree.java ├── binary-search ├── README.md └── binary-search.java ├── binary-tree-inorder-traversal ├── README.md └── binary-tree-inorder-traversal.java ├── binary-tree-postorder-traversal ├── README.md └── binary-tree-postorder-traversal.java ├── binary-tree-preorder-traversal ├── README.md └── binary-tree-preorder-traversal.java ├── binary-tree-tilt ├── README.md └── binary-tree-tilt.java ├── bitwise-and-of-numbers-range ├── README.md ├── bitwise-and-of-numbers-range.cpp └── bitwise-and-of-numbers-range.java ├── build-array-from-permutation ├── README.md └── build-array-from-permutation.java ├── calculate-money-in-leetcode-bank ├── README.md └── calculate-money-in-leetcode-bank.java ├── check-if-a-word-occurs-as-a-prefix-of-any-word-in-a-sentence ├── README.md └── check-if-a-word-occurs-as-a-prefix-of-any-word-in-a-sentence.java ├── check-if-all-as-appears-before-all-bs ├── README.md └── check-if-all-as-appears-before-all-bs.java ├── check-if-one-string-swap-can-make-strings-equal ├── README.md └── check-if-one-string-swap-can-make-strings-equal.java ├── check-if-the-sentence-is-pangram ├── README.md └── check-if-the-sentence-is-pangram.java ├── check-if-two-string-arrays-are-equivalent ├── README.md └── check-if-two-string-arrays-are-equivalent.java ├── climbing-stairs ├── README.md ├── climbing-stairs.cpp └── climbing-stairs.java ├── complement-of-base-10-integer ├── README.md └── complement-of-base-10-integer.java ├── complex-number-multiplication ├── README.md └── complex-number-multiplication.java ├── concatenation-of-array ├── README.md └── concatenation-of-array.java ├── consecutive-characters ├── README.md └── consecutive-characters.java ├── contains-duplicate ├── README.md └── contains-duplicate.java ├── convert-1d-array-into-2d-array ├── README.md └── convert-1d-array-into-2d-array.java ├── convert-binary-number-in-a-linked-list-to-integer ├── README.md └── convert-binary-number-in-a-linked-list-to-integer.java ├── convert-sorted-array-to-binary-search-tree ├── README.md └── convert-sorted-array-to-binary-search-tree.java ├── convert-sorted-list-to-binary-search-tree ├── README.md └── convert-sorted-list-to-binary-search-tree.java ├── count-complete-tree-nodes ├── README.md └── count-complete-tree-nodes.java ├── count-items-matching-a-rule ├── README.md └── count-items-matching-a-rule.java ├── count-negative-numbers-in-a-sorted-matrix ├── README.md └── count-negative-numbers-in-a-sorted-matrix.java ├── count-number-of-pairs-with-absolute-difference-k ├── README.md └── count-number-of-pairs-with-absolute-difference-k.java ├── count-odd-numbers-in-an-interval-range ├── README.md └── count-odd-numbers-in-an-interval-range.java ├── count-primes ├── README.md └── count-primes.java ├── create-target-array-in-the-given-order ├── README.md └── create-target-array-in-the-given-order.java ├── delete-leaves-with-a-given-value ├── README.md └── delete-leaves-with-a-given-value.java ├── delete-node-in-a-linked-list ├── README.md └── delete-node-in-a-linked-list.java ├── delete-the-middle-node-of-a-linked-list ├── README.md └── delete-the-middle-node-of-a-linked-list.java ├── design-a-stack-with-increment-operation ├── README.md └── design-a-stack-with-increment-operation.java ├── design-browser-history ├── README.md └── design-browser-history.java ├── design-circular-queue ├── README.md └── design-circular-queue.java ├── design-linked-list ├── README.md └── design-linked-list.java ├── destroying-asteroids ├── README.md └── destroying-asteroids.java ├── detect-capital ├── README.md └── detect-capital.java ├── diameter-of-binary-tree ├── README.md └── diameter-of-binary-tree.java ├── encode-and-decode-tinyurl ├── README.md └── encode-and-decode-tinyurl.java ├── fibonacci-number ├── README.md └── fibonacci-number.java ├── final-value-of-variable-after-performing-operations ├── README.md └── final-value-of-variable-after-performing-operations.java ├── find-all-duplicates-in-an-array ├── README.md └── find-all-duplicates-in-an-array.java ├── find-first-and-last-position-of-element-in-sorted-array ├── README.md └── find-first-and-last-position-of-element-in-sorted-array.java ├── find-first-palindromic-string-in-the-array ├── README.md └── find-first-palindromic-string-in-the-array.java ├── find-minimum-in-rotated-sorted-array ├── README.md └── find-minimum-in-rotated-sorted-array.java ├── find-pivot-index ├── README.md └── find-pivot-index.java ├── find-the-duplicate-number ├── README.md └── find-the-duplicate-number.java ├── find-the-student-that-will-replace-the-chalk ├── README.md └── find-the-student-that-will-replace-the-chalk.java ├── find-the-town-judge ├── README.md └── find-the-town-judge.java ├── finding-pairs-with-a-certain-sum ├── README.md └── finding-pairs-with-a-certain-sum.java ├── first-bad-version ├── README.md └── first-bad-version.java ├── first-missing-positive ├── README.md └── first-missing-positive.java ├── first-unique-character-in-a-string ├── README.md └── first-unique-character-in-a-string.java ├── flatten-a-multilevel-doubly-linked-list ├── README.md └── flatten-a-multilevel-doubly-linked-list.java ├── flatten-binary-tree-to-linked-list ├── README.md └── flatten-binary-tree-to-linked-list.java ├── guess-number-higher-or-lower ├── README.md └── guess-number-higher-or-lower.java ├── implement-strstr ├── README.md └── implement-strstr.java ├── insert-into-a-binary-search-tree ├── README.md └── insert-into-a-binary-search-tree.java ├── intersection-of-two-arrays ├── README.md └── intersection-of-two-arrays.java ├── invert-binary-tree ├── README.md └── invert-binary-tree.java ├── kth-largest-element-in-an-array ├── README.md └── kth-largest-element-in-an-array.java ├── largest-perimeter-triangle ├── README.md └── largest-perimeter-triangle.java ├── length-of-last-word ├── README.md └── length-of-last-word.java ├── linked-list-cycle ├── README.md └── linked-list-cycle.java ├── linked-list-random-node ├── README.md └── linked-list-random-node.java ├── longest-increasing-subsequence ├── README.md └── longest-increasing-subsequence.java ├── longest-substring-without-repeating-characters ├── README.md └── longest-substring-without-repeating-characters.java ├── majority-element ├── README.md └── majority-element.java ├── make-two-arrays-equal-by-reversing-sub-arrays ├── README.md └── make-two-arrays-equal-by-reversing-sub-arrays.java ├── matrix-diagonal-sum ├── README.md └── matrix-diagonal-sum.java ├── max-consecutive-ones ├── README.md └── max-consecutive-ones.java ├── maximum-binary-tree ├── README.md └── maximum-binary-tree.java ├── maximum-depth-of-binary-tree ├── README.md └── maximum-depth-of-binary-tree.java ├── maximum-depth-of-n-ary-tree ├── README.md └── maximum-depth-of-n-ary-tree.java ├── maximum-ice-cream-bars ├── README.md └── maximum-ice-cream-bars.java ├── maximum-number-of-coins-you-can-get ├── README.md └── maximum-number-of-coins-you-can-get.java ├── maximum-product-difference-between-two-pairs ├── README.md └── maximum-product-difference-between-two-pairs.java ├── maximum-product-of-three-numbers ├── README.md └── maximum-product-of-three-numbers.java ├── maximum-product-of-two-elements-in-an-array ├── README.md └── maximum-product-of-two-elements-in-an-array.java ├── maximum-product-subarray ├── README.md └── maximum-product-subarray.java ├── maximum-subarray ├── README.md └── maximum-subarray.java ├── median-of-two-sorted-arrays ├── README.md └── median-of-two-sorted-arrays.java ├── merge-in-between-linked-lists ├── README.md └── merge-in-between-linked-lists.java ├── merge-two-sorted-lists ├── README.md └── merge-two-sorted-lists.java ├── middle-of-the-linked-list ├── README.md └── middle-of-the-linked-list.java ├── minimize-maximum-pair-sum-in-array ├── README.md └── minimize-maximum-pair-sum-in-array.java ├── minimum-absolute-difference ├── README.md └── minimum-absolute-difference.java ├── minimum-moves-to-equal-array-elements-ii ├── README.md └── minimum-moves-to-equal-array-elements-ii.java ├── minimum-number-of-operations-to-move-all-balls-to-each-box ├── README.md └── minimum-number-of-operations-to-move-all-balls-to-each-box.java ├── minimum-number-of-steps-to-make-two-strings-anagram ├── README.md └── minimum-number-of-steps-to-make-two-strings-anagram.java ├── minimum-operations-to-make-array-equal ├── README.md └── minimum-operations-to-make-array-equal.java ├── missing-number ├── README.md └── missing-number.java ├── move-zeroes ├── README.md └── move-zeroes.java ├── n-ary-tree-postorder-traversal ├── README.md └── n-ary-tree-postorder-traversal.java ├── n-ary-tree-preorder-traversal ├── README.md └── n-ary-tree-preorder-traversal.java ├── n-repeated-element-in-size-2n-array ├── README.md └── n-repeated-element-in-size-2n-array.java ├── number-complement ├── README.md └── number-complement.java ├── number-of-laser-beams-in-a-bank ├── README.md └── number-of-laser-beams-in-a-bank.java ├── number-of-segments-in-a-string ├── README.md └── number-of-segments-in-a-string.java ├── number-of-steps-to-reduce-a-number-to-zero ├── README.md └── number-of-steps-to-reduce-a-number-to-zero.java ├── odd-even-linked-list ├── README.md └── odd-even-linked-list.java ├── palindrome-linked-list ├── README.md └── palindrome-linked-list.java ├── palindrome-number ├── README.md └── palindrome-number.java ├── partition-list ├── README.md └── partition-list.java ├── partitioning-into-minimum-number-of-deci-binary-numbers ├── README.md └── partitioning-into-minimum-number-of-deci-binary-numbers.java ├── pascals-triangle-ii ├── README.md └── pascals-triangle-ii.java ├── pascals-triangle ├── README.md └── pascals-triangle.java ├── path-sum └── README.md ├── plus-one ├── README.md └── plus-one.java ├── power-of-two ├── README.md ├── power-of-two.java └── power-of-two.py ├── range-sum-of-bst ├── README.md └── range-sum-of-bst.java ├── reduce-array-size-to-the-half ├── README.md └── reduce-array-size-to-the-half.java ├── remove-all-adjacent-duplicates-in-string ├── README.md └── remove-all-adjacent-duplicates-in-string.java ├── remove-all-occurrences-of-a-substring ├── README.md └── remove-all-occurrences-of-a-substring.java ├── remove-duplicates-from-sorted-array ├── README.md └── remove-duplicates-from-sorted-array.java ├── remove-duplicates-from-sorted-list-ii ├── README.md └── remove-duplicates-from-sorted-list-ii.java ├── remove-element ├── README.md └── remove-element.java ├── remove-linked-list-elements ├── README.md └── remove-linked-list-elements.java ├── remove-nth-node-from-end-of-list ├── README.md └── remove-nth-node-from-end-of-list.java ├── reorder-list ├── README.md └── reorder-list.java ├── reordered-power-of-2 ├── README.md └── reordered-power-of-2.java ├── reverse-integer ├── README.md └── reverse-integer.java ├── reverse-linked-list-ii ├── README.md └── reverse-linked-list-ii.java ├── reverse-linked-list ├── README.md └── reverse-linked-list.java ├── reverse-nodes-in-k-group ├── README.md └── reverse-nodes-in-k-group.java ├── reverse-string ├── README.md └── reverse-string.java ├── reverse-words-in-a-string ├── README.md └── reverse-words-in-a-string.java ├── rotate-array ├── README.md └── rotate-array.java ├── rotate-list ├── README.md └── rotate-list.java ├── running-sum-of-1d-array ├── README.md └── running-sum-of-1d-array.java ├── same-tree ├── README.md └── same-tree.java ├── search-insert-position ├── README.md └── search-insert-position.java ├── second-largest-digit-in-a-string ├── README.md └── second-largest-digit-in-a-string.java ├── shuffle-an-array ├── README.md └── shuffle-an-array.java ├── sign-of-the-product-of-an-array ├── README.md └── sign-of-the-product-of-an-array.java ├── simple-bank-system ├── README.md └── simple-bank-system.java ├── single-element-in-a-sorted-array ├── README.md └── single-element-in-a-sorted-array.java ├── single-number-ii ├── README.md └── single-number-ii.java ├── single-number ├── README.md └── single-number.java ├── sort-an-array ├── README.md └── sort-an-array.java ├── sort-array-by-parity └── sort-array-by-parity.java ├── sort-colors ├── README.md └── sort-colors.java ├── sort-list ├── README.md └── sort-list.java ├── stats.json ├── subdomain-visit-count ├── README.md └── subdomain-visit-count.java ├── sum-of-digits-of-string-after-convert ├── README.md └── sum-of-digits-of-string-after-convert.java ├── sum-of-left-leaves ├── README.md └── sum-of-left-leaves.java ├── sum-of-nodes-with-even-valued-grandparent ├── README.md └── sum-of-nodes-with-even-valued-grandparent.java ├── sum-of-unique-elements ├── README.md └── sum-of-unique-elements.java ├── swap-nodes-in-pairs ├── README.md └── swap-nodes-in-pairs.java ├── swapping-nodes-in-a-linked-list ├── README.md └── swapping-nodes-in-a-linked-list.java ├── the-kth-factor-of-n ├── README.md └── the-kth-factor-of-n.java ├── time-needed-to-buy-tickets ├── README.md └── time-needed-to-buy-tickets.java ├── truncate-sentence ├── README.md └── truncate-sentence.java ├── two-sum-ii-input-array-is-sorted ├── README.md └── two-sum-ii-input-array-is-sorted.java ├── two-sum ├── README.md └── two-sum.java ├── unique-number-of-occurrences ├── README.md └── unique-number-of-occurrences.java ├── valid-parentheses ├── README.md └── valid-parentheses.java ├── valid-perfect-square ├── README.md └── valid-perfect-square.cpp ├── valid-triangle-number ├── README.md └── valid-triangle-number.java ├── validate-binary-search-tree ├── README.md └── validate-binary-search-tree.java ├── water-bottles ├── README.md └── water-bottles.java └── watering-plants ├── README.md └── watering-plants.java /0001-two-sum/0001-two-sum.cpp: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public: 3 | vector twoSum(vector& nums, int target) { 4 | for(int i=0;i map = new HashMap<>(); 4 | 5 | int[] ans = {-1,-1}; 6 | 7 | for(int i = 0;i s = new Stack<>(); 4 | s.push(-1); 5 | int maxLen = 0; 6 | for(int i = 0;i=arr.length-1) return totalJump; 10 | int maxJumpIndex = index+1; 11 | for(int i = index+1;i<=maxRange;i++){ 12 | if(i+arr[i]>=maxJumpIndex + arr[maxJumpIndex]) maxJumpIndex = i; 13 | } 14 | index = maxJumpIndex; 15 | } 16 | return totalJump; 17 | } 18 | } -------------------------------------------------------------------------------- /0050-powx-n/0050-powx-n.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public double myPow(double x, long n) { 3 | if(n<0) { 4 | n = -1*n; 5 | x = 1/x; 6 | } 7 | double ans = 1; 8 | while(n!=0){ 9 | int bit =(int) (n & 1); 10 | if(bit==1) ans = ans*x; 11 | x = x*x; 12 | n = n >> 1; 13 | } 14 | return ans; 15 | } 16 | } -------------------------------------------------------------------------------- /0050-powx-n/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /0053-maximum-subarray/0053-maximum-subarray.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int maxSubArray(int[] nums) { 3 | int maxSum = Integer.MIN_VALUE; 4 | int currSum = 0; 5 | for(int num: nums){ 6 | currSum+=num; 7 | maxSum = Math.max(maxSum,currSum); 8 | if(currSum<0) currSum = 0; 9 | } 10 | return maxSum; 11 | 12 | } 13 | } -------------------------------------------------------------------------------- /0058-length-of-last-word/0058-length-of-last-word.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int lengthOfLastWord(String s) { 3 | int index = s.length()-1; 4 | int size = 0; 5 | for(int i = s.length()-1;i!=-1;i--){ 6 | if(s.charAt(i)==' '){ 7 | if(size!=0) return size; 8 | continue; 9 | } 10 | size++; 11 | } 12 | return size; 13 | } 14 | } -------------------------------------------------------------------------------- /0058-length-of-last-word/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /0061-rotate-list/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /0069-sqrtx/0069-sqrtx.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int mySqrt(int x) { 3 | int low = 0; 4 | int high = x; 5 | int mid = low + (high-low)/2; 6 | int ans = mid; 7 | while(low<=high){ 8 | mid = low + (high-low)/2; 9 | if(1l*mid*mid<=x){ 10 | ans = mid; 11 | low = mid+1; 12 | }else{ 13 | high = mid-1; 14 | } 15 | } 16 | return ans; 17 | } 18 | } -------------------------------------------------------------------------------- /0073-set-matrix-zeroes/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /0088-merge-sorted-array/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /0100-same-tree/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /0119-pascals-triangle-ii/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /0121-best-time-to-buy-and-sell-stock/0121-best-time-to-buy-and-sell-stock.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int maxProfit(int[] prices) { 3 | int ans = 0; 4 | int n = prices.length; 5 | int maxTillNow = prices[n-1]; 6 | for(int i = n-2;i!=-1;i--){ 7 | ans = Math.max(ans,maxTillNow - prices[i]); 8 | maxTillNow = Math.max(maxTillNow,prices[i]); 9 | } 10 | return ans; 11 | } 12 | } -------------------------------------------------------------------------------- /0121-best-time-to-buy-and-sell-stock/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /0125-valid-palindrome/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /0134-gas-station/0134-gas-station.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int canCompleteCircuit(int[] gas, int[] cost) { 3 | int totalGas = 0; 4 | int currentGas = 0; 5 | int start = -1; 6 | for(int i = 0;inums[high]){ 10 | low = mid+1; 11 | }else { 12 | high = mid; 13 | } 14 | } 15 | return nums[low]; 16 | } 17 | } -------------------------------------------------------------------------------- /0153-find-minimum-in-rotated-sorted-array/0153-find-minimum-in-rotated-sorted-array.py: -------------------------------------------------------------------------------- 1 | class Solution: 2 | def findMin(self, nums: List[int]) -> int: 3 | left = 0 4 | right = len(nums) - 1 5 | while(leftnums[1]) return 0; 7 | if(nums[N-1]>nums[N-2]) return N-1; 8 | 9 | int low = 1; 10 | int high = N-2; 11 | 12 | while(low<=high){ 13 | int mid = low + (high - low)/2; 14 | 15 | if(nums[mid]>nums[mid-1] && nums[mid]>nums[mid+1]) return mid; 16 | else if(nums[mid]>nums[mid-1]) low = mid+1; 17 | else high = mid - 1; 18 | 19 | } 20 | return -1; 21 | } 22 | } -------------------------------------------------------------------------------- /0167-two-sum-ii-input-array-is-sorted/0167-two-sum-ii-input-array-is-sorted.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int[] twoSum(int[] numbers, int target) { 3 | int low = 0; 4 | int high = numbers.length - 1; 5 | int sum = numbers[low]+numbers[high]; 6 | while(sum!=target){ 7 | 8 | if(sum>target){ 9 | high--; 10 | }else{ 11 | low++; 12 | } 13 | sum = numbers[low]+numbers[high]; 14 | } 15 | int[] ans = {low+1,high+1}; 16 | return ans; 17 | } 18 | } -------------------------------------------------------------------------------- /0167-two-sum-ii-input-array-is-sorted/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /0169-majority-element/0169-majority-element.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int majorityElement(int[] nums) { 3 | int element = nums[0]; 4 | int count = 1; 5 | for(int i = 1;i (b + a).compareTo(a + b)); 8 | 9 | if (arr[0].equals("0")) { 10 | return "0"; 11 | } 12 | StringBuilder largestNum = new StringBuilder(); 13 | for (String numStr : arr) { 14 | largestNum.append(numStr); 15 | } 16 | 17 | return largestNum.toString(); 18 | } 19 | } -------------------------------------------------------------------------------- /0179-largest-number/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /0189-rotate-array/0189-rotate-array.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public void swap(int [] nums, int i, int j){ 3 | int temp = nums[i]; 4 | nums[i] = nums[j]; 5 | nums[j] = temp; 6 | } 7 | public void reverse(int[] nums, int start, int end){ 8 | while(start=nums.length) k = k%nums.length; 14 | if(k==0) return; 15 | reverse(nums,0,nums.length-1); 16 | reverse(nums,0,k-1); 17 | reverse(nums,k,nums.length-1); 18 | } 19 | } -------------------------------------------------------------------------------- /0189-rotate-array/NOTES.md: -------------------------------------------------------------------------------- 1 | reverse -------------------------------------------------------------------------------- /0191-number-of-1-bits/0191-number-of-1-bits.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int hammingWeight(int n) { 3 | int ans =0; 4 | while(n!=0){ 5 | if(n%2==1){ 6 | ans++; 7 | } 8 | n = n/2; 9 | } 10 | return ans; 11 | } 12 | } -------------------------------------------------------------------------------- /0196-delete-duplicate-emails/0196-delete-duplicate-emails.sql: -------------------------------------------------------------------------------- 1 | delete p1 from person p1,person p2 2 | where p1.email=p2.email and p1.id>p2.id; -------------------------------------------------------------------------------- /0196-delete-duplicate-emails/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /0201-bitwise-and-of-numbers-range/0201-bitwise-and-of-numbers-range.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int rangeBitwiseAnd(int left, int right) { 3 | int index = 0; 4 | while(left!=right){ 5 | left = left >> 1; 6 | right = right >> 1; 7 | index++; 8 | } 9 | return left << index; 10 | } 11 | } -------------------------------------------------------------------------------- /0205-isomorphic-strings/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /0209-minimum-size-subarray-sum/0209-minimum-size-subarray-sum.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int minSubArrayLen(int target, int[] nums) { 3 | int start = 0; 4 | int end = 0; 5 | int sum = 0; 6 | int ans = Integer.MAX_VALUE; 7 | while(end=target){ 10 | ans = Math.min(ans,end-start+1); 11 | sum-=nums[start]; 12 | start++; 13 | } 14 | end++; 15 | } 16 | if(ans == Integer.MAX_VALUE) return 0; 17 | return ans; 18 | } 19 | } -------------------------------------------------------------------------------- /0214-shortest-palindrome/0214-shortest-palindrome.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | 3 | public String shortestPalindrome(String s) { 4 | int length = s.length(); 5 | String reversedString = new StringBuilder(s).reverse().toString(); 6 | 7 | for (int i = 0; i < length; i++) { 8 | if ( 9 | s.substring(0, length - i).equals(reversedString.substring(i)) 10 | ) { 11 | return new StringBuilder(reversedString.substring(0, i)) 12 | .append(s) 13 | .toString(); 14 | } 15 | } 16 | return ""; 17 | } 18 | } -------------------------------------------------------------------------------- /0214-shortest-palindrome/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /0215-kth-largest-element-in-an-array/0215-kth-largest-element-in-an-array.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int findKthLargest(int[] nums, int k) { 3 | PriorityQueue pq = new PriorityQueue<>(); 4 | 5 | for(int num: nums){ 6 | pq.add(num); 7 | if(pq.size()>k) pq.remove(); 8 | } 9 | return pq.remove(); 10 | } 11 | } -------------------------------------------------------------------------------- /0215-kth-largest-element-in-an-array/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /0217-contains-duplicate/0217-contains-duplicate.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public boolean containsDuplicate(int[] nums) { 3 | HashSet seen = new HashSet<>(); 4 | for(int num: nums){ 5 | if(seen.contains(num)) return true; 6 | seen.add(num); 7 | } 8 | return false; 9 | } 10 | } -------------------------------------------------------------------------------- /0237-delete-node-in-a-linked-list/0237-delete-node-in-a-linked-list.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Definition for singly-linked list. 3 | * public class ListNode { 4 | * int val; 5 | * ListNode next; 6 | * ListNode(int x) { val = x; } 7 | * } 8 | */ 9 | class Solution { 10 | public void deleteNode(ListNode node) { 11 | node.val = node.next.val; 12 | node.next = node.next.next; 13 | return; 14 | } 15 | } -------------------------------------------------------------------------------- /0237-delete-node-in-a-linked-list/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /0238-product-of-array-except-self/0238-product-of-array-except-self.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int[] productExceptSelf(int[] nums) { 3 | int[] result = new int[nums.length]; 4 | result[0] = 1; 5 | for(int i = 1;i dq = new ArrayDeque<>(); 5 | int[] result = new int[n-k+1]; 6 | int currentIndex = 0; 7 | for(int i = 0;i=k-1) result[currentIndex++] = nums[dq.peekFirst()]; 12 | } 13 | return result; 14 | } 15 | } -------------------------------------------------------------------------------- /0241-different-ways-to-add-parentheses/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /0242-valid-anagram/0242-valid-anagram.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public boolean isAnagram(String s, String t) { 3 | HashMap map = new HashMap<>(); 4 | for(int i = 0;inums[j]){ 10 | dp[i] = Math.max(dp[i],dp[j]+1); 11 | } 12 | } 13 | } 14 | int ans =1; 15 | for(int num: dp){ 16 | ans = Math.max(ans,num); 17 | } 18 | return ans; 19 | } 20 | } -------------------------------------------------------------------------------- /0300-longest-increasing-subsequence/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /0326-power-of-three/0326-power-of-three.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public boolean isPowerOfThree(int n) { 3 | if(n<=0) return false; 4 | if(n==1) return true; 5 | while(n!=1){ 6 | if(n%3!=0) return false; 7 | n/=3; 8 | } 9 | return true; 10 | } 11 | } -------------------------------------------------------------------------------- /0334-increasing-triplet-subsequence/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /0338-counting-bits/0338-counting-bits.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int[] countBits(int n) { 3 | int[] ans = new int[n+1]; 4 | ans[0] = 0; 5 | for(int i = 1;i<=n;i++){ 6 | ans[i] = ans[i>>1]+(i%2); 7 | } 8 | return ans; 9 | } 10 | } -------------------------------------------------------------------------------- /0342-power-of-four/0342-power-of-four.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public boolean isPowerOfFour(int n) { 3 | if(n==1) return true; 4 | if(n<=0 || n%4 !=0) return false; 5 | 6 | while(n%4==0){ 7 | n = n/4; 8 | } 9 | return n==1; 10 | } 11 | } -------------------------------------------------------------------------------- /0350-intersection-of-two-arrays-ii/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /0392-is-subsequence/0392-is-subsequence.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public boolean isSubsequence(String s, String t) { 3 | if(t.length()Integer.compare(a[1],b[1])); 4 | int safe_intervals = 1; 5 | int prev_start = intervals[0][0]; 6 | int prev_end = intervals[0][1]; 7 | for(int i = 1;i Integer.compare(a[1],b[1])); 5 | int end = points[0][1]; 6 | for(int i = 0;i end){ 8 | res++; 9 | end = points[i][1]; 10 | } 11 | } 12 | return res; 13 | } 14 | } -------------------------------------------------------------------------------- /0452-minimum-number-of-arrows-to-burst-balloons/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /0485-max-consecutive-ones/0485-max-consecutive-ones.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int findMaxConsecutiveOnes(int[] nums) { 3 | int maxNo=0; 4 | int currNo=0; 5 | for (int i=0; i map = new HashMap<>(); 5 | int ans = 0; 6 | map.put(0,0); 7 | for(int i = 0;i map = new HashMap<>(); 5 | int sum =0; 6 | map.put(sum,1); 7 | for(int i = 0;i=k){ 10 | product = product/nums[start]; 11 | start++; 12 | } 13 | ans+=end-start+1; 14 | 15 | } 16 | 17 | return ans; 18 | 19 | } 20 | } -------------------------------------------------------------------------------- /0724-find-pivot-index/0724-find-pivot-index.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int pivotIndex(int[] nums) { 3 | long sum = 0; 4 | int left[] = new int[nums.length+1]; 5 | int right[] = new int[nums.length+1]; 6 | for(int i = 0;i s = new Stack<>(); 4 | int[] ans = new int[temperatures.length]; 5 | for(int i = 0;i map = new HashMap<>(); 4 | int[] arr = new int[2]; 5 | for(int i = 0; iheight[j]){ 8 | max = Math.max(max,(j-i)*height[j]); 9 | j--; 10 | }else{ 11 | max = Math.max(max,(j-i)*height[i]); 12 | i++; 13 | } 14 | } 15 | return max; 16 | } 17 | } -------------------------------------------------------------------------------- /11-container-with-most-water/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /1110-delete-nodes-and-return-forest/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /1122-relative-sort-array/1122-relative-sort-array.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int[] relativeSortArray(int[] arr1, int[] arr2) { 3 | int[] freq = new int[1001]; 4 | for(int ele: arr1) 5 | freq[ele]++; 6 | int index = 0; 7 | for(int ele: arr2){ 8 | while(freq[ele]>0){ 9 | arr1[index++] = ele; 10 | freq[ele]--; 11 | } 12 | } 13 | for(int i = 0;i<1001;i++){ 14 | while(freq[i]>0){ 15 | arr1[index++] = i; 16 | freq[i]--; 17 | } 18 | } 19 | return arr1; 20 | } 21 | } -------------------------------------------------------------------------------- /1122-relative-sort-array/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /1137-n-th-tribonacci-number/1137-n-th-tribonacci-number.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int tribonacci(int n) { 3 | if(n<2) return n; 4 | if(n==2) return 1; 5 | int first = 0; 6 | int second = 1; 7 | int third = 1; 8 | int current = first + second + third; 9 | while(--n!=1){ 10 | current = first + second + third; 11 | first = second; 12 | second = third; 13 | third = current; 14 | } 15 | return current; 16 | } 17 | } -------------------------------------------------------------------------------- /1137-n-th-tribonacci-number/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /1143-longest-common-subsequence/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /116-populating-next-right-pointers-in-each-node/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /1160-find-words-that-can-be-formed-by-characters/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /1161-maximum-level-sum-of-a-binary-tree/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /117-populating-next-right-pointers-in-each-node-ii/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /1171-remove-zero-sum-consecutive-nodes-from-linked-list/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /118-pascals-triangle/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /1207-unique-number-of-occurrences/1207-unique-number-of-occurrences.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public boolean uniqueOccurrences(int[] arr) { 3 | HashMap map = new HashMap<>(); 4 | for(int num: arr){ 5 | map.put(num, map.getOrDefault(num,0)+1); 6 | } 7 | boolean[] testArray = new boolean[1001]; 8 | for (Map.Entry mapElement : map.entrySet()) { 9 | int value = mapElement.getValue(); 10 | if(testArray[value]==true) return false; 11 | testArray[value] = true; 12 | } 13 | return true; 14 | } 15 | } -------------------------------------------------------------------------------- /1207-unique-number-of-occurrences/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /121-best-time-to-buy-and-sell-stock/121-best-time-to-buy-and-sell-stock.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int maxProfit(int[] prices) { 3 | int minTillNow = Integer.MAX_VALUE; 4 | int max = 0; 5 | for(int i = 0;imax) max = val; 8 | minTillNow = Math.min(minTillNow,prices[i]); 9 | } 10 | return max; 11 | } 12 | } -------------------------------------------------------------------------------- /121-best-time-to-buy-and-sell-stock/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /1258-article-views-i/1258-article-views-i.sql: -------------------------------------------------------------------------------- 1 | # Write your MySQL query statement below 2 | Select DISTINCT author_id as id from Views where author_id = viewer_id ORDER by author_id ; -------------------------------------------------------------------------------- /1261-find-elements-in-a-contaminated-binary-tree/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /1266-minimum-time-visiting-all-points/1266-minimum-time-visiting-all-points.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int minTimeToVisitAllPoints(int[][] points) { 3 | int ans = 0; 4 | for (int i = 0; i < points.length - 1; i++) { 5 | int currX = points[i][0]; 6 | int currY = points[i][1]; 7 | int targetX = points[i + 1][0]; 8 | int targetY = points[i + 1][1]; 9 | ans += Math.max(Math.abs(targetX - currX), Math.abs(targetY - currY)); 10 | } 11 | 12 | return ans; 13 | } 14 | } -------------------------------------------------------------------------------- /128-longest-consecutive-sequence/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /1287-element-appearing-more-than-25-in-sorted-array/1287-element-appearing-more-than-25-in-sorted-array.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int findSpecialInteger(int[] arr) { 3 | int target = (int) (0.25*arr.length); 4 | for(int i = 0;i=0){ 6 | int temp = arr[counter]; 7 | arr[counter] = greatest; 8 | greatest = Math.max(greatest,temp); 9 | counter--; 10 | } 11 | return arr; 12 | 13 | } 14 | } -------------------------------------------------------------------------------- /1299-replace-elements-with-greatest-element-on-right-side/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /1302-deepest-leaves-sum/1302-deepest-leaves-sum.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | 3 | public int depth(TreeNode root,int depth){ 4 | if(root == null) return depth; 5 | return Math.max(depth(root.left,depth),depth(root.right,depth)) + 1; 6 | } 7 | 8 | public int maxdepthSum(TreeNode root, int currDepth, int maxDepth){ 9 | if(root == null) return 0; 10 | if(currDepth == maxDepth) return root.val; 11 | return maxdepthSum(root.left,currDepth+1,maxDepth) + maxdepthSum(root.right,currDepth+1,maxDepth); 12 | } 13 | 14 | public int deepestLeavesSum(TreeNode root) { 15 | return maxdepthSum(root,1,depth(root,0)); 16 | } 17 | } -------------------------------------------------------------------------------- /1302-deepest-leaves-sum/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /1305-all-elements-in-two-binary-search-trees/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /1315-sum-of-nodes-with-even-valued-grandparent/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /1331-rank-transform-of-an-array/1331-rank-transform-of-an-array.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int[] arrayRankTransform(int[] arr) { 3 | int newArr[] = arr.clone(); 4 | Arrays.sort(arr); 5 | HashMap map = new HashMap<>(); 6 | int counter = 1; 7 | for(int i = 0;i int: 3 | left = 0 4 | right = len(nums) - 1 5 | while(left kidsWithCandies(int[] candies, int extraCandies) { 3 | int max = 0; 4 | for(int num: candies){ 5 | max = Math.max(max,num); 6 | } 7 | List list = new ArrayList<>(); 8 | for(int num: candies){ 9 | if(num+extraCandies >= max){ 10 | list.add(true); 11 | }else{ 12 | list.add(false); 13 | } 14 | } 15 | return list; 16 | } 17 | } -------------------------------------------------------------------------------- /1431-kids-with-the-greatest-number-of-candies/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /1441-build-an-array-with-stack-operations/1441-build-an-array-with-stack-operations.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public List buildArray(int[] target, int n) { 3 | List list = new ArrayList<>(); 4 | int index = 0; 5 | for(int i = 1;i<=n;i++){ 6 | if(index==target.length) break; 7 | if(target[index] == i){ 8 | list.add("Push"); 9 | index++; 10 | continue; 11 | } 12 | list.add("Push"); 13 | list.add("Pop"); 14 | } 15 | return list; 16 | } 17 | } -------------------------------------------------------------------------------- /1441-build-an-array-with-stack-operations/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /1443-minimum-time-to-collect-all-apples-in-a-tree/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /1448-count-good-nodes-in-binary-tree/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /1451-rearrange-words-in-a-sentence/1451-rearrange-words-in-a-sentence.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public String arrangeWords(String text) { 3 | String[] res = text.split(" "); 4 | Arrays.sort(res, (a, b)->Integer.compare(a.length(), b.length())); 5 | StringBuilder sb = new StringBuilder(text.length()); 6 | sb.append(Character.toUpperCase(res[0].charAt(0))); 7 | sb.append(res[0].substring(1,res[0].length())); 8 | for(int i = 1;i= numExchange){ 5 | int filledBottleAfterExchange = numBottles / numExchange; 6 | int leftEmptyBottles = numBottles % numExchange; 7 | ans+=filledBottleAfterExchange; 8 | numBottles = leftEmptyBottles + filledBottleAfterExchange; 9 | } 10 | return ans; 11 | } 12 | } -------------------------------------------------------------------------------- /1518-water-bottles/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /1519-number-of-nodes-in-the-sub-tree-with-the-same-label/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /155-min-stack/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /1550-three-consecutive-odds/1550-three-consecutive-odds.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public boolean threeConsecutiveOdds(int[] arr) { 3 | for(int i = 0;inums[mid+1]){ 9 | high = mid; 10 | }else 11 | low = mid+1; 12 | } 13 | return low; 14 | } 15 | } -------------------------------------------------------------------------------- /162-find-peak-element/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /1662-check-if-two-string-arrays-are-equivalent/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /167-two-sum-ii-input-array-is-sorted/167-two-sum-ii-input-array-is-sorted.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int[] twoSum(int[] arr,int target) { 3 | int[] result = {-1,-1}; 4 | int low = 0; 5 | int high = arr.length-1; 6 | while(lowtarget){ 12 | high--; 13 | }else{ 14 | low++; 15 | } 16 | } 17 | return result; 18 | } 19 | } -------------------------------------------------------------------------------- /167-two-sum-ii-input-array-is-sorted/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /1672-richest-customer-wealth/1672-richest-customer-wealth.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int maximumWealth(int[][] accounts) { 3 | int max = 0; 4 | for(int i =0;icurrentTime){ 8 | currentTime = customers[i][0]; 9 | } 10 | totalWaitingTime+=(currentTime+customers[i][1] - customers[i][0]) ; 11 | currentTime+=customers[i][1]; 12 | } 13 | return ((1.0)*(totalWaitingTime))/customers.length; 14 | } 15 | } -------------------------------------------------------------------------------- /1701-average-waiting-time/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /1710-maximum-units-on-a-truck/1710-maximum-units-on-a-truck.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int maximumUnits(int[][] boxTypes, int truckSize) { 3 | Arrays.sort(boxTypes, (a, b) -> Integer.compare(b[1], a[1])); 4 | int boxes = 0; 5 | for (int[] box : boxTypes) { 6 | if (truckSize >= box[0]) { 7 | boxes += box[0] * box[1]; 8 | truckSize -= box[0]; 9 | }else { 10 | boxes += truckSize * box[1]; 11 | return boxes; 12 | } 13 | } 14 | return boxes; 15 | } 16 | } -------------------------------------------------------------------------------- /1710-maximum-units-on-a-truck/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /172-factorial-trailing-zeroes/172-factorial-trailing-zeroes.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int trailingZeroes(int n) { 3 | while(n%5!=0){ 4 | n--; 5 | } 6 | int count = 0; 7 | while(n!=0){ 8 | n = n/5; 9 | count+=n; 10 | } 11 | return count; 12 | } 13 | } -------------------------------------------------------------------------------- /172-factorial-trailing-zeroes/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /1721-swapping-nodes-in-a-linked-list/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /1724-customer-who-visited-but-did-not-make-any-transactions/1724-customer-who-visited-but-did-not-make-any-transactions.sql: -------------------------------------------------------------------------------- 1 | # Write your MySQL query statement below 2 | SELECT customer_id, count(visit_id) AS count_no_trans FROM Visits WHERE visit_id NOT IN 3 | (Select visit_id FROM Transactions) GROUP BY customer_id; -------------------------------------------------------------------------------- /173-binary-search-tree-iterator/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /1732-find-the-highest-altitude/1732-find-the-highest-altitude.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int largestAltitude(int[] gain) { 3 | int low = 0; 4 | int ans = 0; 5 | for(int i = 0;i1; -------------------------------------------------------------------------------- /182-duplicate-emails/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /1822-sign-of-the-product-of-an-array/1822-sign-of-the-product-of-an-array.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int arraySign(int[] nums) { 3 | boolean negative = false; 4 | for(int val: nums){ 5 | if(val==0) return 0; 6 | else if(val<0) negative = !negative; 7 | } 8 | if(negative == false) return 1; 9 | return -1; 10 | } 11 | } -------------------------------------------------------------------------------- /1822-sign-of-the-product-of-an-array/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /1823-find-the-winner-of-the-circular-game/1823-find-the-winner-of-the-circular-game.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int findTheWinner(int n, int k) { 3 | Queue q = new LinkedList<>(); 4 | for(int i = 1;i<=n;i++) q.add(i); 5 | int counter = 0; 6 | while(q.size()!=1){ 7 | while(counter!=k-1){ 8 | q.add(q.remove()); 9 | counter++; 10 | } 11 | q.remove(); 12 | counter = 0; 13 | } 14 | return q.peek(); 15 | } 16 | } -------------------------------------------------------------------------------- /1823-find-the-winner-of-the-circular-game/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /1827-invalid-tweets/1827-invalid-tweets.sql: -------------------------------------------------------------------------------- 1 | # Write your MySQL query statement below 2 | SELECT tweet_id FROM Tweets where LENGTH(content) > 15; -------------------------------------------------------------------------------- /1833-maximum-ice-cream-bars/1833-maximum-ice-cream-bars.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int maxIceCream(int[] costs, int coins) { 3 | Arrays.sort(costs); 4 | int max = 0; 5 | int index = 0; 6 | while(costs[index]<=coins){ 7 | max++; 8 | coins-=costs[index]; 9 | index++; 10 | if(index==costs.length) break; 11 | } 12 | return max; 13 | } 14 | } -------------------------------------------------------------------------------- /1833-maximum-ice-cream-bars/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /1845-seat-reservation-manager/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /1849-maximum-absolute-sum-of-any-subarray/1849-maximum-absolute-sum-of-any-subarray.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int maxAbsoluteSum(int[] nums) { 3 | int maxSum = Integer.MIN_VALUE; 4 | int minSum = Integer.MAX_VALUE; 5 | int currMax = 0; 6 | int currMin = 0; 7 | for(int num: nums){ 8 | currMax +=num; 9 | currMin +=num; 10 | maxSum = Math.max(maxSum,currMax); 11 | minSum = Math.min(minSum,currMin); 12 | if(currMax<0) currMax = 0; 13 | if(currMin>0) currMin = 0; 14 | } 15 | return Math.max(maxSum,Math.abs(minSum)); 16 | } 17 | } -------------------------------------------------------------------------------- /19-remove-nth-node-from-end-of-list/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /1908-recyclable-and-low-fat-products/1908-recyclable-and-low-fat-products.sql: -------------------------------------------------------------------------------- 1 | # Write your MySQL query statement below 2 | SELECT product_id from Products where low_fats = 'Y' AND recyclable='Y'; -------------------------------------------------------------------------------- /1920-build-array-from-permutation/1920-build-array-from-permutation.py: -------------------------------------------------------------------------------- 1 | class Solution: 2 | def buildArray(self, nums: List[int]) -> List[int]: 3 | res = [] 4 | for i in nums: 5 | res.append(nums[i]); 6 | return res; -------------------------------------------------------------------------------- /1979-find-greatest-common-divisor-of-array/1979-find-greatest-common-divisor-of-array.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int gcd(int a, int b){ 3 | if(a == 0) return b; 4 | return gcd(b%a,a); 5 | } 6 | public int findGCD(int[] nums) { 7 | int min = Integer.MAX_VALUE; 8 | int max = Integer.MIN_VALUE; 9 | for(int num: nums){ 10 | min = Math.min(num,min); 11 | max = Math.max(num, max); 12 | } 13 | return gcd(max,min); 14 | } 15 | } -------------------------------------------------------------------------------- /1979-find-greatest-common-divisor-of-array/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /198-house-robber/198-house-robber.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int rob(int[] nums, int index, int[] dp){ 3 | if(index >= nums.length) return 0; 4 | if(dp[index]!=-1) return dp[index]; 5 | dp[index] = Math.max(nums[index] + rob(nums,index+2,dp),rob(nums,index+1,dp)); 6 | return dp[index]; 7 | } 8 | public int rob(int[] nums) { 9 | int[] dp = new int[nums.length]; 10 | for(int i = 0;imax){ 14 | max = temp; 15 | year = i; 16 | } 17 | } 18 | return year+1950; 19 | 20 | } 21 | } -------------------------------------------------------------------------------- /199-binary-tree-right-side-view/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /1991-find-the-middle-index-in-array/1991-find-the-middle-index-in-array.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int findMiddleIndex(int[] nums) { 3 | long sum = 0; 4 | int left[] = new int[nums.length+1]; 5 | int right[] = new int[nums.length+1]; 6 | for(int i = 0;i s1 = new Stack<>(); 4 | for(char c : s.toCharArray()){ 5 | if(c == '('){ 6 | s1.push(')'); 7 | }else if(c == '{'){ 8 | s1.push('}'); 9 | }else if( c=='['){ 10 | s1.push(']'); 11 | } 12 | else if(!(s1.isEmpty()) && s1.peek()==c){ 13 | s1.pop(); 14 | }else{ 15 | return false; 16 | } 17 | } 18 | return s1.isEmpty(); 19 | } 20 | } -------------------------------------------------------------------------------- /20-valid-parentheses/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /2000-reverse-prefix-of-word/2000-reverse-prefix-of-word.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public String reversePrefix(String word, char ch) { 3 | StringBuilder sb = new StringBuilder(word.length()); 4 | int found = 0; 5 | for(int i =0;i set = new HashSet<>(); 13 | while(n!=1){ 14 | int nextNum = sumOfDigitSquare(n); 15 | if(set.contains(nextNum)) return false; 16 | set.add(nextNum); 17 | n = nextNum; 18 | } 19 | return true; 20 | } 21 | } -------------------------------------------------------------------------------- /202-happy-number/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /2048-build-array-from-permutation/2048-build-array-from-permutation.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int[] buildArray(int[] nums) { 3 | int[] result = new int[nums.length]; 4 | int counter =0; 5 | while(counter targetIndices(int[] nums, int target) { 3 | int low = 0; 4 | int high = nums.length-1; 5 | for(int num: nums){ 6 | if(numtarget){ 9 | high--; 10 | } 11 | } 12 | List list = new ArrayList<>(); 13 | while(low<=high){ 14 | list.add(low); 15 | low++; 16 | } 17 | return list; 18 | } 19 | } -------------------------------------------------------------------------------- /2089-find-target-indices-after-sorting-array/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /2091-removing-minimum-and-maximum-from-array/2091-removing-minimum-and-maximum-from-array.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int minimumDeletions(int[] nums) { 3 | if(nums.length == 1) return 1; 4 | int max = 0; 5 | int min = 0; 6 | int len = nums.length; 7 | for(int i = 0;inums[max]) max = i; 10 | } 11 | if(min>max){ 12 | int temp = min; 13 | min = max; 14 | max = temp; 15 | } 16 | return Math.min(max+1,Math.min(len - min, min + 1 + len - max)); 17 | } 18 | } -------------------------------------------------------------------------------- /2091-removing-minimum-and-maximum-from-array/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /21-merge-two-sorted-lists/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /2131-longest-palindrome-by-concatenating-two-letter-words/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /2133-check-if-every-row-and-column-contains-all-numbers/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /2138-divide-a-string-into-groups-of-size-k/2138-divide-a-string-into-groups-of-size-k.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public String[] divideString(String s, int k, char fill) { 3 | int len = s.length(); 4 | int size = len/k; 5 | if(len%k != 0) size++; 6 | String[] res = new String[size]; 7 | int start = 0; 8 | int end = k; 9 | for(int i = 0;start pq = new PriorityQueue<>(); 4 | for(int num: nums){ 5 | pq.add(num); 6 | if(pq.size()>k) pq.remove(); 7 | } 8 | return pq.remove(); 9 | } 10 | } -------------------------------------------------------------------------------- /215-kth-largest-element-in-an-array/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /2150-find-all-lonely-numbers-in-the-array/2150-find-all-lonely-numbers-in-the-array.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public List findLonely(int[] nums) { 3 | HashMap map = new HashMap<>(nums.length); 4 | for(int num: nums){ 5 | map.put(num,map.getOrDefault(num,0)+1); 6 | } 7 | List list = new ArrayList<>(nums.length); 8 | for(int num: nums){ 9 | if(map.get(num)==1){ 10 | if(!map.containsKey(num+1) && !map.containsKey(num-1)) list.add(num); 11 | } 12 | } 13 | return list; 14 | } 15 | } -------------------------------------------------------------------------------- /2150-find-all-lonely-numbers-in-the-array/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /2154-keep-multiplying-found-values-by-two/2154-keep-multiplying-found-values-by-two.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int findFinalValue(int[] nums, int original) { 3 | Arrays.sort(nums); 4 | for(int num: nums){ 5 | if(num == original) 6 | original = original*2; 7 | } 8 | return original; 9 | } 10 | } -------------------------------------------------------------------------------- /2160-minimum-sum-of-four-digit-number-after-splitting-digits/2160-minimum-sum-of-four-digit-number-after-splitting-digits.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int minimumSum(int num) { 3 | int[] nums = new int[4]; 4 | int i = 0; 5 | while(num!=0){ 6 | nums[i++] = num%10; 7 | num = num/10; 8 | } 9 | Arrays.sort(nums); 10 | if(nums[0] == 0 && nums[1]==0 && nums[2] == 0) return nums[3]; 11 | if(nums[0]==0 && nums[1]==0) return nums[2]+nums[3]; 12 | if(nums[0]==0) return nums[1]*10 + nums[2] + nums[3]; 13 | return nums[0]*10+nums[3] + nums[1]*10 + nums[2]; 14 | } 15 | } -------------------------------------------------------------------------------- /2160-minimum-sum-of-four-digit-number-after-splitting-digits/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /2164-sort-even-and-odd-indices-independently/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /2165-smallest-value-of-the-rearranged-number/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /2166-design-bitset/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /2177-find-three-consecutive-integers-that-sum-to-a-given-number/2177-find-three-consecutive-integers-that-sum-to-a-given-number.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public long[] sumOfThree(long num) { 3 | num = num - 3 ; 4 | if(num%3 != 0) return new long[0]; 5 | long[] res = new long[3]; 6 | num = num/3; 7 | res[0] = num++; 8 | res[1] = num++; 9 | res[2] = num; 10 | return res; 11 | } 12 | } -------------------------------------------------------------------------------- /2177-find-three-consecutive-integers-that-sum-to-a-given-number/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /2180-count-integers-with-even-digit-sum/2180-count-integers-with-even-digit-sum.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int countEven(int num) { 3 | int temp = num; 4 | int sum = 0; 5 | while(num!=0){ 6 | sum+=(num%10); 7 | num = num/10; 8 | } 9 | return sum%2==0 ? temp/2 : (temp-1)/2; 10 | } 11 | } -------------------------------------------------------------------------------- /2181-merge-nodes-in-between-zeros/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /2183-count-array-pairs-divisible-by-k/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /2190-most-frequent-number-following-key-in-an-array/2190-most-frequent-number-following-key-in-an-array.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int mostFrequent(int[] nums, int key) { 3 | int[] freq = new int[1001]; 4 | for(int i = 0;i map = new HashMap<>(); 4 | for(int num: tasks){ 5 | map.put(num,map.getOrDefault(num,0)+1); 6 | } 7 | int ans = 0; 8 | for(int val: map.values()){ 9 | if(val == 1) return -1; 10 | if(val%3==0) ans+=val/3; 11 | else ans+=(val/3 +1); 12 | } 13 | return ans; 14 | } 15 | } -------------------------------------------------------------------------------- /2244-minimum-rounds-to-complete-all-tasks/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /225-implement-stack-using-queues/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /2264-largest-3-same-digit-number-in-string/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /228-summary-ranges/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /23-merge-k-sorted-lists/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /230-kth-smallest-element-in-a-bst/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /232-implement-queue-using-stacks/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /2352-equal-row-and-column-pairs/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /236-lowest-common-ancestor-of-a-binary-tree/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /238-product-of-array-except-self/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /2390-removing-stars-from-a-string/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /2394-count-subarrays-with-score-less-than-k/2394-count-subarrays-with-score-less-than-k.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public long countSubarrays(int[] nums, long k) { 3 | long currentSum = 0; 4 | int start,end; 5 | long ans =0; 6 | for(start = 0,end =0;end= k ){ 9 | currentSum -= nums[start]; 10 | start++; 11 | } 12 | // this portion 13 | ans+=(end-start+1); 14 | } 15 | return ans; 16 | } 17 | } -------------------------------------------------------------------------------- /240-search-a-2d-matrix-ii/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /2405-optimal-partition-of-string/2405-optimal-partition-of-string.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int partitionString(String s) { 3 | int ans = 1; 4 | Set set = new HashSet<>(); 5 | for(int i = 0;imaxNum){ 9 | ans = 1; 10 | count = 1; 11 | maxNum = num; 12 | }else{ 13 | count = 0; 14 | } 15 | ans = Math.max(ans,count); 16 | 17 | } 18 | return ans; 19 | } 20 | } -------------------------------------------------------------------------------- /2419-longest-subarray-with-maximum-bitwise-and/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /2448-count-number-of-bad-pairs/2448-count-number-of-bad-pairs.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public long countBadPairs(int[] nums) { 3 | long ans =(long) (nums.length)*(nums.length-1)/2; 4 | HashMap map = new HashMap<>(); 5 | 6 | for(int i = 0;i=10) sum = addDigits(sum); 9 | return sum; 10 | } 11 | } -------------------------------------------------------------------------------- /2582-pass-the-pillow/2582-pass-the-pillow.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int passThePillow(int n, int time) { 3 | int val = time/(n-1); 4 | int val2 = time%(n-1); 5 | if(val%2!=0) return n-val2; 6 | return val2+1; 7 | } 8 | } -------------------------------------------------------------------------------- /2582-pass-the-pillow/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /263-ugly-number/263-ugly-number.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public boolean isUgly(int n) { 3 | if(n<=0) return false; 4 | while(n%5 == 0) n = n/5; 5 | while(n%3 == 0) n = n/3; 6 | while(n%2 == 0) n = n/2; 7 | return n == 1; 8 | } 9 | } -------------------------------------------------------------------------------- /263-ugly-number/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /2649-count-total-number-of-colored-cells/2649-count-total-number-of-colored-cells.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public long coloredCells(int n) { 3 | 4 | // Approach 2: 1 + (4×1) + (4×2) +...+ (4×(n−1)) = 1 + 2 × (n−1) × n 5 | return 1 + (long) n * (n - 1) * 2; 6 | 7 | 8 | 9 | 10 | // // Approach 1: 1, 1+4, 1+4+8, 1+4+8+12 ... 11 | // long ans = 1; 12 | // long last = 4; 13 | // while(n--!=1){ 14 | // ans += last; 15 | // last +=4; 16 | // } 17 | // return ans; 18 | } 19 | } -------------------------------------------------------------------------------- /2681-put-marbles-in-bags/2681-put-marbles-in-bags.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public long putMarbles(int[] weights, int k) { 3 | ArrayList pairs = new ArrayList<>(); 4 | for(int i =1;i nums, int k) { 3 | HashSet set = new HashSet<>(); 4 | int ans = 0; 5 | for(int i = nums.size()-1;i!=-1;i--){ 6 | if(set.size()==k) return ans; 7 | if(nums.get(i) <= k){ 8 | set.add(nums.get(i)); 9 | 10 | } 11 | ans++; 12 | } 13 | return ans; 14 | } 15 | } -------------------------------------------------------------------------------- /2869-minimum-operations-to-collect-elements/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /287-find-the-duplicate-number/287-find-the-duplicate-number.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int findDuplicate(int[] arr) { 3 | for(int i = 0;i pq = new PriorityQueue<>(Comparator.reverseOrder()); 4 | for(int ele: happiness){ 5 | pq.add(ele); 6 | } 7 | long ans = 0; 8 | for(int i = 0;i minHeap = new PriorityQueue<>(); 4 | for(int num: nums){ 5 | minHeap.add((long) num); 6 | } 7 | int numOperations = 0; 8 | while(minHeap.peek() a[0])); 7 | int lastDay = 0; 8 | int totalMeetings = 0; 9 | for(int i = 0;i0 ? temp: 0; 12 | lastDay = Math.max(meetings[i][1]+1,lastDay); 13 | } 14 | return days-totalMeetings; 15 | 16 | 17 | } 18 | } -------------------------------------------------------------------------------- /344-reverse-string/344-reverse-string.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public void reverseString(char[] s) { 3 | int low = 0; 4 | int high = s.length - 1; 5 | while(low list = new ArrayList<>(); 8 | for(int num: nums2){ 9 | if(freq[num]!=0){ 10 | list.add(num); 11 | freq[num]--; 12 | } 13 | } 14 | int[] result =new int[list.size()]; 15 | for(int i = 0;i set = new HashSet<>(); 4 | for(String word: bannedWords) set.add(word); 5 | 6 | int count = 0; 7 | for(String word: message){ 8 | if(count == 2) break; 9 | else if(set.contains(word)) count++; 10 | } 11 | return count == 2; 12 | } 13 | } -------------------------------------------------------------------------------- /36-valid-sudoku/36-valid-sudoku.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public boolean isValidSudoku(char[][] board) { 3 | HashSet s = new HashSet<>(); 4 | for(int row = 0;row<9;row++){ 5 | for(int col = 0;col<9;col++){ 6 | if(board[row][col]!='.'){ 7 | if(!s.add("R" + row + board[row][col]) || !s.add("C" + col + board[row][col])) return false; 8 | if(!s.add("B" + ((row/3)*3 + (col/3)) +board[row][col])) return false; 9 | } 10 | } 11 | } 12 | return true; 13 | } 14 | } -------------------------------------------------------------------------------- /36-valid-sudoku/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /371-sum-of-two-integers/371-sum-of-two-integers.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int getSum(int a, int b) { 3 | if(b == 0) return a; 4 | if(a == 0) return b; 5 | return getSum(a^b, (a&b)<<1); 6 | } 7 | } -------------------------------------------------------------------------------- /371-sum-of-two-integers/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /380-insert-delete-getrandom-o1/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /382-linked-list-random-node/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /387-first-unique-character-in-a-string/387-first-unique-character-in-a-string.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int firstUniqChar(String s) { 3 | int[] freq = new int[26]; 4 | for(int i = 0;i Integer.compare(a[1],b[1])); 5 | int end = points[0][1]; 6 | for(int i = 0;i end){ 8 | res++; 9 | end = points[i][1]; 10 | } 11 | } 12 | return res; 13 | } 14 | } -------------------------------------------------------------------------------- /452-minimum-number-of-arrows-to-burst-balloons/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /46-permutations/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /462-minimum-moves-to-equal-array-elements-ii/462-minimum-moves-to-equal-array-elements-ii.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int minMoves2(int[] nums) { 3 | if(nums.length ==1) return 0; 4 | // if(nums.length == 2) return Math.abs(nums[1]-nums[0]); 5 | Arrays.sort(nums); 6 | int median = nums.length%2 != 0 ? nums[nums.length/2] : (nums[nums.length/2-1] + nums[nums.length/2])/2; 7 | int steps = 0; 8 | for(int num: nums){ 9 | steps+=(Math.abs(num-median)); 10 | } 11 | return steps; 12 | } 13 | } -------------------------------------------------------------------------------- /462-minimum-moves-to-equal-array-elements-ii/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /470-implement-rand10-using-rand7/470-implement-rand10-using-rand7.java: -------------------------------------------------------------------------------- 1 | /** 2 | * The rand7() API is already defined in the parent class SolBase. 3 | * public int rand7(); 4 | * @return a random integer in the range 1 to 7 5 | */ 6 | class Solution extends SolBase { 7 | public int rand10() { 8 | return (rand7()+rand7()+rand7() + rand7()+rand7())%10 + 1; 9 | } 10 | } -------------------------------------------------------------------------------- /470-implement-rand10-using-rand7/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /48-rotate-image/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /494-target-sum/494-target-sum.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | private int helper(int[] nums, int index, int val){ 3 | if(index == nums.length){ 4 | if(val == 0) return 1; 5 | else return 0; 6 | } 7 | return helper(nums,index+1,val-nums[index]) + helper(nums,index+1,val+nums[index]); 8 | 9 | } 10 | public int findTargetSumWays(int[] nums, int target) { 11 | return helper(nums,0,target); 12 | } 13 | } -------------------------------------------------------------------------------- /494-target-sum/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /496-next-greater-element-i/496-next-greater-element-i.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int[] nextGreaterElement(int[] nums1, int[] nums2) { 3 | HashMap map = new HashMap<>(); 4 | Stack s = new Stack<>(); 5 | for(int num: nums2){ 6 | while(!s.isEmpty() && s.peek() map = new HashMap<>(); 4 | int ans = 0; 5 | int sum = 0; 6 | map.put(0,1); 7 | for(int i = 0;i set = new HashSet<>(); 4 | for(int num: candyType){ 5 | set.add(num); 6 | } 7 | return Math.min(candyType.length/2,set.size()); 8 | } 9 | } -------------------------------------------------------------------------------- /575-distribute-candies/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /59-spiral-matrix-ii/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /595-big-countries/595-big-countries.sql: -------------------------------------------------------------------------------- 1 | # Write your MySQL query statement below 2 | SELECT name,population,area from World WHERE area >= 3000000 OR population >= 25000000; -------------------------------------------------------------------------------- /595-big-countries/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /596-classes-more-than-5-students/596-classes-more-than-5-students.sql: -------------------------------------------------------------------------------- 1 | # Write your MySQL query statement below 2 | SELECT class from Courses GROUP BY class having count(student)>=5; -------------------------------------------------------------------------------- /596-classes-more-than-5-students/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /605-can-place-flowers/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /606-construct-string-from-binary-tree/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /61-rotate-list/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /62-unique-paths/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /623-add-one-row-to-tree/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /63-unique-paths-ii/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /637-average-of-levels-in-binary-tree/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /64-minimum-path-sum/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /662-maximum-width-of-binary-tree/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /669-trim-a-binary-search-tree/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /67-add-binary/67-add-binary.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public String addBinary(String a, String b) { 3 | StringBuilder sb = new StringBuilder(); 4 | int i = a.length() -1; 5 | int j = b.length() -1; 6 | int carry = 0; 7 | while(i>=0 || j>=0){ 8 | int sum = carry; 9 | if(i>=0) sum += a.charAt(i--) - '0'; 10 | if(j>=0) sum += b.charAt(j--) - '0'; 11 | sb.append(sum % 2); 12 | carry = sum /2; 13 | } 14 | if(carry!=0) sb.append(carry); 15 | return sb.reverse().toString(); 16 | } 17 | } -------------------------------------------------------------------------------- /671-second-minimum-node-in-a-binary-tree/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /695-max-area-of-island/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /70-climbing-stairs/70-climbing-stairs.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int climbStairs(int n) { 3 | if(n < 3) return n; 4 | int first = 1; 5 | int second = 2; 6 | int ans = first+second; 7 | while(--n!=1){ 8 | ans = first+second; 9 | first = second; 10 | second = ans; 11 | } 12 | 13 | return ans; 14 | } 15 | } -------------------------------------------------------------------------------- /700-search-in-a-binary-search-tree/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /701-insert-into-a-binary-search-tree/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /704-binary-search/704-binary-search.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int search(int[] nums, int target) { 3 | int low = 0; 4 | int high = nums.length - 1; 5 | while(low<=high){ 6 | int mid = (low+high)/2; 7 | if(nums[mid] == target){ 8 | return mid; 9 | } else if(nums[mid] > target){ 10 | high = mid-1; 11 | } else{ 12 | low = mid+1; 13 | } 14 | } 15 | return -1; 16 | } 17 | } -------------------------------------------------------------------------------- /704-binary-search/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /709-to-lower-case/709-to-lower-case.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public String toLowerCase(String s) { 3 | return s.toLowerCase(); 4 | } 5 | } -------------------------------------------------------------------------------- /709-to-lower-case/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /72-edit-distance/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /73-set-matrix-zeroes/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /735-asteroid-collision/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /739-daily-temperatures/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /74-search-a-2d-matrix/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /740-delete-and-earn/740-delete-and-earn.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int deleteAndEarn(int[] nums) { 3 | int[] freq = new int[100001]; 4 | for(int num: nums){ 5 | freq[num]++; 6 | } 7 | int inc = 0; 8 | int exc = 0; 9 | for(int i = 0;i<=10000;i++){ 10 | int ni = exc+freq[i]*i; 11 | int ne = Math.max(inc,exc); 12 | inc = ni; 13 | exc = ne; 14 | } 15 | return Math.max(inc,exc); 16 | } 17 | } -------------------------------------------------------------------------------- /746-min-cost-climbing-stairs/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /747-largest-number-at-least-twice-of-others/747-largest-number-at-least-twice-of-others.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int dominantIndex(int[] arr) { 3 | int largest = 0; 4 | int secondLargest = -1; 5 | for(int i = 1;iarr[largest]){ 7 | secondLargest = arr[largest]; 8 | largest = i; 9 | }else if(arr[i]>secondLargest){ 10 | secondLargest = arr[i]; 11 | } 12 | } 13 | if(arr[largest]>=2*secondLargest) return largest; 14 | return -1; 15 | } 16 | } -------------------------------------------------------------------------------- /747-largest-number-at-least-twice-of-others/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /75-sort-colors/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /78-subsets/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /79-word-search/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /799-champagne-tower/799-champagne-tower.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public double champagneTower(int poured, int query_row, int query_glass) { 3 | double[][] A = new double[102][102]; 4 | A[0][0] = (double) poured; 5 | for (int r = 0; r <= query_row; ++r) { 6 | for (int c = 0; c <= r; ++c) { 7 | double q = (A[r][c] - 1.0) / 2.0; 8 | if (q > 0) { 9 | A[r+1][c] += q; 10 | A[r+1][c+1] += q; 11 | } 12 | } 13 | } 14 | 15 | return Math.min(1, A[query_row][query_glass]); 16 | } 17 | } -------------------------------------------------------------------------------- /799-champagne-tower/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /8-string-to-integer-atoi/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /807-max-increase-to-keep-city-skyline/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /814-binary-tree-pruning/814-binary-tree-pruning.c: -------------------------------------------------------------------------------- 1 | /** 2 | * Definition for a binary tree node. 3 | * struct TreeNode { 4 | * int val; 5 | * struct TreeNode *left; 6 | * struct TreeNode *right; 7 | * }; 8 | */ 9 | 10 | 11 | struct TreeNode* pruneTree(struct TreeNode* root){ 12 | if(root == NULL) return root; 13 | root->left = pruneTree(root->left); 14 | root->right = pruneTree(root->right); 15 | if(root->left == NULL && root->right == NULL && root->val == 0) 16 | return NULL; 17 | return root; 18 | } -------------------------------------------------------------------------------- /814-binary-tree-pruning/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /82-remove-duplicates-from-sorted-list-ii/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /846-hand-of-straights/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /849-maximize-distance-to-closest-person/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /852-peak-index-in-a-mountain-array/852-peak-index-in-a-mountain-array.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int peakIndexInMountainArray(int[] arr) { 3 | int low = 0; 4 | int high = arr.length -1; 5 | while(low=0){ 5 | if(m!=0 && n!=0 && nums1[m-1]>=nums2[n-1]){ 6 | nums1[counter] = nums1[m-1]; 7 | nums1[m-1] = 0; 8 | m--; 9 | }else if(n!=0){ 10 | nums1[counter] = nums2[n-1]; 11 | n--; 12 | } 13 | counter--; 14 | 15 | } 16 | } 17 | } -------------------------------------------------------------------------------- /88-merge-sorted-array/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /889-construct-binary-tree-from-preorder-and-postorder-traversal/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /890-find-and-replace-pattern/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /9-palindrome-number/9-palindrome-number.cpp: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public: 3 | bool isPalindrome(int x) { 4 | if(x<0 || (x!=0 && x%10==0)) return false; 5 | int rev = 0; 6 | while(x>rev){ 7 | rev = (rev*10) + x%10; 8 | x = x/10; 9 | } 10 | return x == rev || x == rev/10 ; 11 | } 12 | }; -------------------------------------------------------------------------------- /9-palindrome-number/9-palindrome-number.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public boolean isPalindrome(int x) { 3 | if(x<0 || (x!=0 && x%10==0)) return false; 4 | int rev = 0; 5 | while(x>rev){ 6 | rev = (rev*10) + x%10; 7 | x = x/10; 8 | } 9 | return x == rev || x == rev/10 ; 10 | } 11 | } -------------------------------------------------------------------------------- /9-palindrome-number/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /94-binary-tree-inorder-traversal/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /941-valid-mountain-array/941-valid-mountain-array.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public boolean validMountainArray(int[] arr) { 3 | if(arr.length<3) return false; 4 | int increasing = 0; 5 | int decreasing = arr.length -1; 6 | for(int i = 0;i=arr[i+1]) break; 8 | increasing++; 9 | } 10 | for(int j = arr.length-1;j!=0;j--){ 11 | if(arr[j]>=arr[j-1]) break; 12 | decreasing--; 13 | } 14 | if(increasing == 0 || decreasing == arr.length - 1) return false; 15 | return increasing==decreasing; 16 | 17 | } 18 | } -------------------------------------------------------------------------------- /941-valid-mountain-array/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /946-validate-stack-sequences/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /96-unique-binary-search-trees/96-unique-binary-search-trees.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int numTrees(int n) { 3 | if(n<3) return n; 4 | int[] dp = new int[n+1]; 5 | dp[0] = 1; 6 | dp[1] = 1; 7 | for(int i =2 ;istartValue){ 5 | ans++; 6 | if(target%2==1){ 7 | target++; 8 | }else{ 9 | target = target/2; 10 | } 11 | } 12 | return ans+ startValue-target; 13 | } 14 | } -------------------------------------------------------------------------------- /991-broken-calculator/NOTES.md: -------------------------------------------------------------------------------- 1 | ​ -------------------------------------------------------------------------------- /a-number-after-a-double-reversal/a-number-after-a-double-reversal.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public boolean isSameAfterReversals(int num) { 3 | if(num == 0) return true; 4 | if(num%10==0) return false; 5 | return true; 6 | } 7 | } -------------------------------------------------------------------------------- /add-digits/add-digits.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int addDigits(int num) { 3 | return 1 + (num - 1) % 9; 4 | 5 | } 6 | } -------------------------------------------------------------------------------- /adding-spaces-to-a-string/adding-spaces-to-a-string.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public String addSpaces(String s, int[] spaces) { 3 | StringBuilder sb = new StringBuilder(s.length()+spaces.length); 4 | int i = 0; 5 | int counter = 0; 6 | while(i target){ 11 | high = mid-1; 12 | } else{ 13 | low = mid+1; 14 | } 15 | } 16 | return -1; 17 | } 18 | } } 19 | } 20 | -------------------------------------------------------------------------------- /bitwise-and-of-numbers-range/bitwise-and-of-numbers-range.cpp: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public: 3 | int rangeBitwiseAnd(int left, int right) { 4 | int counter = 0; 5 | while(left!=right){ 6 | left = left>>1; 7 | right = right>>1; 8 | counter++; 9 | } 10 | return left<>1; 6 | right = right>>1; 7 | counter++; 8 | } 9 | 10 | while(counter!=0){ 11 | left = left<<1; 12 | counter--; 13 | } 14 | return left; 15 | } 16 | } -------------------------------------------------------------------------------- /build-array-from-permutation/build-array-from-permutation.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int[] buildArray(int[] nums) { 3 | int[] result = new int[nums.length]; 4 | int counter =0; 5 | while(counter=7){ 6 | res = res + 28 + counter*7; 7 | counter++; 8 | n = n-7; 9 | } 10 | if(n!=0) res = res + ((n)*(2*(counter+1) + (n-1)))/2; 11 | //S = n/2[2a + (n − 1) × d] 12 | return res; 13 | } 14 | } -------------------------------------------------------------------------------- /check-if-a-word-occurs-as-a-prefix-of-any-word-in-a-sentence/check-if-a-word-occurs-as-a-prefix-of-any-word-in-a-sentence.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int isPrefixOfWord(String sentence, String searchWord) { 3 | String[] arr = sentence.split(" "); 4 | for(int i = 0;i= searchWord.length()){ 6 | if(arr[i].substring(0,searchWord.length()).equals(searchWord)){ 7 | return i+1; 8 | } 9 | } 10 | } 11 | return -1; 12 | } 13 | } -------------------------------------------------------------------------------- /check-if-all-as-appears-before-all-bs/check-if-all-as-appears-before-all-bs.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public boolean checkString(String s) { 3 | int len = s.length(); 4 | for(int i = 0;i=max) max = current+1; 10 | current = 0; 11 | } 12 | } 13 | if(current>=max) max = current+1; 14 | return max; 15 | } 16 | } -------------------------------------------------------------------------------- /contains-duplicate/contains-duplicate.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public boolean containsDuplicate(int[] nums) { 3 | Set set = new HashSet<>(); 4 | for(int i = 0;i> items, String ruleKey, String ruleValue) { 3 | int res =0; 4 | int counter = 0; 5 | if(ruleKey.equals("name")) counter= 2; 6 | else if(ruleKey.length() == 5) counter = 1; 7 | for(int i = 0;iindex[counter]){ 7 | for(int i = counter;i!=index[counter];i--){ 8 | result[i] = result[i-1]; 9 | } 10 | 11 | } 12 | result[index[counter]] = nums[counter]; 13 | counter++; 14 | } 15 | return result; 16 | } 17 | } -------------------------------------------------------------------------------- /delete-node-in-a-linked-list/delete-node-in-a-linked-list.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Definition for singly-linked list. 3 | * public class ListNode { 4 | * int val; 5 | * ListNode next; 6 | * ListNode(int x) { val = x; } 7 | * } 8 | */ 9 | class Solution { 10 | public void deleteNode(ListNode node) { 11 | node.val = (node.next).val; 12 | node.next = (node.next).next; 13 | } 14 | } -------------------------------------------------------------------------------- /destroying-asteroids/destroying-asteroids.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public boolean asteroidsDestroyed(int mass, int[] asteroids) { 3 | Arrays.sort(asteroids); 4 | long val = mass; 5 | for(int i=0;i=sum) return 0; 6 | else if(k>sum) k = k%(int)sum; 7 | for(int i=0;ilen) arr[i] = 1; 8 | } 9 | if(!one) return 1; 10 | for(int i =0;i0) return i+1; 16 | } 17 | return len+1; 18 | } 19 | } -------------------------------------------------------------------------------- /first-unique-character-in-a-string/first-unique-character-in-a-string.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int firstUniqChar(String s) { 3 | HashMap map = new HashMap<>(); 4 | int n = s.length(); 5 | for(int i =0;i set1 = new HashSet(); 4 | for(int num: nums1){ 5 | set1.add(num); 6 | } 7 | Set set2 = new HashSet(); 8 | for(int num: nums2){ 9 | set2.add(num); 10 | } 11 | set1.retainAll(set2); 12 | int[] res = new int[set1.size()]; 13 | int i =0; 14 | for(int num: set1) res[i++]=num; 15 | return res; 16 | 17 | } 18 | } -------------------------------------------------------------------------------- /kth-largest-element-in-an-array/kth-largest-element-in-an-array.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int findKthLargest(int[] nums, int k) { 3 | PriorityQueue maxPQ = new PriorityQueue<>(); 4 | for(int num: nums){ 5 | maxPQ.add(num); 6 | if(maxPQ.size() > k) { 7 | maxPQ.poll(); 8 | } 9 | } 10 | return maxPQ.peek(); 11 | 12 | } 13 | } -------------------------------------------------------------------------------- /largest-perimeter-triangle/largest-perimeter-triangle.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int largestPerimeter(int[] nums) { 3 | Arrays.sort(nums); 4 | for (int i = nums.length - 3; i >= 0; --i) 5 | if (nums[i] + nums[i+1] > nums[i+2]) 6 | return nums[i] + nums[i+1] + nums[i+2]; 7 | return 0; 8 | } 9 | } -------------------------------------------------------------------------------- /length-of-last-word/length-of-last-word.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int lengthOfLastWord(String s) { 3 | int result = 0; 4 | int counter = s.length() - 1; 5 | boolean space = false; 6 | while(s.charAt(counter) != ' ' || ! space){ 7 | if(s.charAt(counter) != ' '){ 8 | space = true; 9 | } 10 | if(space){result++;} 11 | counter--; 12 | if(counter == -1){ 13 | break; 14 | } 15 | 16 | } 17 | return result; 18 | } 19 | } -------------------------------------------------------------------------------- /linked-list-cycle/linked-list-cycle.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Definition for singly-linked list. 3 | * class ListNode { 4 | * int val; 5 | * ListNode next; 6 | * ListNode(int x) { 7 | * val = x; 8 | * next = null; 9 | * } 10 | * } 11 | */ 12 | public class Solution { 13 | public boolean hasCycle(ListNode head) { 14 | ListNode slow = head; 15 | ListNode fast = head; 16 | while(fast != null && fast.next != null){ 17 | slow = slow.next; 18 | fast = fast.next.next; 19 | if(slow == fast) return true; 20 | } 21 | return false; 22 | } 23 | } -------------------------------------------------------------------------------- /longest-increasing-subsequence/longest-increasing-subsequence.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int lengthOfLIS(int[] arr) { 3 | int[] res = new int[arr.length]; 4 | int totalmax = 0; 5 | for(int i = 0;iarr[j] &&res[j]>=max) max = res[j]+1; 9 | } 10 | res[i] = max; 11 | totalmax = Math.max(max,totalmax); 12 | } 13 | return totalmax; 14 | } 15 | } -------------------------------------------------------------------------------- /majority-element/majority-element.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int majorityElement(int[] nums) { 3 | Arrays.sort(nums); 4 | int target = nums.length/2; 5 | int counter =0; 6 | while(target map = new HashMap<>(); 4 | for(int num: target) map.put(num,map.getOrDefault(num,0)+1); 5 | for(int num: arr){ 6 | map.put(num,map.getOrDefault(num,1)-1); 7 | if(map.get(num) == 0) map.remove(num); 8 | } 9 | return map.size() == 0; 10 | } 11 | } -------------------------------------------------------------------------------- /matrix-diagonal-sum/matrix-diagonal-sum.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int diagonalSum(int[][] mat) { 3 | int c1 = 0; 4 | int c2 = mat.length -1; 5 | int sum = 0; 6 | while(c1max){ 7 | secondMax = max; 8 | max = num; 9 | }else if(num<=max && num>secondMax){ 10 | secondMax = num; 11 | } 12 | } 13 | return (max-1)*(secondMax-1); 14 | } 15 | } -------------------------------------------------------------------------------- /maximum-product-subarray/maximum-product-subarray.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int maxProduct(int[] nums) { 3 | int ans = Integer.MIN_VALUE; 4 | int cProd = 1; 5 | for(int i=0;i=0;i--){ 12 | cProd*=nums[i]; 13 | ans = Math.max(cProd, ans); 14 | if(cProd == 0) cProd = 1; 15 | } 16 | return ans; 17 | } 18 | } -------------------------------------------------------------------------------- /maximum-subarray/maximum-subarray.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int maxSubArray(int[] nums) { 3 | int maxSoFar = Integer.MIN_VALUE; 4 | int maxEndingHere = 0; 5 | for(int num: nums){ 6 | maxEndingHere+=num; 7 | if(maxEndingHere>1; 7 | }else{ 8 | num--; 9 | } 10 | step++; 11 | } 12 | return step; 13 | } 14 | } -------------------------------------------------------------------------------- /palindrome-number/palindrome-number.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public boolean isPalindrome(int x) { 3 | if(x<0){ 4 | return false; 5 | } 6 | int result = 0; 7 | int temp = x; 8 | while(x!=0){ 9 | result = result*10 + x%10; 10 | x/=10; 11 | } 12 | return result==temp; 13 | } 14 | } -------------------------------------------------------------------------------- /partitioning-into-minimum-number-of-deci-binary-numbers/partitioning-into-minimum-number-of-deci-binary-numbers.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int minPartitions(String n) { 3 | int max = 0; 4 | for(int i = 0;i max){ 6 | max = (int) n.charAt(i) - 48; 7 | } 8 | if(max == 9){ 9 | return max; 10 | } 11 | } 12 | return max; 13 | } 14 | } -------------------------------------------------------------------------------- /power-of-two/power-of-two.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public boolean isPowerOfTwo(int n) { 3 | if(n==1){ 4 | return true; 5 | } 6 | 7 | if(n%2!=0 || n==0){ 8 | return false; 9 | } 10 | return isPowerOfTwo(n/2); 11 | } 12 | } -------------------------------------------------------------------------------- /power-of-two/power-of-two.py: -------------------------------------------------------------------------------- 1 | class Solution: 2 | def isPowerOfTwo(self, n: int) -> bool: 3 | if n==0: return False 4 | while(n!=1): 5 | if n%2==1: return False 6 | n = n/2 7 | return True -------------------------------------------------------------------------------- /remove-all-adjacent-duplicates-in-string/remove-all-adjacent-duplicates-in-string.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public String removeDuplicates(String s) { 3 | StringBuilder res = new StringBuilder(); 4 | int counter = -1; 5 | for(int i =0; i0){ 5 | arr[n%10]++; 6 | n/=10; 7 | } 8 | return arr; 9 | } 10 | public boolean reorderedPowerOf2(int n) { 11 | int[] digits = count(n); 12 | int num =1; 13 | for(int i = 1;i<31;i++){ 14 | if(Arrays.equals(digits,count(num))){ 15 | return true; 16 | } 17 | num = num<<1; 18 | } 19 | return false; 20 | } 21 | } -------------------------------------------------------------------------------- /reverse-integer/reverse-integer.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int reverse(int x) { 3 | long result = 0; 4 | while(x!=0){ 5 | result = result*10 + (x%10); 6 | x = x /10; 7 | } 8 | if(result > Integer.MAX_VALUE || result < Integer.MIN_VALUE) return 0; 9 | return (int) result; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /reverse-string/reverse-string.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public void reverseString(char[] s) { 3 | int low = 0; 4 | int high = s.length - 1; 5 | while(lowtarget) high = mid -1; 9 | else low = mid+1; 10 | } 11 | return low; 12 | } 13 | } -------------------------------------------------------------------------------- /sign-of-the-product-of-an-array/sign-of-the-product-of-an-array.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int arraySign(int[] nums) { 3 | int sign = 1; 4 | for(short i = 0;i map = new HashMap<>(); 4 | for(int num: nums) { 5 | if(map.containsKey(num)){ 6 | map.put(num,map.get(num)+1); 7 | }else{ 8 | map.put(num,1); 9 | } 10 | } 11 | int sum = 0; 12 | for(int num: map.keySet()){ 13 | if(map.get(num)==1) sum+=num; 14 | } 15 | return sum; 16 | } 17 | } -------------------------------------------------------------------------------- /the-kth-factor-of-n/the-kth-factor-of-n.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int kthFactor(int n, int k) { 3 | for(int i = 1;i<=n;i++){ 4 | if(n%i==0 && --k==0){ 5 | return i; 6 | } 7 | } 8 | return -1; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /time-needed-to-buy-tickets/time-needed-to-buy-tickets.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int timeRequiredToBuy(int[] tickets, int k) { 3 | int counter = 0; 4 | int maincounter =0; 5 | int size = tickets.length; 6 | while(tickets[k]!=0){ 7 | if(tickets[maincounter]!=0){ 8 | tickets[maincounter]--; 9 | counter++; 10 | } 11 | maincounter++; 12 | maincounter= maincounter%size; 13 | } 14 | return counter; 15 | } 16 | } -------------------------------------------------------------------------------- /truncate-sentence/truncate-sentence.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public String truncateSentence(String s, int k) { 3 | int i =0; 4 | for(i=0;i map = new HashMap<>(); 4 | int[] arr = new int[2]; 5 | for(int i = 0; i map = new HashMap<>(); 4 | for(int num: arr){ 5 | map.put(num, map.getOrDefault(num,0)+1); 6 | } 7 | HashSet set = new HashSet<>(); 8 | for (Map.Entry entrySet :map.entrySet()) { 9 | set.add(entrySet.getValue()); 10 | } 11 | return map.size() == set.size(); 12 | } 13 | } -------------------------------------------------------------------------------- /valid-parentheses/valid-parentheses.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public boolean isValid(String s) { 3 | Stack s1 = new Stack<>(); 4 | for(int i = 0;inum){ 11 | right = mid -1; 12 | }else{ 13 | left = mid +1; 14 | } 15 | } 16 | return false; 17 | } 18 | }; -------------------------------------------------------------------------------- /valid-triangle-number/valid-triangle-number.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int triangleNumber(int[] nums) { 3 | if(nums.length<3) return 0; 4 | int ans = 0; 5 | Arrays.sort(nums); 6 | for(int i = 2;inums[i]){ 11 | ans+=right-left; 12 | right--; 13 | }else{ 14 | left++; 15 | } 16 | 17 | } 18 | } 19 | return ans; 20 | } 21 | } -------------------------------------------------------------------------------- /water-bottles/water-bottles.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int numWaterBottles(int numBottles, int numExchange) { 3 | int res = numBottles; 4 | while (numBottles >= numExchange) { 5 | int rem = numBottles % numExchange; 6 | numBottles /= numExchange; 7 | res += numBottles; 8 | numBottles += rem; 9 | } 10 | return res; 11 | } 12 | } -------------------------------------------------------------------------------- /watering-plants/watering-plants.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int wateringPlants(int[] plants, int capacity) { 3 | int steps = 0; 4 | int max = capacity; 5 | for(int i =0;i=plants[i]){ 7 | capacity-=plants[i]; 8 | plants[i] = 0; 9 | steps++; 10 | 11 | }else{ 12 | steps+=(2*i); 13 | capacity = max; 14 | --i; 15 | } 16 | } 17 | return steps; 18 | } 19 | } --------------------------------------------------------------------------------