diff --git a/apps/docs/astro.config.mjs b/apps/docs/astro.config.mjs new file mode 100644 index 0000000..11f2b07 --- /dev/null +++ b/apps/docs/astro.config.mjs @@ -0,0 +1,137 @@ +// Written by `blume eject`. This is your Astro config now: edit it freely. +import { availableParallelism } from "node:os"; +import { fileURLToPath } from "node:url"; +import { defineConfig, fontProviders } from "astro/config"; +import mdx from "@astrojs/mdx"; +import tailwindcss from "@tailwindcss/vite"; +import { blumeMarkdownProcessor, blumeMdxProcessor, blumeShikiTransformers, blumeTwoslashTransformer } from "blume/markdown"; +import react from "@astrojs/react"; +import { blumeIntegration, includeHmrPlugin, mdxSourceErrorsPlugin, prerenderDepsPlugin } from "blume/astro"; + +export default defineConfig({ + root: ".", + srcDir: "./src", + outDir: "./dist", + publicDir: "./public", + output: "static", + site: "https://lc.prd.lk", + redirects: {"/1":{"destination":"/hash-table/two-sum","status":301},"/1.md":{"destination":"/hash-table/two-sum.md","status":301},"/1.mdx":{"destination":"/hash-table/two-sum.mdx","status":301},"/2":{"destination":"/hybrid-structures/add-two-numbers","status":301},"/2.md":{"destination":"/hybrid-structures/add-two-numbers.md","status":301},"/2.mdx":{"destination":"/hybrid-structures/add-two-numbers.mdx","status":301},"/3":{"destination":"/sliding-window/longest-substring-without-repeating-characters","status":301},"/3.md":{"destination":"/sliding-window/longest-substring-without-repeating-characters.md","status":301},"/3.mdx":{"destination":"/sliding-window/longest-substring-without-repeating-characters.mdx","status":301},"/4":{"destination":"/binary-search/median-of-two-sorted-arrays","status":301},"/4.md":{"destination":"/binary-search/median-of-two-sorted-arrays.md","status":301},"/4.mdx":{"destination":"/binary-search/median-of-two-sorted-arrays.mdx","status":301},"/11":{"destination":"/two-pointers/container-with-most-water","status":301},"/11.md":{"destination":"/two-pointers/container-with-most-water.md","status":301},"/11.mdx":{"destination":"/two-pointers/container-with-most-water.mdx","status":301},"/15":{"destination":"/two-pointers/3sum","status":301},"/15.md":{"destination":"/two-pointers/3sum.md","status":301},"/15.mdx":{"destination":"/two-pointers/3sum.mdx","status":301},"/19":{"destination":"/linked-list/remove-nth-node-from-end-of-list","status":301},"/19.md":{"destination":"/linked-list/remove-nth-node-from-end-of-list.md","status":301},"/19.mdx":{"destination":"/linked-list/remove-nth-node-from-end-of-list.mdx","status":301},"/20":{"destination":"/stack/valid-parentheses","status":301},"/20.md":{"destination":"/stack/valid-parentheses.md","status":301},"/20.mdx":{"destination":"/stack/valid-parentheses.mdx","status":301},"/21":{"destination":"/linked-list/merge-two-sorted-lists","status":301},"/21.md":{"destination":"/linked-list/merge-two-sorted-lists.md","status":301},"/21.mdx":{"destination":"/linked-list/merge-two-sorted-lists.mdx","status":301},"/23":{"destination":"/heap-priority-queue/merge-k-sorted-lists","status":301},"/23.md":{"destination":"/heap-priority-queue/merge-k-sorted-lists.md","status":301},"/23.mdx":{"destination":"/heap-priority-queue/merge-k-sorted-lists.mdx","status":301},"/33":{"destination":"/binary-search/search-in-rotated-sorted-array","status":301},"/33.md":{"destination":"/binary-search/search-in-rotated-sorted-array.md","status":301},"/33.mdx":{"destination":"/binary-search/search-in-rotated-sorted-array.mdx","status":301},"/34":{"destination":"/binary-search/find-first-and-last-position-of-element-in-sorted-array","status":301},"/34.md":{"destination":"/binary-search/find-first-and-last-position-of-element-in-sorted-array.md","status":301},"/34.mdx":{"destination":"/binary-search/find-first-and-last-position-of-element-in-sorted-array.mdx","status":301},"/35":{"destination":"/binary-search/search-insert-position","status":301},"/35.md":{"destination":"/binary-search/search-insert-position.md","status":301},"/35.mdx":{"destination":"/binary-search/search-insert-position.mdx","status":301},"/36":{"destination":"/matrix-index-math/valid-sudoku","status":301},"/36.md":{"destination":"/matrix-index-math/valid-sudoku.md","status":301},"/36.mdx":{"destination":"/matrix-index-math/valid-sudoku.mdx","status":301},"/39":{"destination":"/backtracking/combination-sum","status":301},"/39.md":{"destination":"/backtracking/combination-sum.md","status":301},"/39.mdx":{"destination":"/backtracking/combination-sum.mdx","status":301},"/42":{"destination":"/two-pointers/trapping-rain-water","status":301},"/42.md":{"destination":"/two-pointers/trapping-rain-water.md","status":301},"/42.mdx":{"destination":"/two-pointers/trapping-rain-water.mdx","status":301},"/46":{"destination":"/backtracking/permutations","status":301},"/46.md":{"destination":"/backtracking/permutations.md","status":301},"/46.mdx":{"destination":"/backtracking/permutations.mdx","status":301},"/48":{"destination":"/matrix-index-math/rotate-image","status":301},"/48.md":{"destination":"/matrix-index-math/rotate-image.md","status":301},"/48.mdx":{"destination":"/matrix-index-math/rotate-image.mdx","status":301},"/49":{"destination":"/hash-table/group-anagrams","status":301},"/49.md":{"destination":"/hash-table/group-anagrams.md","status":301},"/49.mdx":{"destination":"/hash-table/group-anagrams.mdx","status":301},"/53":{"destination":"/greedy/maximum-subarray","status":301},"/53.md":{"destination":"/greedy/maximum-subarray.md","status":301},"/53.mdx":{"destination":"/greedy/maximum-subarray.mdx","status":301},"/54":{"destination":"/matrix-index-math/spiral-matrix","status":301},"/54.md":{"destination":"/matrix-index-math/spiral-matrix.md","status":301},"/54.mdx":{"destination":"/matrix-index-math/spiral-matrix.mdx","status":301},"/55":{"destination":"/greedy/jump-game","status":301},"/55.md":{"destination":"/greedy/jump-game.md","status":301},"/55.mdx":{"destination":"/greedy/jump-game.mdx","status":301},"/56":{"destination":"/intervals/merge-intervals","status":301},"/56.md":{"destination":"/intervals/merge-intervals.md","status":301},"/56.mdx":{"destination":"/intervals/merge-intervals.mdx","status":301},"/57":{"destination":"/intervals/insert-interval","status":301},"/57.md":{"destination":"/intervals/insert-interval.md","status":301},"/57.mdx":{"destination":"/intervals/insert-interval.mdx","status":301},"/62":{"destination":"/multi-d-grid-dp/unique-paths","status":301},"/62.md":{"destination":"/multi-d-grid-dp/unique-paths.md","status":301},"/62.mdx":{"destination":"/multi-d-grid-dp/unique-paths.mdx","status":301},"/64":{"destination":"/multi-d-grid-dp/minimum-path-sum","status":301},"/64.md":{"destination":"/multi-d-grid-dp/minimum-path-sum.md","status":301},"/64.mdx":{"destination":"/multi-d-grid-dp/minimum-path-sum.mdx","status":301},"/70":{"destination":"/1d-dynamic-programming/climbing-stairs","status":301},"/70.md":{"destination":"/1d-dynamic-programming/climbing-stairs.md","status":301},"/70.mdx":{"destination":"/1d-dynamic-programming/climbing-stairs.mdx","status":301},"/71":{"destination":"/stack/simplify-path","status":301},"/71.md":{"destination":"/stack/simplify-path.md","status":301},"/71.mdx":{"destination":"/stack/simplify-path.mdx","status":301},"/73":{"destination":"/matrix-index-math/set-matrix-zeroes","status":301},"/73.md":{"destination":"/matrix-index-math/set-matrix-zeroes.md","status":301},"/73.mdx":{"destination":"/matrix-index-math/set-matrix-zeroes.mdx","status":301},"/74":{"destination":"/binary-search/search-a-2d-matrix","status":301},"/74.md":{"destination":"/binary-search/search-a-2d-matrix.md","status":301},"/74.mdx":{"destination":"/binary-search/search-a-2d-matrix.mdx","status":301},"/76":{"destination":"/sliding-window/minimum-window-substring","status":301},"/76.md":{"destination":"/sliding-window/minimum-window-substring.md","status":301},"/76.mdx":{"destination":"/sliding-window/minimum-window-substring.mdx","status":301},"/78":{"destination":"/backtracking/subsets","status":301},"/78.md":{"destination":"/backtracking/subsets.md","status":301},"/78.mdx":{"destination":"/backtracking/subsets.mdx","status":301},"/80":{"destination":"/two-pointers/remove-duplicates-from-sorted-array-ii","status":301},"/80.md":{"destination":"/two-pointers/remove-duplicates-from-sorted-array-ii.md","status":301},"/80.mdx":{"destination":"/two-pointers/remove-duplicates-from-sorted-array-ii.mdx","status":301},"/82":{"destination":"/linked-list/remove-duplicates-from-sorted-list-ii","status":301},"/82.md":{"destination":"/linked-list/remove-duplicates-from-sorted-list-ii.md","status":301},"/82.mdx":{"destination":"/linked-list/remove-duplicates-from-sorted-list-ii.mdx","status":301},"/84":{"destination":"/monotonic-stack/largest-rectangle-in-histogram","status":301},"/84.md":{"destination":"/monotonic-stack/largest-rectangle-in-histogram.md","status":301},"/84.mdx":{"destination":"/monotonic-stack/largest-rectangle-in-histogram.mdx","status":301},"/92":{"destination":"/linked-list/reverse-linked-list-ii","status":301},"/92.md":{"destination":"/linked-list/reverse-linked-list-ii.md","status":301},"/92.mdx":{"destination":"/linked-list/reverse-linked-list-ii.mdx","status":301},"/98":{"destination":"/binary-search-tree/validate-binary-search-tree","status":301},"/98.md":{"destination":"/binary-search-tree/validate-binary-search-tree.md","status":301},"/98.mdx":{"destination":"/binary-search-tree/validate-binary-search-tree.mdx","status":301},"/102":{"destination":"/tree-bfs/binary-tree-level-order-traversal","status":301},"/102.md":{"destination":"/tree-bfs/binary-tree-level-order-traversal.md","status":301},"/102.mdx":{"destination":"/tree-bfs/binary-tree-level-order-traversal.mdx","status":301},"/104":{"destination":"/tree-dfs/maximum-depth-of-binary-tree","status":301},"/104.md":{"destination":"/tree-dfs/maximum-depth-of-binary-tree.md","status":301},"/104.mdx":{"destination":"/tree-dfs/maximum-depth-of-binary-tree.mdx","status":301},"/121":{"destination":"/sliding-window/best-time-to-buy-and-sell-stock","status":301},"/121.md":{"destination":"/sliding-window/best-time-to-buy-and-sell-stock.md","status":301},"/121.mdx":{"destination":"/sliding-window/best-time-to-buy-and-sell-stock.mdx","status":301},"/125":{"destination":"/two-pointers/valid-palindrome","status":301},"/125.md":{"destination":"/two-pointers/valid-palindrome.md","status":301},"/125.mdx":{"destination":"/two-pointers/valid-palindrome.mdx","status":301},"/127":{"destination":"/graph-bfs/word-ladder","status":301},"/127.md":{"destination":"/graph-bfs/word-ladder.md","status":301},"/127.mdx":{"destination":"/graph-bfs/word-ladder.mdx","status":301},"/128":{"destination":"/hash-table/longest-consecutive-sequence","status":301},"/128.md":{"destination":"/hash-table/longest-consecutive-sequence.md","status":301},"/128.mdx":{"destination":"/hash-table/longest-consecutive-sequence.mdx","status":301},"/133":{"destination":"/graph-dfs/clone-graph","status":301},"/133.md":{"destination":"/graph-dfs/clone-graph.md","status":301},"/133.mdx":{"destination":"/graph-dfs/clone-graph.mdx","status":301},"/134":{"destination":"/greedy/gas-station","status":301},"/134.md":{"destination":"/greedy/gas-station.md","status":301},"/134.mdx":{"destination":"/greedy/gas-station.mdx","status":301},"/141":{"destination":"/linked-list/linked-list-cycle","status":301},"/141.md":{"destination":"/linked-list/linked-list-cycle.md","status":301},"/141.mdx":{"destination":"/linked-list/linked-list-cycle.mdx","status":301},"/143":{"destination":"/linked-list/reorder-list","status":301},"/143.md":{"destination":"/linked-list/reorder-list.md","status":301},"/143.mdx":{"destination":"/linked-list/reorder-list.mdx","status":301},"/146":{"destination":"/hybrid-structures/lru-cache","status":301},"/146.md":{"destination":"/hybrid-structures/lru-cache.md","status":301},"/146.mdx":{"destination":"/hybrid-structures/lru-cache.mdx","status":301},"/150":{"destination":"/stack/evaluate-reverse-polish-notation","status":301},"/150.md":{"destination":"/stack/evaluate-reverse-polish-notation.md","status":301},"/150.mdx":{"destination":"/stack/evaluate-reverse-polish-notation.mdx","status":301},"/153":{"destination":"/binary-search/find-minimum-in-rotated-sorted-array","status":301},"/153.md":{"destination":"/binary-search/find-minimum-in-rotated-sorted-array.md","status":301},"/153.mdx":{"destination":"/binary-search/find-minimum-in-rotated-sorted-array.mdx","status":301},"/155":{"destination":"/stack/min-stack","status":301},"/155.md":{"destination":"/stack/min-stack.md","status":301},"/155.mdx":{"destination":"/stack/min-stack.mdx","status":301},"/162":{"destination":"/binary-search/find-peak-element","status":301},"/162.md":{"destination":"/binary-search/find-peak-element.md","status":301},"/162.mdx":{"destination":"/binary-search/find-peak-element.mdx","status":301},"/167":{"destination":"/two-pointers/two-sum-ii-input-array-is-sorted","status":301},"/167.md":{"destination":"/two-pointers/two-sum-ii-input-array-is-sorted.md","status":301},"/167.mdx":{"destination":"/two-pointers/two-sum-ii-input-array-is-sorted.mdx","status":301},"/189":{"destination":"/two-pointers/rotate-array","status":301},"/189.md":{"destination":"/two-pointers/rotate-array.md","status":301},"/189.mdx":{"destination":"/two-pointers/rotate-array.mdx","status":301},"/198":{"destination":"/1d-dynamic-programming/house-robber","status":301},"/198.md":{"destination":"/1d-dynamic-programming/house-robber.md","status":301},"/198.mdx":{"destination":"/1d-dynamic-programming/house-robber.mdx","status":301},"/199":{"destination":"/tree-bfs/binary-tree-right-side-view","status":301},"/199.md":{"destination":"/tree-bfs/binary-tree-right-side-view.md","status":301},"/199.mdx":{"destination":"/tree-bfs/binary-tree-right-side-view.mdx","status":301},"/200":{"destination":"/graph-dfs/number-of-islands","status":301},"/200.md":{"destination":"/graph-dfs/number-of-islands.md","status":301},"/200.mdx":{"destination":"/graph-dfs/number-of-islands.mdx","status":301},"/205":{"destination":"/hash-table/isomorphic-strings","status":301},"/205.md":{"destination":"/hash-table/isomorphic-strings.md","status":301},"/205.mdx":{"destination":"/hash-table/isomorphic-strings.mdx","status":301},"/206":{"destination":"/linked-list/reverse-linked-list","status":301},"/206.md":{"destination":"/linked-list/reverse-linked-list.md","status":301},"/206.mdx":{"destination":"/linked-list/reverse-linked-list.mdx","status":301},"/207":{"destination":"/topological-sort/course-schedule","status":301},"/207.md":{"destination":"/topological-sort/course-schedule.md","status":301},"/207.mdx":{"destination":"/topological-sort/course-schedule.mdx","status":301},"/208":{"destination":"/trie/implement-trie-prefix-tree","status":301},"/208.md":{"destination":"/trie/implement-trie-prefix-tree.md","status":301},"/208.mdx":{"destination":"/trie/implement-trie-prefix-tree.mdx","status":301},"/209":{"destination":"/sliding-window/minimum-size-subarray-sum","status":301},"/209.md":{"destination":"/sliding-window/minimum-size-subarray-sum.md","status":301},"/209.mdx":{"destination":"/sliding-window/minimum-size-subarray-sum.mdx","status":301},"/210":{"destination":"/topological-sort/course-schedule-ii","status":301},"/210.md":{"destination":"/topological-sort/course-schedule-ii.md","status":301},"/210.mdx":{"destination":"/topological-sort/course-schedule-ii.mdx","status":301},"/211":{"destination":"/trie/design-add-and-search-words-data-structure","status":301},"/211.md":{"destination":"/trie/design-add-and-search-words-data-structure.md","status":301},"/211.mdx":{"destination":"/trie/design-add-and-search-words-data-structure.mdx","status":301},"/215":{"destination":"/heap-priority-queue/kth-largest-element-in-an-array","status":301},"/215.md":{"destination":"/heap-priority-queue/kth-largest-element-in-an-array.md","status":301},"/215.mdx":{"destination":"/heap-priority-queue/kth-largest-element-in-an-array.mdx","status":301},"/217":{"destination":"/hash-table/contains-duplicate","status":301},"/217.md":{"destination":"/hash-table/contains-duplicate.md","status":301},"/217.mdx":{"destination":"/hash-table/contains-duplicate.mdx","status":301},"/224":{"destination":"/stack/basic-calculator","status":301},"/224.md":{"destination":"/stack/basic-calculator.md","status":301},"/224.mdx":{"destination":"/stack/basic-calculator.mdx","status":301},"/226":{"destination":"/tree-dfs/invert-binary-tree","status":301},"/226.md":{"destination":"/tree-dfs/invert-binary-tree.md","status":301},"/226.mdx":{"destination":"/tree-dfs/invert-binary-tree.mdx","status":301},"/230":{"destination":"/binary-search-tree/kth-smallest-element-in-a-bst","status":301},"/230.md":{"destination":"/binary-search-tree/kth-smallest-element-in-a-bst.md","status":301},"/230.mdx":{"destination":"/binary-search-tree/kth-smallest-element-in-a-bst.mdx","status":301},"/235":{"destination":"/binary-search-tree/lowest-common-ancestor-of-a-binary-search-tree","status":301},"/235.md":{"destination":"/binary-search-tree/lowest-common-ancestor-of-a-binary-search-tree.md","status":301},"/235.mdx":{"destination":"/binary-search-tree/lowest-common-ancestor-of-a-binary-search-tree.mdx","status":301},"/236":{"destination":"/tree-dfs/lowest-common-ancestor-of-a-binary-tree","status":301},"/236.md":{"destination":"/tree-dfs/lowest-common-ancestor-of-a-binary-tree.md","status":301},"/236.mdx":{"destination":"/tree-dfs/lowest-common-ancestor-of-a-binary-tree.mdx","status":301},"/238":{"destination":"/prefix-sum/product-of-array-except-self","status":301},"/238.md":{"destination":"/prefix-sum/product-of-array-except-self.md","status":301},"/238.mdx":{"destination":"/prefix-sum/product-of-array-except-self.mdx","status":301},"/242":{"destination":"/hash-table/valid-anagram","status":301},"/242.md":{"destination":"/hash-table/valid-anagram.md","status":301},"/242.mdx":{"destination":"/hash-table/valid-anagram.mdx","status":301},"/290":{"destination":"/hash-table/word-pattern","status":301},"/290.md":{"destination":"/hash-table/word-pattern.md","status":301},"/290.mdx":{"destination":"/hash-table/word-pattern.mdx","status":301},"/303":{"destination":"/prefix-sum/range-sum-query-immutable","status":301},"/303.md":{"destination":"/prefix-sum/range-sum-query-immutable.md","status":301},"/303.mdx":{"destination":"/prefix-sum/range-sum-query-immutable.mdx","status":301},"/322":{"destination":"/1d-dynamic-programming/coin-change","status":301},"/322.md":{"destination":"/1d-dynamic-programming/coin-change.md","status":301},"/322.mdx":{"destination":"/1d-dynamic-programming/coin-change.mdx","status":301},"/323":{"destination":"/union-find/number-of-connected-components-in-an-undirected-graph","status":301},"/323.md":{"destination":"/union-find/number-of-connected-components-in-an-undirected-graph.md","status":301},"/323.mdx":{"destination":"/union-find/number-of-connected-components-in-an-undirected-graph.mdx","status":301},"/344":{"destination":"/two-pointers/reverse-string","status":301},"/344.md":{"destination":"/two-pointers/reverse-string.md","status":301},"/344.mdx":{"destination":"/two-pointers/reverse-string.mdx","status":301},"/347":{"destination":"/hash-table/top-k-frequent-elements","status":301},"/347.md":{"destination":"/hash-table/top-k-frequent-elements.md","status":301},"/347.mdx":{"destination":"/hash-table/top-k-frequent-elements.mdx","status":301},"/380":{"destination":"/hybrid-structures/insert-delete-getrandom-o1","status":301},"/380.md":{"destination":"/hybrid-structures/insert-delete-getrandom-o1.md","status":301},"/380.mdx":{"destination":"/hybrid-structures/insert-delete-getrandom-o1.mdx","status":301},"/387":{"destination":"/hash-table/first-unique-character-in-a-string","status":301},"/387.md":{"destination":"/hash-table/first-unique-character-in-a-string.md","status":301},"/387.mdx":{"destination":"/hash-table/first-unique-character-in-a-string.mdx","status":301},"/392":{"destination":"/two-pointers/is-subsequence","status":301},"/392.md":{"destination":"/two-pointers/is-subsequence.md","status":301},"/392.mdx":{"destination":"/two-pointers/is-subsequence.mdx","status":301},"/417":{"destination":"/graph-dfs/pacific-atlantic-water-flow","status":301},"/417.md":{"destination":"/graph-dfs/pacific-atlantic-water-flow.md","status":301},"/417.mdx":{"destination":"/graph-dfs/pacific-atlantic-water-flow.mdx","status":301},"/424":{"destination":"/sliding-window/longest-repeating-character-replacement","status":301},"/424.md":{"destination":"/sliding-window/longest-repeating-character-replacement.md","status":301},"/424.mdx":{"destination":"/sliding-window/longest-repeating-character-replacement.mdx","status":301},"/435":{"destination":"/intervals/non-overlapping-intervals","status":301},"/435.md":{"destination":"/intervals/non-overlapping-intervals.md","status":301},"/435.mdx":{"destination":"/intervals/non-overlapping-intervals.mdx","status":301},"/451":{"destination":"/hash-table/sort-characters-by-frequency","status":301},"/451.md":{"destination":"/hash-table/sort-characters-by-frequency.md","status":301},"/451.mdx":{"destination":"/hash-table/sort-characters-by-frequency.mdx","status":301},"/496":{"destination":"/monotonic-stack/next-greater-element-i","status":301},"/496.md":{"destination":"/monotonic-stack/next-greater-element-i.md","status":301},"/496.mdx":{"destination":"/monotonic-stack/next-greater-element-i.mdx","status":301},"/525":{"destination":"/prefix-sum/contiguous-array","status":301},"/525.md":{"destination":"/prefix-sum/contiguous-array.md","status":301},"/525.mdx":{"destination":"/prefix-sum/contiguous-array.mdx","status":301},"/560":{"destination":"/prefix-sum/subarray-sum-equals-k","status":301},"/560.md":{"destination":"/prefix-sum/subarray-sum-equals-k.md","status":301},"/560.mdx":{"destination":"/prefix-sum/subarray-sum-equals-k.mdx","status":301},"/567":{"destination":"/sliding-window/permutation-in-string","status":301},"/567.md":{"destination":"/sliding-window/permutation-in-string.md","status":301},"/567.mdx":{"destination":"/sliding-window/permutation-in-string.mdx","status":301},"/643":{"destination":"/sliding-window/maximum-average-subarray-i","status":301},"/643.md":{"destination":"/sliding-window/maximum-average-subarray-i.md","status":301},"/643.mdx":{"destination":"/sliding-window/maximum-average-subarray-i.mdx","status":301},"/684":{"destination":"/union-find/redundant-connection","status":301},"/684.md":{"destination":"/union-find/redundant-connection.md","status":301},"/684.mdx":{"destination":"/union-find/redundant-connection.mdx","status":301},"/704":{"destination":"/binary-search/binary-search","status":301},"/704.md":{"destination":"/binary-search/binary-search.md","status":301},"/704.mdx":{"destination":"/binary-search/binary-search.mdx","status":301},"/739":{"destination":"/monotonic-stack/daily-temperatures","status":301},"/739.md":{"destination":"/monotonic-stack/daily-temperatures.md","status":301},"/739.mdx":{"destination":"/monotonic-stack/daily-temperatures.mdx","status":301},"/853":{"destination":"/monotonic-stack/car-fleet","status":301},"/853.md":{"destination":"/monotonic-stack/car-fleet.md","status":301},"/853.mdx":{"destination":"/monotonic-stack/car-fleet.mdx","status":301},"/875":{"destination":"/binary-search/koko-eating-bananas","status":301},"/875.md":{"destination":"/binary-search/koko-eating-bananas.md","status":301},"/875.mdx":{"destination":"/binary-search/koko-eating-bananas.mdx","status":301},"/876":{"destination":"/linked-list/middle-of-the-linked-list","status":301},"/876.md":{"destination":"/linked-list/middle-of-the-linked-list.md","status":301},"/876.mdx":{"destination":"/linked-list/middle-of-the-linked-list.mdx","status":301},"/901":{"destination":"/monotonic-stack/online-stock-span","status":301},"/901.md":{"destination":"/monotonic-stack/online-stock-span.md","status":301},"/901.mdx":{"destination":"/monotonic-stack/online-stock-span.mdx","status":301},"/973":{"destination":"/heap-priority-queue/k-closest-points-to-origin","status":301},"/973.md":{"destination":"/heap-priority-queue/k-closest-points-to-origin.md","status":301},"/973.mdx":{"destination":"/heap-priority-queue/k-closest-points-to-origin.mdx","status":301},"/974":{"destination":"/prefix-sum/subarray-sums-divisible-by-k","status":301},"/974.md":{"destination":"/prefix-sum/subarray-sums-divisible-by-k.md","status":301},"/974.mdx":{"destination":"/prefix-sum/subarray-sums-divisible-by-k.mdx","status":301},"/977":{"destination":"/two-pointers/squares-of-a-sorted-array","status":301},"/977.md":{"destination":"/two-pointers/squares-of-a-sorted-array.md","status":301},"/977.mdx":{"destination":"/two-pointers/squares-of-a-sorted-array.mdx","status":301},"/994":{"destination":"/graph-bfs/rotting-oranges","status":301},"/994.md":{"destination":"/graph-bfs/rotting-oranges.md","status":301},"/994.mdx":{"destination":"/graph-bfs/rotting-oranges.mdx","status":301},"/1004":{"destination":"/sliding-window/max-consecutive-ones-iii","status":301},"/1004.md":{"destination":"/sliding-window/max-consecutive-ones-iii.md","status":301},"/1004.mdx":{"destination":"/sliding-window/max-consecutive-ones-iii.mdx","status":301},"/1143":{"destination":"/multi-d-grid-dp/longest-common-subsequence","status":301},"/1143.md":{"destination":"/multi-d-grid-dp/longest-common-subsequence.md","status":301},"/1143.mdx":{"destination":"/multi-d-grid-dp/longest-common-subsequence.mdx","status":301},"/1448":{"destination":"/tree-bfs/count-good-nodes-in-binary-tree","status":301},"/1448.md":{"destination":"/tree-bfs/count-good-nodes-in-binary-tree.md","status":301},"/1448.mdx":{"destination":"/tree-bfs/count-good-nodes-in-binary-tree.mdx","status":301},"/1832":{"destination":"/hash-table/check-if-the-sentence-is-pangram","status":301},"/1832.md":{"destination":"/hash-table/check-if-the-sentence-is-pangram.md","status":301},"/1832.mdx":{"destination":"/hash-table/check-if-the-sentence-is-pangram.mdx","status":301},"/appendix/array":{"destination":"/appendix#array","status":301},"/appendix/binary-tree":{"destination":"/appendix#binary-tree","status":301},"/appendix/directed-acyclic-graph":{"destination":"/appendix#directed-acyclic-graph","status":301},"/appendix/doubly-linked-list":{"destination":"/appendix#doubly-linked-list","status":301},"/appendix/graph":{"destination":"/appendix#graph","status":301},"/appendix/k-d-tree":{"destination":"/appendix#k-d-tree","status":301},"/appendix/queue":{"destination":"/appendix#queue","status":301},"/appendix/string":{"destination":"/appendix#string","status":301},"/appendix/tree":{"destination":"/appendix#tree","status":301},"/appendix/bidirectional-search":{"destination":"/appendix#bidirectional-search","status":301},"/appendix/binary-lifting":{"destination":"/appendix#binary-lifting","status":301},"/appendix/bit-manipulation":{"destination":"/appendix#bit-manipulation","status":301},"/appendix/bracket-sequences":{"destination":"/appendix#bracket-sequences","status":301},"/appendix/bucket-sort":{"destination":"/appendix#bucket-sort","status":301},"/appendix/complete-knapsack":{"destination":"/appendix#complete-knapsack","status":301},"/appendix/divide-and-conquer":{"destination":"/appendix#divide-and-conquer","status":301},"/appendix/floyds-cycle-finding-algorithm":{"destination":"/appendix#floyds-cycle-finding-algorithm","status":301},"/appendix/knapsack-problem":{"destination":"/appendix#knapsack-problem","status":301},"/appendix/longest-common-subsequence":{"destination":"/appendix#longest-common-subsequence","status":301},"/appendix/lowest-common-ancestor":{"destination":"/appendix#lowest-common-ancestor","status":301},"/appendix/memoization":{"destination":"/appendix#memoization","status":301},"/appendix/merge-sort":{"destination":"/appendix#merge-sort","status":301},"/appendix/quickselect":{"destination":"/appendix#quickselect","status":301},"/appendix/quicksort":{"destination":"/appendix#quicksort","status":301},"/appendix/recursion":{"destination":"/appendix#recursion","status":301},"/appendix/simulation":{"destination":"/appendix#simulation","status":301},"/appendix/sorting":{"destination":"/appendix#sorting","status":301},"/appendix/tournament-sort":{"destination":"/appendix#tournament-sort","status":301},"/appendix/combinatorics":{"destination":"/appendix#combinatorics","status":301},"/appendix/counting":{"destination":"/appendix#counting","status":301},"/appendix/design":{"destination":"/appendix#design","status":301},"/appendix/geometry":{"destination":"/appendix#geometry","status":301},"/appendix/math":{"destination":"/appendix#math","status":301}}, + fonts: [{ provider: fontProviders.local(), name: "Inter", cssVariable: "--blume-ff-inter", fallbacks: ["ui-sans-serif","system-ui","sans-serif"], options: { variants: [{"weight":"100..900","src":["node_modules/@fontsource-variable/inter/files/inter-latin-wght-normal.woff2"]}] } }, { provider: fontProviders.local(), name: "IBM Plex Mono", cssVariable: "--blume-ff-ibm-plex-mono", fallbacks: ["ui-monospace","SF Mono","Menlo","monospace"], options: { variants: [{"weight":400,"src":["node_modules/@fontsource/ibm-plex-mono/files/ibm-plex-mono-latin-400-normal.woff2"]},{"weight":500,"src":["node_modules/@fontsource/ibm-plex-mono/files/ibm-plex-mono-latin-500-normal.woff2"]}] } }], + integrations: [mdx({ processor: blumeMdxProcessor({ ...{"basePath":"","codeThemes":{"dark":"github-dark","light":"github-light"},"contentRoot":"content","deployBase":"","externalLinks":false,"headingAnchors":true,"variables":{}}, dataFile: fileURLToPath(new URL("./src/generated/data.json", import.meta.url)) }) }), react({ exclude: [/\/\.cache\/vite\//] }), blumeIntegration({"pages":[{"entrypoint":"pages/appendix.astro","pattern":"/appendix"},{"entrypoint":"pages/changelog.astro","pattern":"/changelog"},{"entrypoint":"pages/progress.astro","pattern":"/progress"}],"poweredBy":true,"redirects":[["^/1/?$","/hash-table/two-sum",301],["^/1\\.md/?$","/hash-table/two-sum.md",301],["^/1\\.mdx/?$","/hash-table/two-sum.mdx",301],["^/2/?$","/hybrid-structures/add-two-numbers",301],["^/2\\.md/?$","/hybrid-structures/add-two-numbers.md",301],["^/2\\.mdx/?$","/hybrid-structures/add-two-numbers.mdx",301],["^/3/?$","/sliding-window/longest-substring-without-repeating-characters",301],["^/3\\.md/?$","/sliding-window/longest-substring-without-repeating-characters.md",301],["^/3\\.mdx/?$","/sliding-window/longest-substring-without-repeating-characters.mdx",301],["^/4/?$","/binary-search/median-of-two-sorted-arrays",301],["^/4\\.md/?$","/binary-search/median-of-two-sorted-arrays.md",301],["^/4\\.mdx/?$","/binary-search/median-of-two-sorted-arrays.mdx",301],["^/11/?$","/two-pointers/container-with-most-water",301],["^/11\\.md/?$","/two-pointers/container-with-most-water.md",301],["^/11\\.mdx/?$","/two-pointers/container-with-most-water.mdx",301],["^/15/?$","/two-pointers/3sum",301],["^/15\\.md/?$","/two-pointers/3sum.md",301],["^/15\\.mdx/?$","/two-pointers/3sum.mdx",301],["^/19/?$","/linked-list/remove-nth-node-from-end-of-list",301],["^/19\\.md/?$","/linked-list/remove-nth-node-from-end-of-list.md",301],["^/19\\.mdx/?$","/linked-list/remove-nth-node-from-end-of-list.mdx",301],["^/20/?$","/stack/valid-parentheses",301],["^/20\\.md/?$","/stack/valid-parentheses.md",301],["^/20\\.mdx/?$","/stack/valid-parentheses.mdx",301],["^/21/?$","/linked-list/merge-two-sorted-lists",301],["^/21\\.md/?$","/linked-list/merge-two-sorted-lists.md",301],["^/21\\.mdx/?$","/linked-list/merge-two-sorted-lists.mdx",301],["^/23/?$","/heap-priority-queue/merge-k-sorted-lists",301],["^/23\\.md/?$","/heap-priority-queue/merge-k-sorted-lists.md",301],["^/23\\.mdx/?$","/heap-priority-queue/merge-k-sorted-lists.mdx",301],["^/33/?$","/binary-search/search-in-rotated-sorted-array",301],["^/33\\.md/?$","/binary-search/search-in-rotated-sorted-array.md",301],["^/33\\.mdx/?$","/binary-search/search-in-rotated-sorted-array.mdx",301],["^/34/?$","/binary-search/find-first-and-last-position-of-element-in-sorted-array",301],["^/34\\.md/?$","/binary-search/find-first-and-last-position-of-element-in-sorted-array.md",301],["^/34\\.mdx/?$","/binary-search/find-first-and-last-position-of-element-in-sorted-array.mdx",301],["^/35/?$","/binary-search/search-insert-position",301],["^/35\\.md/?$","/binary-search/search-insert-position.md",301],["^/35\\.mdx/?$","/binary-search/search-insert-position.mdx",301],["^/36/?$","/matrix-index-math/valid-sudoku",301],["^/36\\.md/?$","/matrix-index-math/valid-sudoku.md",301],["^/36\\.mdx/?$","/matrix-index-math/valid-sudoku.mdx",301],["^/39/?$","/backtracking/combination-sum",301],["^/39\\.md/?$","/backtracking/combination-sum.md",301],["^/39\\.mdx/?$","/backtracking/combination-sum.mdx",301],["^/42/?$","/two-pointers/trapping-rain-water",301],["^/42\\.md/?$","/two-pointers/trapping-rain-water.md",301],["^/42\\.mdx/?$","/two-pointers/trapping-rain-water.mdx",301],["^/46/?$","/backtracking/permutations",301],["^/46\\.md/?$","/backtracking/permutations.md",301],["^/46\\.mdx/?$","/backtracking/permutations.mdx",301],["^/48/?$","/matrix-index-math/rotate-image",301],["^/48\\.md/?$","/matrix-index-math/rotate-image.md",301],["^/48\\.mdx/?$","/matrix-index-math/rotate-image.mdx",301],["^/49/?$","/hash-table/group-anagrams",301],["^/49\\.md/?$","/hash-table/group-anagrams.md",301],["^/49\\.mdx/?$","/hash-table/group-anagrams.mdx",301],["^/53/?$","/greedy/maximum-subarray",301],["^/53\\.md/?$","/greedy/maximum-subarray.md",301],["^/53\\.mdx/?$","/greedy/maximum-subarray.mdx",301],["^/54/?$","/matrix-index-math/spiral-matrix",301],["^/54\\.md/?$","/matrix-index-math/spiral-matrix.md",301],["^/54\\.mdx/?$","/matrix-index-math/spiral-matrix.mdx",301],["^/55/?$","/greedy/jump-game",301],["^/55\\.md/?$","/greedy/jump-game.md",301],["^/55\\.mdx/?$","/greedy/jump-game.mdx",301],["^/56/?$","/intervals/merge-intervals",301],["^/56\\.md/?$","/intervals/merge-intervals.md",301],["^/56\\.mdx/?$","/intervals/merge-intervals.mdx",301],["^/57/?$","/intervals/insert-interval",301],["^/57\\.md/?$","/intervals/insert-interval.md",301],["^/57\\.mdx/?$","/intervals/insert-interval.mdx",301],["^/62/?$","/multi-d-grid-dp/unique-paths",301],["^/62\\.md/?$","/multi-d-grid-dp/unique-paths.md",301],["^/62\\.mdx/?$","/multi-d-grid-dp/unique-paths.mdx",301],["^/64/?$","/multi-d-grid-dp/minimum-path-sum",301],["^/64\\.md/?$","/multi-d-grid-dp/minimum-path-sum.md",301],["^/64\\.mdx/?$","/multi-d-grid-dp/minimum-path-sum.mdx",301],["^/70/?$","/1d-dynamic-programming/climbing-stairs",301],["^/70\\.md/?$","/1d-dynamic-programming/climbing-stairs.md",301],["^/70\\.mdx/?$","/1d-dynamic-programming/climbing-stairs.mdx",301],["^/71/?$","/stack/simplify-path",301],["^/71\\.md/?$","/stack/simplify-path.md",301],["^/71\\.mdx/?$","/stack/simplify-path.mdx",301],["^/73/?$","/matrix-index-math/set-matrix-zeroes",301],["^/73\\.md/?$","/matrix-index-math/set-matrix-zeroes.md",301],["^/73\\.mdx/?$","/matrix-index-math/set-matrix-zeroes.mdx",301],["^/74/?$","/binary-search/search-a-2d-matrix",301],["^/74\\.md/?$","/binary-search/search-a-2d-matrix.md",301],["^/74\\.mdx/?$","/binary-search/search-a-2d-matrix.mdx",301],["^/76/?$","/sliding-window/minimum-window-substring",301],["^/76\\.md/?$","/sliding-window/minimum-window-substring.md",301],["^/76\\.mdx/?$","/sliding-window/minimum-window-substring.mdx",301],["^/78/?$","/backtracking/subsets",301],["^/78\\.md/?$","/backtracking/subsets.md",301],["^/78\\.mdx/?$","/backtracking/subsets.mdx",301],["^/80/?$","/two-pointers/remove-duplicates-from-sorted-array-ii",301],["^/80\\.md/?$","/two-pointers/remove-duplicates-from-sorted-array-ii.md",301],["^/80\\.mdx/?$","/two-pointers/remove-duplicates-from-sorted-array-ii.mdx",301],["^/82/?$","/linked-list/remove-duplicates-from-sorted-list-ii",301],["^/82\\.md/?$","/linked-list/remove-duplicates-from-sorted-list-ii.md",301],["^/82\\.mdx/?$","/linked-list/remove-duplicates-from-sorted-list-ii.mdx",301],["^/84/?$","/monotonic-stack/largest-rectangle-in-histogram",301],["^/84\\.md/?$","/monotonic-stack/largest-rectangle-in-histogram.md",301],["^/84\\.mdx/?$","/monotonic-stack/largest-rectangle-in-histogram.mdx",301],["^/92/?$","/linked-list/reverse-linked-list-ii",301],["^/92\\.md/?$","/linked-list/reverse-linked-list-ii.md",301],["^/92\\.mdx/?$","/linked-list/reverse-linked-list-ii.mdx",301],["^/98/?$","/binary-search-tree/validate-binary-search-tree",301],["^/98\\.md/?$","/binary-search-tree/validate-binary-search-tree.md",301],["^/98\\.mdx/?$","/binary-search-tree/validate-binary-search-tree.mdx",301],["^/102/?$","/tree-bfs/binary-tree-level-order-traversal",301],["^/102\\.md/?$","/tree-bfs/binary-tree-level-order-traversal.md",301],["^/102\\.mdx/?$","/tree-bfs/binary-tree-level-order-traversal.mdx",301],["^/104/?$","/tree-dfs/maximum-depth-of-binary-tree",301],["^/104\\.md/?$","/tree-dfs/maximum-depth-of-binary-tree.md",301],["^/104\\.mdx/?$","/tree-dfs/maximum-depth-of-binary-tree.mdx",301],["^/121/?$","/sliding-window/best-time-to-buy-and-sell-stock",301],["^/121\\.md/?$","/sliding-window/best-time-to-buy-and-sell-stock.md",301],["^/121\\.mdx/?$","/sliding-window/best-time-to-buy-and-sell-stock.mdx",301],["^/125/?$","/two-pointers/valid-palindrome",301],["^/125\\.md/?$","/two-pointers/valid-palindrome.md",301],["^/125\\.mdx/?$","/two-pointers/valid-palindrome.mdx",301],["^/127/?$","/graph-bfs/word-ladder",301],["^/127\\.md/?$","/graph-bfs/word-ladder.md",301],["^/127\\.mdx/?$","/graph-bfs/word-ladder.mdx",301],["^/128/?$","/hash-table/longest-consecutive-sequence",301],["^/128\\.md/?$","/hash-table/longest-consecutive-sequence.md",301],["^/128\\.mdx/?$","/hash-table/longest-consecutive-sequence.mdx",301],["^/133/?$","/graph-dfs/clone-graph",301],["^/133\\.md/?$","/graph-dfs/clone-graph.md",301],["^/133\\.mdx/?$","/graph-dfs/clone-graph.mdx",301],["^/134/?$","/greedy/gas-station",301],["^/134\\.md/?$","/greedy/gas-station.md",301],["^/134\\.mdx/?$","/greedy/gas-station.mdx",301],["^/141/?$","/linked-list/linked-list-cycle",301],["^/141\\.md/?$","/linked-list/linked-list-cycle.md",301],["^/141\\.mdx/?$","/linked-list/linked-list-cycle.mdx",301],["^/143/?$","/linked-list/reorder-list",301],["^/143\\.md/?$","/linked-list/reorder-list.md",301],["^/143\\.mdx/?$","/linked-list/reorder-list.mdx",301],["^/146/?$","/hybrid-structures/lru-cache",301],["^/146\\.md/?$","/hybrid-structures/lru-cache.md",301],["^/146\\.mdx/?$","/hybrid-structures/lru-cache.mdx",301],["^/150/?$","/stack/evaluate-reverse-polish-notation",301],["^/150\\.md/?$","/stack/evaluate-reverse-polish-notation.md",301],["^/150\\.mdx/?$","/stack/evaluate-reverse-polish-notation.mdx",301],["^/153/?$","/binary-search/find-minimum-in-rotated-sorted-array",301],["^/153\\.md/?$","/binary-search/find-minimum-in-rotated-sorted-array.md",301],["^/153\\.mdx/?$","/binary-search/find-minimum-in-rotated-sorted-array.mdx",301],["^/155/?$","/stack/min-stack",301],["^/155\\.md/?$","/stack/min-stack.md",301],["^/155\\.mdx/?$","/stack/min-stack.mdx",301],["^/162/?$","/binary-search/find-peak-element",301],["^/162\\.md/?$","/binary-search/find-peak-element.md",301],["^/162\\.mdx/?$","/binary-search/find-peak-element.mdx",301],["^/167/?$","/two-pointers/two-sum-ii-input-array-is-sorted",301],["^/167\\.md/?$","/two-pointers/two-sum-ii-input-array-is-sorted.md",301],["^/167\\.mdx/?$","/two-pointers/two-sum-ii-input-array-is-sorted.mdx",301],["^/189/?$","/two-pointers/rotate-array",301],["^/189\\.md/?$","/two-pointers/rotate-array.md",301],["^/189\\.mdx/?$","/two-pointers/rotate-array.mdx",301],["^/198/?$","/1d-dynamic-programming/house-robber",301],["^/198\\.md/?$","/1d-dynamic-programming/house-robber.md",301],["^/198\\.mdx/?$","/1d-dynamic-programming/house-robber.mdx",301],["^/199/?$","/tree-bfs/binary-tree-right-side-view",301],["^/199\\.md/?$","/tree-bfs/binary-tree-right-side-view.md",301],["^/199\\.mdx/?$","/tree-bfs/binary-tree-right-side-view.mdx",301],["^/200/?$","/graph-dfs/number-of-islands",301],["^/200\\.md/?$","/graph-dfs/number-of-islands.md",301],["^/200\\.mdx/?$","/graph-dfs/number-of-islands.mdx",301],["^/205/?$","/hash-table/isomorphic-strings",301],["^/205\\.md/?$","/hash-table/isomorphic-strings.md",301],["^/205\\.mdx/?$","/hash-table/isomorphic-strings.mdx",301],["^/206/?$","/linked-list/reverse-linked-list",301],["^/206\\.md/?$","/linked-list/reverse-linked-list.md",301],["^/206\\.mdx/?$","/linked-list/reverse-linked-list.mdx",301],["^/207/?$","/topological-sort/course-schedule",301],["^/207\\.md/?$","/topological-sort/course-schedule.md",301],["^/207\\.mdx/?$","/topological-sort/course-schedule.mdx",301],["^/208/?$","/trie/implement-trie-prefix-tree",301],["^/208\\.md/?$","/trie/implement-trie-prefix-tree.md",301],["^/208\\.mdx/?$","/trie/implement-trie-prefix-tree.mdx",301],["^/209/?$","/sliding-window/minimum-size-subarray-sum",301],["^/209\\.md/?$","/sliding-window/minimum-size-subarray-sum.md",301],["^/209\\.mdx/?$","/sliding-window/minimum-size-subarray-sum.mdx",301],["^/210/?$","/topological-sort/course-schedule-ii",301],["^/210\\.md/?$","/topological-sort/course-schedule-ii.md",301],["^/210\\.mdx/?$","/topological-sort/course-schedule-ii.mdx",301],["^/211/?$","/trie/design-add-and-search-words-data-structure",301],["^/211\\.md/?$","/trie/design-add-and-search-words-data-structure.md",301],["^/211\\.mdx/?$","/trie/design-add-and-search-words-data-structure.mdx",301],["^/215/?$","/heap-priority-queue/kth-largest-element-in-an-array",301],["^/215\\.md/?$","/heap-priority-queue/kth-largest-element-in-an-array.md",301],["^/215\\.mdx/?$","/heap-priority-queue/kth-largest-element-in-an-array.mdx",301],["^/217/?$","/hash-table/contains-duplicate",301],["^/217\\.md/?$","/hash-table/contains-duplicate.md",301],["^/217\\.mdx/?$","/hash-table/contains-duplicate.mdx",301],["^/224/?$","/stack/basic-calculator",301],["^/224\\.md/?$","/stack/basic-calculator.md",301],["^/224\\.mdx/?$","/stack/basic-calculator.mdx",301],["^/226/?$","/tree-dfs/invert-binary-tree",301],["^/226\\.md/?$","/tree-dfs/invert-binary-tree.md",301],["^/226\\.mdx/?$","/tree-dfs/invert-binary-tree.mdx",301],["^/230/?$","/binary-search-tree/kth-smallest-element-in-a-bst",301],["^/230\\.md/?$","/binary-search-tree/kth-smallest-element-in-a-bst.md",301],["^/230\\.mdx/?$","/binary-search-tree/kth-smallest-element-in-a-bst.mdx",301],["^/235/?$","/binary-search-tree/lowest-common-ancestor-of-a-binary-search-tree",301],["^/235\\.md/?$","/binary-search-tree/lowest-common-ancestor-of-a-binary-search-tree.md",301],["^/235\\.mdx/?$","/binary-search-tree/lowest-common-ancestor-of-a-binary-search-tree.mdx",301],["^/236/?$","/tree-dfs/lowest-common-ancestor-of-a-binary-tree",301],["^/236\\.md/?$","/tree-dfs/lowest-common-ancestor-of-a-binary-tree.md",301],["^/236\\.mdx/?$","/tree-dfs/lowest-common-ancestor-of-a-binary-tree.mdx",301],["^/238/?$","/prefix-sum/product-of-array-except-self",301],["^/238\\.md/?$","/prefix-sum/product-of-array-except-self.md",301],["^/238\\.mdx/?$","/prefix-sum/product-of-array-except-self.mdx",301],["^/242/?$","/hash-table/valid-anagram",301],["^/242\\.md/?$","/hash-table/valid-anagram.md",301],["^/242\\.mdx/?$","/hash-table/valid-anagram.mdx",301],["^/290/?$","/hash-table/word-pattern",301],["^/290\\.md/?$","/hash-table/word-pattern.md",301],["^/290\\.mdx/?$","/hash-table/word-pattern.mdx",301],["^/303/?$","/prefix-sum/range-sum-query-immutable",301],["^/303\\.md/?$","/prefix-sum/range-sum-query-immutable.md",301],["^/303\\.mdx/?$","/prefix-sum/range-sum-query-immutable.mdx",301],["^/322/?$","/1d-dynamic-programming/coin-change",301],["^/322\\.md/?$","/1d-dynamic-programming/coin-change.md",301],["^/322\\.mdx/?$","/1d-dynamic-programming/coin-change.mdx",301],["^/323/?$","/union-find/number-of-connected-components-in-an-undirected-graph",301],["^/323\\.md/?$","/union-find/number-of-connected-components-in-an-undirected-graph.md",301],["^/323\\.mdx/?$","/union-find/number-of-connected-components-in-an-undirected-graph.mdx",301],["^/344/?$","/two-pointers/reverse-string",301],["^/344\\.md/?$","/two-pointers/reverse-string.md",301],["^/344\\.mdx/?$","/two-pointers/reverse-string.mdx",301],["^/347/?$","/hash-table/top-k-frequent-elements",301],["^/347\\.md/?$","/hash-table/top-k-frequent-elements.md",301],["^/347\\.mdx/?$","/hash-table/top-k-frequent-elements.mdx",301],["^/380/?$","/hybrid-structures/insert-delete-getrandom-o1",301],["^/380\\.md/?$","/hybrid-structures/insert-delete-getrandom-o1.md",301],["^/380\\.mdx/?$","/hybrid-structures/insert-delete-getrandom-o1.mdx",301],["^/387/?$","/hash-table/first-unique-character-in-a-string",301],["^/387\\.md/?$","/hash-table/first-unique-character-in-a-string.md",301],["^/387\\.mdx/?$","/hash-table/first-unique-character-in-a-string.mdx",301],["^/392/?$","/two-pointers/is-subsequence",301],["^/392\\.md/?$","/two-pointers/is-subsequence.md",301],["^/392\\.mdx/?$","/two-pointers/is-subsequence.mdx",301],["^/417/?$","/graph-dfs/pacific-atlantic-water-flow",301],["^/417\\.md/?$","/graph-dfs/pacific-atlantic-water-flow.md",301],["^/417\\.mdx/?$","/graph-dfs/pacific-atlantic-water-flow.mdx",301],["^/424/?$","/sliding-window/longest-repeating-character-replacement",301],["^/424\\.md/?$","/sliding-window/longest-repeating-character-replacement.md",301],["^/424\\.mdx/?$","/sliding-window/longest-repeating-character-replacement.mdx",301],["^/435/?$","/intervals/non-overlapping-intervals",301],["^/435\\.md/?$","/intervals/non-overlapping-intervals.md",301],["^/435\\.mdx/?$","/intervals/non-overlapping-intervals.mdx",301],["^/451/?$","/hash-table/sort-characters-by-frequency",301],["^/451\\.md/?$","/hash-table/sort-characters-by-frequency.md",301],["^/451\\.mdx/?$","/hash-table/sort-characters-by-frequency.mdx",301],["^/496/?$","/monotonic-stack/next-greater-element-i",301],["^/496\\.md/?$","/monotonic-stack/next-greater-element-i.md",301],["^/496\\.mdx/?$","/monotonic-stack/next-greater-element-i.mdx",301],["^/525/?$","/prefix-sum/contiguous-array",301],["^/525\\.md/?$","/prefix-sum/contiguous-array.md",301],["^/525\\.mdx/?$","/prefix-sum/contiguous-array.mdx",301],["^/560/?$","/prefix-sum/subarray-sum-equals-k",301],["^/560\\.md/?$","/prefix-sum/subarray-sum-equals-k.md",301],["^/560\\.mdx/?$","/prefix-sum/subarray-sum-equals-k.mdx",301],["^/567/?$","/sliding-window/permutation-in-string",301],["^/567\\.md/?$","/sliding-window/permutation-in-string.md",301],["^/567\\.mdx/?$","/sliding-window/permutation-in-string.mdx",301],["^/643/?$","/sliding-window/maximum-average-subarray-i",301],["^/643\\.md/?$","/sliding-window/maximum-average-subarray-i.md",301],["^/643\\.mdx/?$","/sliding-window/maximum-average-subarray-i.mdx",301],["^/684/?$","/union-find/redundant-connection",301],["^/684\\.md/?$","/union-find/redundant-connection.md",301],["^/684\\.mdx/?$","/union-find/redundant-connection.mdx",301],["^/704/?$","/binary-search/binary-search",301],["^/704\\.md/?$","/binary-search/binary-search.md",301],["^/704\\.mdx/?$","/binary-search/binary-search.mdx",301],["^/739/?$","/monotonic-stack/daily-temperatures",301],["^/739\\.md/?$","/monotonic-stack/daily-temperatures.md",301],["^/739\\.mdx/?$","/monotonic-stack/daily-temperatures.mdx",301],["^/853/?$","/monotonic-stack/car-fleet",301],["^/853\\.md/?$","/monotonic-stack/car-fleet.md",301],["^/853\\.mdx/?$","/monotonic-stack/car-fleet.mdx",301],["^/875/?$","/binary-search/koko-eating-bananas",301],["^/875\\.md/?$","/binary-search/koko-eating-bananas.md",301],["^/875\\.mdx/?$","/binary-search/koko-eating-bananas.mdx",301],["^/876/?$","/linked-list/middle-of-the-linked-list",301],["^/876\\.md/?$","/linked-list/middle-of-the-linked-list.md",301],["^/876\\.mdx/?$","/linked-list/middle-of-the-linked-list.mdx",301],["^/901/?$","/monotonic-stack/online-stock-span",301],["^/901\\.md/?$","/monotonic-stack/online-stock-span.md",301],["^/901\\.mdx/?$","/monotonic-stack/online-stock-span.mdx",301],["^/973/?$","/heap-priority-queue/k-closest-points-to-origin",301],["^/973\\.md/?$","/heap-priority-queue/k-closest-points-to-origin.md",301],["^/973\\.mdx/?$","/heap-priority-queue/k-closest-points-to-origin.mdx",301],["^/974/?$","/prefix-sum/subarray-sums-divisible-by-k",301],["^/974\\.md/?$","/prefix-sum/subarray-sums-divisible-by-k.md",301],["^/974\\.mdx/?$","/prefix-sum/subarray-sums-divisible-by-k.mdx",301],["^/977/?$","/two-pointers/squares-of-a-sorted-array",301],["^/977\\.md/?$","/two-pointers/squares-of-a-sorted-array.md",301],["^/977\\.mdx/?$","/two-pointers/squares-of-a-sorted-array.mdx",301],["^/994/?$","/graph-bfs/rotting-oranges",301],["^/994\\.md/?$","/graph-bfs/rotting-oranges.md",301],["^/994\\.mdx/?$","/graph-bfs/rotting-oranges.mdx",301],["^/1004/?$","/sliding-window/max-consecutive-ones-iii",301],["^/1004\\.md/?$","/sliding-window/max-consecutive-ones-iii.md",301],["^/1004\\.mdx/?$","/sliding-window/max-consecutive-ones-iii.mdx",301],["^/1143/?$","/multi-d-grid-dp/longest-common-subsequence",301],["^/1143\\.md/?$","/multi-d-grid-dp/longest-common-subsequence.md",301],["^/1143\\.mdx/?$","/multi-d-grid-dp/longest-common-subsequence.mdx",301],["^/1448/?$","/tree-bfs/count-good-nodes-in-binary-tree",301],["^/1448\\.md/?$","/tree-bfs/count-good-nodes-in-binary-tree.md",301],["^/1448\\.mdx/?$","/tree-bfs/count-good-nodes-in-binary-tree.mdx",301],["^/1832/?$","/hash-table/check-if-the-sentence-is-pangram",301],["^/1832\\.md/?$","/hash-table/check-if-the-sentence-is-pangram.md",301],["^/1832\\.mdx/?$","/hash-table/check-if-the-sentence-is-pangram.mdx",301],["^/appendix/array/?$","/appendix#array",301],["^/appendix/binary-tree/?$","/appendix#binary-tree",301],["^/appendix/directed-acyclic-graph/?$","/appendix#directed-acyclic-graph",301],["^/appendix/doubly-linked-list/?$","/appendix#doubly-linked-list",301],["^/appendix/graph/?$","/appendix#graph",301],["^/appendix/k-d-tree/?$","/appendix#k-d-tree",301],["^/appendix/queue/?$","/appendix#queue",301],["^/appendix/string/?$","/appendix#string",301],["^/appendix/tree/?$","/appendix#tree",301],["^/appendix/bidirectional-search/?$","/appendix#bidirectional-search",301],["^/appendix/binary-lifting/?$","/appendix#binary-lifting",301],["^/appendix/bit-manipulation/?$","/appendix#bit-manipulation",301],["^/appendix/bracket-sequences/?$","/appendix#bracket-sequences",301],["^/appendix/bucket-sort/?$","/appendix#bucket-sort",301],["^/appendix/complete-knapsack/?$","/appendix#complete-knapsack",301],["^/appendix/divide-and-conquer/?$","/appendix#divide-and-conquer",301],["^/appendix/floyds-cycle-finding-algorithm/?$","/appendix#floyds-cycle-finding-algorithm",301],["^/appendix/knapsack-problem/?$","/appendix#knapsack-problem",301],["^/appendix/longest-common-subsequence/?$","/appendix#longest-common-subsequence",301],["^/appendix/lowest-common-ancestor/?$","/appendix#lowest-common-ancestor",301],["^/appendix/memoization/?$","/appendix#memoization",301],["^/appendix/merge-sort/?$","/appendix#merge-sort",301],["^/appendix/quickselect/?$","/appendix#quickselect",301],["^/appendix/quicksort/?$","/appendix#quicksort",301],["^/appendix/recursion/?$","/appendix#recursion",301],["^/appendix/simulation/?$","/appendix#simulation",301],["^/appendix/sorting/?$","/appendix#sorting",301],["^/appendix/tournament-sort/?$","/appendix#tournament-sort",301],["^/appendix/combinatorics/?$","/appendix#combinatorics",301],["^/appendix/counting/?$","/appendix#counting",301],["^/appendix/design/?$","/appendix#design",301],["^/appendix/geometry/?$","/appendix#geometry",301],["^/appendix/math/?$","/appendix#math",301]],"buildArtifactsRoot":".","contentRoutes":["/","/1d-dynamic-programming","/1d-dynamic-programming/climbing-stairs","/1d-dynamic-programming/coin-change","/1d-dynamic-programming/house-robber","/backtracking","/backtracking/combination-sum","/backtracking/permutations","/backtracking/subsets","/binary-search","/binary-search-tree","/binary-search-tree/kth-smallest-element-in-a-bst","/binary-search-tree/lowest-common-ancestor-of-a-binary-search-tree","/binary-search-tree/validate-binary-search-tree","/binary-search/binary-search","/binary-search/find-first-and-last-position-of-element-in-sorted-array","/binary-search/find-minimum-in-rotated-sorted-array","/binary-search/find-peak-element","/binary-search/koko-eating-bananas","/binary-search/median-of-two-sorted-arrays","/binary-search/search-a-2d-matrix","/binary-search/search-in-rotated-sorted-array","/binary-search/search-insert-position","/graph-bfs","/graph-bfs/rotting-oranges","/graph-bfs/word-ladder","/graph-dfs","/graph-dfs/clone-graph","/graph-dfs/number-of-islands","/graph-dfs/pacific-atlantic-water-flow","/greedy","/greedy/gas-station","/greedy/jump-game","/greedy/maximum-subarray","/hash-table","/hash-table/check-if-the-sentence-is-pangram","/hash-table/contains-duplicate","/hash-table/first-unique-character-in-a-string","/hash-table/group-anagrams","/hash-table/isomorphic-strings","/hash-table/longest-consecutive-sequence","/hash-table/sort-characters-by-frequency","/hash-table/top-k-frequent-elements","/hash-table/two-sum","/hash-table/valid-anagram","/hash-table/word-pattern","/heap-priority-queue","/heap-priority-queue/k-closest-points-to-origin","/heap-priority-queue/kth-largest-element-in-an-array","/heap-priority-queue/merge-k-sorted-lists","/hybrid-structures","/hybrid-structures/add-two-numbers","/hybrid-structures/insert-delete-getrandom-o1","/hybrid-structures/lru-cache","/intervals","/intervals/insert-interval","/intervals/merge-intervals","/intervals/non-overlapping-intervals","/keywords","/linked-list","/linked-list/linked-list-cycle","/linked-list/merge-two-sorted-lists","/linked-list/middle-of-the-linked-list","/linked-list/remove-duplicates-from-sorted-list-ii","/linked-list/remove-nth-node-from-end-of-list","/linked-list/reorder-list","/linked-list/reverse-linked-list","/linked-list/reverse-linked-list-ii","/matrix-index-math","/matrix-index-math/rotate-image","/matrix-index-math/set-matrix-zeroes","/matrix-index-math/spiral-matrix","/matrix-index-math/valid-sudoku","/monotonic-stack","/monotonic-stack/car-fleet","/monotonic-stack/daily-temperatures","/monotonic-stack/largest-rectangle-in-histogram","/monotonic-stack/next-greater-element-i","/monotonic-stack/online-stock-span","/multi-d-grid-dp","/multi-d-grid-dp/longest-common-subsequence","/multi-d-grid-dp/minimum-path-sum","/multi-d-grid-dp/unique-paths","/prefix-sum","/prefix-sum/contiguous-array","/prefix-sum/product-of-array-except-self","/prefix-sum/range-sum-query-immutable","/prefix-sum/subarray-sum-equals-k","/prefix-sum/subarray-sums-divisible-by-k","/sliding-window","/sliding-window/best-time-to-buy-and-sell-stock","/sliding-window/longest-repeating-character-replacement","/sliding-window/longest-substring-without-repeating-characters","/sliding-window/max-consecutive-ones-iii","/sliding-window/maximum-average-subarray-i","/sliding-window/minimum-size-subarray-sum","/sliding-window/minimum-window-substring","/sliding-window/permutation-in-string","/stack","/stack/basic-calculator","/stack/evaluate-reverse-polish-notation","/stack/min-stack","/stack/simplify-path","/stack/valid-parentheses","/topological-sort","/topological-sort/course-schedule","/topological-sort/course-schedule-ii","/tree-bfs","/tree-bfs/binary-tree-level-order-traversal","/tree-bfs/binary-tree-right-side-view","/tree-bfs/count-good-nodes-in-binary-tree","/tree-dfs","/tree-dfs/invert-binary-tree","/tree-dfs/lowest-common-ancestor-of-a-binary-tree","/tree-dfs/maximum-depth-of-binary-tree","/trie","/trie/design-add-and-search-words-data-structure","/trie/implement-trie-prefix-tree","/two-pointers","/two-pointers/3sum","/two-pointers/container-with-most-water","/two-pointers/is-subsequence","/two-pointers/remove-duplicates-from-sorted-array-ii","/two-pointers/reverse-string","/two-pointers/rotate-array","/two-pointers/squares-of-a-sorted-array","/two-pointers/trapping-rain-water","/two-pointers/two-sum-ii-input-array-is-sorted","/two-pointers/valid-palindrome","/union-find","/union-find/number-of-connected-components-in-an-undirected-graph","/union-find/redundant-connection"],"homeLinkHeader":"; rel=\"service-desc\"; type=\"application/json\", ; rel=\"alternate\"; type=\"text/markdown\""})], + markdown: { + processor: blumeMarkdownProcessor({ ...{"basePath":"","codeThemes":{"dark":"github-dark","light":"github-light"},"contentRoot":"content","deployBase":"","externalLinks":false,"headingAnchors":true,"variables":{}}, dataFile: fileURLToPath(new URL("./src/generated/data.json", import.meta.url)) }), + shikiConfig: { + themes: { + light: "github-light", + dark: "github-dark", + }, + defaultColor: false, + transformers: [blumeTwoslashTransformer(), ...blumeShikiTransformers({"icons":true})], + }, + }, + devToolbar: { enabled: false }, + // One canonical URL per page: canonicals, the sitemap, and hreflang all use + // the slashless form, so the slashed spelling is not a second address. Astro + // applies this itself — an on-demand route redirects, and the integration + // has the dev server redirect too, ahead of Astro's own 404 — and the Vercel + // adapter turns it into the platform's 308 route, so the Build Output config + // needs no hand-spliced redirect (see deploy/vercel-negotiation.ts). Static hosts + // serve the `index.html` directory layout as they always did. + trailingSlash: "never", + // The layouts render Astro's , and its in-place swaps read + // from the prefetch cache — fetching every link on hover/viewport hides the + // request latency behind the user's intent, so most navigations swap + // instantly. + prefetch: { prefetchAll: true }, + // Prerender several pages at once. Rendering is single-threaded, but a + // page's OG card renders on a native thread and its HTML is written + // asynchronously, so the main thread would otherwise idle behind each + // page's off-thread work. Capped at 8: the gain flattens there and beyond it + // the overlap only adds memory. + build: { concurrency: Math.min(8, availableParallelism()) }, + vite: { + plugins: [tailwindcss(), includeHmrPlugin(fileURLToPath(new URL("./src/generated/includes.json", import.meta.url))), mdxSourceErrorsPlugin(), prerenderDepsPlugin()], + build: { + chunkSizeWarningLimit: 2048, + rolldownOptions: { + onLog(level, log, handler) { + if (log.code === "MODULE_LEVEL_DIRECTIVE" && String(log.message).includes("use astro:head-inject")) { + return; + } + handler(level, log); + }, + }, + }, + // Everything hydration can reach must be part of the dev dep optimizer's + // FIRST run. The Vite root is the generated runtime, so user pages, + // islands, and aliased components live outside it and are only crawled + // when first requested — and `react/compiler-runtime` is injected by the + // React Compiler, so no source scan can ever see it. A dependency discovered after + // hydration begins triggers a mid-session re-optimization whose new + // generation imports React through new `?v=` URLs; the browser then + // evaluates a second React copy and every island tears down with + // "Invalid hook call" (#157). `entries` points the startup scanner at + // the user's files (the scanner follows their imports, so their deps land + // in the initial optimization); the compiler runtime rides the include + // list because only the transform pipeline knows it exists. + // + // The mermaid/epub includes fix CJS interop instead: both lazy client-side + // imports land on CJS/UMD files (mermaid statically imports dayjs as CJS, + // epub-gen-memory's browser bundle is a browserified UMD) that break when + // served as raw ESM — mermaid throws on load and the EPUB export throws + // `epub is not a function`. They resolve through the `blume` package + // (they aren't direct deps of the generated project), so the nested + // `blume > x` form is required, and epub-gen-memory must name the + // `/bundle` subpath that is actually imported: optimizing the package + // root leaves that entry out. Production (Rollup) already handles the + // interop, so all of this only affects dev. + // + // The search adapter's client library rides the list for the same reason + // as the compiler runtime: the search dialog lazy-imports it on first + // open, and discovering it then re-optimizes and reloads the page. + optimizeDeps: { + entries: ["./pages/**/*.astro","./islands/**/*.{jsx,svelte,tsx,vue}"], + include: ["blume > mermaid","blume > @orama/orama"], + }, + // Blume's render-time deps are forced external on both build environments so + // native bindings resolve at runtime and isolated linkers don't bundle + // symlinked store copies (which would surface their children as unresolvable + // imports). See RENDER_EXTERNAL_DEPS / prerenderDepsPlugin. + // + // The SSR externals go through the legacy `ssr.external` key rather than + // `environments.ssr`: defining a user-owned `environments.ssr` block + // collides with the internal environment Astro 7 builds the server under and + // detaches the adapter's server entrypoint from the rolldown input, so the + // SSR entry is emitted as `index.mjs` instead of the `entry.mjs` the + // Vercel adapter's `astro:build:done` hook then fails to find. `prerender` + // is Astro-only and has no legacy equivalent, so it stays under `environments`. + ssr: { external: ["@astrojs/markdown-satteri","@pierre/diffs","@shikijs/transformers","@takumi-rs/core","@takumi-rs/helpers","@takumi-rs/wasm","github-slugger","katex","shiki","simple-icons","takumi-js","takumi-js/helpers","zod"] }, + environments: { + prerender: { resolve: { external: ["@astrojs/markdown-satteri","@pierre/diffs","@shikijs/transformers","@takumi-rs/core","@takumi-rs/helpers","@takumi-rs/wasm","github-slugger","katex","shiki","simple-icons","takumi-js","takumi-js/helpers","zod"] } }, + }, + resolve: { + alias: { + "blume:ask": fileURLToPath(new URL("./src/generated/Ask.astro", import.meta.url)), + "blume:consent-client": fileURLToPath(new URL("./src/generated/consent-client.ts", import.meta.url)), + "blume:examples": fileURLToPath(new URL("./src/generated/examples.ts", import.meta.url)), + "blume:examples-theme": fileURLToPath(new URL("./src/generated/examples.css", import.meta.url)), + "blume:features": fileURLToPath(new URL("./src/generated/features.ts", import.meta.url)), + "blume:search-client": fileURLToPath(new URL("./src/generated/search-client.ts", import.meta.url)), + "blume:theme": fileURLToPath(new URL("./src/generated/app.css", import.meta.url)), + "blume:ask-data": fileURLToPath(new URL("./src/generated/ask-data.json", import.meta.url)), + "blume:content-assets": fileURLToPath(new URL("./src/generated/content-assets.json", import.meta.url)), + "blume:data": fileURLToPath(new URL("./src/generated/data.json", import.meta.url)), + "blume:mcp-data": fileURLToPath(new URL("./src/generated/mcp-data.json", import.meta.url)), + "blume:openapi": fileURLToPath(new URL("./src/generated/openapi.json", import.meta.url)), + "blume:raw-markdown": fileURLToPath(new URL("./src/generated/raw-markdown.json", import.meta.url)), + "blume:rss": fileURLToPath(new URL("./src/generated/rss.json", import.meta.url)), + "blume:search-index": fileURLToPath(new URL("./src/generated/search.json", import.meta.url)), + }, + }, + server: { + fs: { + allow: ["."], + }, + }, + }, +}); diff --git a/apps/docs/src/content.config.ts b/apps/docs/src/content.config.ts new file mode 100644 index 0000000..1b6fa80 --- /dev/null +++ b/apps/docs/src/content.config.ts @@ -0,0 +1,27 @@ +// Generated by Blume. Do not edit. +import { defineCollection } from "astro:content"; +import { glob } from "astro/loaders"; +import { withIncludeRefresh } from "blume/astro"; +import { pageCollectionSchema } from "blume/core/schema.ts"; + +// withIncludeRefresh keeps -bearing pages fresh: plain .md entries +// are rendered at sync time and digest-cached on the page file alone, so a +// partial edit (or a warm-cache rebuild after one) would serve stale HTML. +// +// pageCollectionSchema is the scan's page front-matter schema, so entry.data +// is typed and normalized the same way; it passes custom keys through and +// falls back to defaults for a page the scan already dropped as invalid. +// +// Astro's content store re-parses an entry only when its file or this config +// changes, so naming the Blume version (2.2.4) here re-parses +// every entry after an upgrade: none keeps what an older schema produced. +const docs = defineCollection({ + loader: withIncludeRefresh(glob({ + pattern: ["**/*.{md,mdx}","!**/_*","!**/.*","!**/.blume-verify/**","!**/.cache/**","!**/.git/**","!**/.next/**","!**/.turbo/**","!**/.vercel/**","!**/dist/**","!**/node_modules/**"], + base: "content", + generateId: ({ entry }) => entry, + }), "./src/generated/includes.json"), + schema: pageCollectionSchema, +}); + +export const collections = { docs };