{"docsConfig":{"theme":"mint","$schema":"https://www.mintlify.com/docs.json","name":"leetcode-py","description":"Modern Python LeetCode practice environment with automated problem generation, beautiful data structure visualizations, and comprehensive testing","colors":{"primary":"#3776AB","light":"#5A94C4","dark":"#387EB8"},"logo":{"light":"https://mintcdn.com/leetcode-py/aJKJ4BOUnXP-zM3G/img/brand/leetcode-py-lockup.svg?fit=max\u0026auto=format\u0026n=aJKJ4BOUnXP-zM3G\u0026q=85\u0026s=34c74a404ed256642a54345a92489c97","dark":"https://mintcdn.com/leetcode-py/aJKJ4BOUnXP-zM3G/img/brand/leetcode-py-lockup-dark.svg?fit=max\u0026auto=format\u0026n=aJKJ4BOUnXP-zM3G\u0026q=85\u0026s=263c5757fbf5e547de96291651e279e9"},"favicon":"https://mintcdn.com/leetcode-py/VCrzlUI648LnF7Pk/favicon.svg?fit=max\u0026auto=format\u0026n=VCrzlUI648LnF7Pk\u0026q=85\u0026s=3b1dffe162e80798a504a810fcbeba45","background":{"color":{"light":"#F8F9FB","dark":"#0D1117"}},"navbar":{"links":[{"href":"https://github.com/wislertt/leetcode-py","label":"GitHub"}]},"footer":{"socials":{"github":"https://github.com/wislertt/leetcode-py"},"links":[{"header":"Resources","items":[{"label":"PyPI","href":"https://pypi.org/project/leetcode-py-sdk"},{"label":"Why leetcode-py","href":"/getting-started/why-leetcode-py"},{"label":"Made by Wisaroot Lertthaweedech","href":"https://wisl.dev"}]}]},"seo":{"metatags":{"canonical":"https://leetcode-py.wisl.dev","og:image":"https://leetcode-py.wisl.dev/img/brand/og-card-light.png","twitter:card":"summary_large_image"},"organization":{"url":"https://leetcode-py.wisl.dev","sameAs":["https://github.com/wislertt/leetcode-py","https://pypi.org/project/leetcode-py-sdk/","https://wisl.dev"]},"indexing":"all"},"styling":{"codeblocks":{"theme":{"light":"github-light","dark":"github-dark"}},"latex":true},"metadata":{"timestamp":true},"markdown":{"instructions":["leetcode-py is a Python LeetCode practice environment generator with one CLI: lcpy. It is not a service or platform.","Each problem is a directory under leetcode/ with README.md, solution.py, test_solution.py, helpers.py, and playground.ipynb. lcpy gen creates them from JSON templates bundled with the package.","Examples are backed by tests; copy them verbatim."]},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"leetcode-py","hasAudioNarration":false,"actualSubdomain":"leetcode-py","customDomains":["leetcode-py.wisl.dev"],"gitSource":{"type":"github","owner":"wislertt","repo":"leetcode-py","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"entitlements":{},"buildId":"6aeadd835fa1f5f231996c95","clientVersion":"0.0.4094","searchFilterCounts":[{"language":"default","tag":"Catalog","count":13},{"language":"default","tag":"Practice","count":5},{"language":"default","tag":"Troubleshooting","count":5},{"language":"default","tag":"Getting Started","count":3},{"language":"default","tag":"CLI","count":2},{"language":"default","tag":"Contributing","count":2},{"language":"default","tag":"Welcome","count":1}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"custom.css","content":".sd-catalog-table th:first-child,.sd-catalog-table td:first-child{min-width:0;width:3rem}html.dark .sd-hero-light{display:none}html:not(.dark) .sd-hero-dark{display:none}.sd-badges{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-start;margin:0 0 16px;padding:0}.sd-badges a,.sd-badges a:hover,.sd-badges a:visited{display:inline-flex;flex:0 0 auto;line-height:0;height:auto!important;max-height:24px;padding:0!important;margin:0!important;text-decoration:none!important;border-bottom:none!important;background:none!important;background-image:none!important}.sd-badges img{height:20px;width:auto;max-width:none;display:block;margin:0!important}.sd-preview{border:1px solid #387eb8;border-radius:10px}"}],"page":{"pagePath":"catalog/medium-5","slug":"/catalog/medium-5","pageMetadata":{"title":"Medium LeetCode Problems in Python, Part 5","sidebarTitle":"Medium (801-820)","description":"All 820 Medium LeetCode problems with tested Python solutions. Part 5 of 5: problems 801-820.","href":"/catalog/medium-5"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"All 820 Medium LeetCode problems with tested Python solutions. Part 5 of 5: problems 801-820.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,p:`p`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{Table}=_components;if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Medium holds 820 problems.`}),`\n`,_jsx(`div`,{className:`sd-catalog-table`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`#`}),_jsx(_components.th,{children:`Problem`}),_jsx(_components.th,{children:`Difficulty`}),_jsx(_components.th,{children:`Solution`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`2971`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/problems/find-polygon-with-the-largest-perimeter`,children:`Find Polygon With the Largest Perimeter`})}),_jsx(_components.td,{children:`Medium`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`https://github.com/wislertt/leetcode-py/blob/main/leetcode/find_polygon_with_the_largest_perimeter/solution.py`,children:`solution.py`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`2976`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/problems/minimum-cost-to-convert-string-i`,children:`Minimum Cost to Convert String I`})}),_jsx(_components.td,{children:`Medium`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`https://github.com/wislertt/leetcode-py/blob/main/leetcode/minimum_cost_to_convert_string_i/solution.py`,children:`solution.py`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`3011`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/problems/find-if-array-can-be-sorted`,children:`Find if Array Can Be Sorted`})}),_jsx(_components.td,{children:`Medium`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`https://github.com/wislertt/leetcode-py/blob/main/leetcode/find_if_array_can_be_sorted/solution.py`,children:`solution.py`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`3016`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/problems/minimum-number-of-pushes-to-type-word-ii`,children:`Minimum Number of Pushes to Type Word II`})}),_jsx(_components.td,{children:`Medium`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`https://github.com/wislertt/leetcode-py/blob/main/leetcode/minimum_number_of_pushes_to_type_word_ii/solution.py`,children:`solution.py`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`3043`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/problems/find-the-length-of-the-longest-common-prefix`,children:`Find the Length of the Longest Common Prefix`})}),_jsx(_components.td,{children:`Medium`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`https://github.com/wislertt/leetcode-py/blob/main/leetcode/find_the_length_of_the_longest_common_prefix/solution.py`,children:`solution.py`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`3097`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/problems/shortest-subarray-with-or-at-least-k-ii`,children:`Shortest Subarray With OR at Least K II`})}),_jsx(_components.td,{children:`Medium`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`https://github.com/wislertt/leetcode-py/blob/main/leetcode/shortest_subarray_with_or_at_least_k_ii/solution.py`,children:`solution.py`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`3133`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/problems/minimum-array-end`,children:`Minimum Array End`})}),_jsx(_components.td,{children:`Medium`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`https://github.com/wislertt/leetcode-py/blob/main/leetcode/minimum_array_end/solution.py`,children:`solution.py`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`3169`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/problems/count-days-without-meetings`,children:`Count Days Without Meetings`})}),_jsx(_components.td,{children:`Medium`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`https://github.com/wislertt/leetcode-py/blob/main/leetcode/count_days_without_meetings/solution.py`,children:`solution.py`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`3191`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/problems/minimum-operations-to-make-binary-array-elements-equal-to-one-i`,children:`Minimum Operations to Make Binary Array Elements Equal to One I`})}),_jsx(_components.td,{children:`Medium`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`https://github.com/wislertt/leetcode-py/blob/main/leetcode/minimum_operations_to_make_binary_array_elements_equal_to_one_i/solution.py`,children:`solution.py`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`3208`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/problems/alternating-groups-ii`,children:`Alternating Groups II`})}),_jsx(_components.td,{children:`Medium`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`https://github.com/wislertt/leetcode-py/blob/main/leetcode/alternating_groups_ii/solution.py`,children:`solution.py`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`3217`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/problems/delete-nodes-from-linked-list-present-in-array`,children:`Delete Nodes From Linked List Present in Array`})}),_jsx(_components.td,{children:`Medium`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`https://github.com/wislertt/leetcode-py/blob/main/leetcode/delete_nodes_from_linked_list_present_in_array/solution.py`,children:`solution.py`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`3223`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/problems/minimum-length-of-string-after-operations`,children:`Minimum Length of String After Operations`})}),_jsx(_components.td,{children:`Medium`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`https://github.com/wislertt/leetcode-py/blob/main/leetcode/minimum_length_of_string_after_operations/solution.py`,children:`solution.py`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`3243`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/problems/shortest-distance-after-queries-i`,children:`Shortest Distance After Road Addition Queries I`})}),_jsx(_components.td,{children:`Medium`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`https://github.com/wislertt/leetcode-py/blob/main/leetcode/shortest_distance_after_queries_i/solution.py`,children:`solution.py`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`3254`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/problems/find-the-power-of-k-size-subarrays-i`,children:`Find the Power of K-Size Subarrays I`})}),_jsx(_components.td,{children:`Medium`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`https://github.com/wislertt/leetcode-py/blob/main/leetcode/find_the_power_of_k_size_subarrays_i/solution.py`,children:`solution.py`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`3306`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/problems/count-of-substrings-containing-every-vowel-and-k-consonants-ii`,children:`Count of Substrings Containing Every Vowel and K Consonants II`})}),_jsx(_components.td,{children:`Medium`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`https://github.com/wislertt/leetcode-py/blob/main/leetcode/count_of_substrings_containing_every_vowel_and_k_consonants_ii/solution.py`,children:`solution.py`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`3394`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/problems/check-if-grid-can-be-cut-into-sections`,children:`Check if Grid can be Cut into Sections`})}),_jsx(_components.td,{children:`Medium`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`https://github.com/wislertt/leetcode-py/blob/main/leetcode/check_if_grid_can_be_cut_into_sections/solution.py`,children:`solution.py`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`3434`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/problems/maximum-frequency-after-subarray-operation`,children:`Maximum Frequency After Subarray Operation`})}),_jsx(_components.td,{children:`Medium`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`https://github.com/wislertt/leetcode-py/blob/main/leetcode/maximum_frequency_after_subarray_operation/solution.py`,children:`solution.py`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`3481`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/problems/apply-substitutions`,children:`Apply Substitutions`})}),_jsx(_components.td,{children:`Medium`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`https://github.com/wislertt/leetcode-py/blob/main/leetcode/apply_substitutions/solution.py`,children:`solution.py`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`3572`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/problems/maximize-ysum-by-picking-a-triplet-of-distinct-xvalues`,children:`Maximize Y-Sum by Picking a Triplet of Distinct X-Values`})}),_jsx(_components.td,{children:`Medium`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`https://github.com/wislertt/leetcode-py/blob/main/leetcode/maximize_ysum_by_picking_a_triplet_of_distinct_xvalues/solution.py`,children:`solution.py`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`3711`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/problems/maximum-transactions-without-negative-balance`,children:`Maximum Transactions Without Negative Balance`})}),_jsx(_components.td,{children:`Medium`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`https://github.com/wislertt/leetcode-py/blob/main/leetcode/maximum_transactions_without_negative_balance/solution.py`,children:`solution.py`})})]})]})]})}),`\n`,_jsxs(_components.p,{children:[`Pages: `,_jsx(_components.a,{href:`/catalog/medium`,children:`1`}),`, `,_jsx(_components.a,{href:`/catalog/medium-2`,children:`2`}),`, `,_jsx(_components.a,{href:`/catalog/medium-3`,children:`3`}),`, `,_jsx(_components.a,{href:`/catalog/medium-4`,children:`4`}),`, 5`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":{"theme":{"light":"github-light","dark":"github-dark"}},"config":{},"pageMetadata":{"title":"Medium LeetCode Problems in Python, Part 5","sidebarTitle":"Medium (801-820)","description":"All 820 Medium LeetCode problems with tested Python solutions. Part 5 of 5: problems 801-820.","href":"/catalog/medium-5"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"subdomain":"leetcode-py","siteName":"leetcode-py","title":"Medium LeetCode Problems in Python, Part 5 - leetcode-py","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-12T04:42:29.115Z","gitLastModified":"2026-10-12T04:42:19.000Z","originalFileLocation":"catalog/medium-5.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"All 820 Medium LeetCode problems with tested Python solutions. Part 5 of 5: problems 801-820.\">\u003cmeta data-mint-head name=\"application-name\" content=\"leetcode-py\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/leetcode-py/MPF4VdYq1xxotsp3/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/leetcode-py/MPF4VdYq1xxotsp3/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/leetcode-py/MPF4VdYq1xxotsp3/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/leetcode-py/MPF4VdYq1xxotsp3/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/leetcode-py/MPF4VdYq1xxotsp3/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/leetcode-py/MPF4VdYq1xxotsp3/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/leetcode-py/MPF4VdYq1xxotsp3/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/leetcode-py/MPF4VdYq1xxotsp3/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/leetcode-py/MPF4VdYq1xxotsp3/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Medium LeetCode Problems in Python, Part 5 - leetcode-py\">\u003cmeta data-mint-head property=\"og:description\" content=\"All 820 Medium LeetCode problems with tested Python solutions. Part 5 of 5: problems 801-820.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"leetcode-py\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://leetcode-py.wisl.dev/catalog/medium-5\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://leetcode-py.wisl.dev/img/brand/og-card-light.png\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Medium LeetCode Problems in Python, Part 5 - leetcode-py\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"All 820 Medium LeetCode problems with tested Python solutions. Part 5 of 5: problems 801-820.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://leetcode-py.wisl.dev/img/brand/og-card-light.png\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/leetcode-py/MPF4VdYq1xxotsp3/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"leetcode-py\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#3776AB\">\u003clink data-mint-head rel=\"canonical\" href=\"https://leetcode-py.wisl.dev/catalog/medium-5\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/catalog/medium-5.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://leetcode-py.wisl.dev/#organization\",\"name\":\"leetcode-py\",\"url\":\"https://leetcode-py.wisl.dev\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/leetcode-py/aJKJ4BOUnXP-zM3G/img/brand/leetcode-py-lockup.svg?fit=max\u0026auto=format\u0026n=aJKJ4BOUnXP-zM3G\u0026q=85\u0026s=34c74a404ed256642a54345a92489c97\"},\"sameAs\":[\"https://github.com/wislertt/leetcode-py\",\"https://pypi.org/project/leetcode-py-sdk/\",\"https://wisl.dev\"]},{\"@type\":\"WebSite\",\"@id\":\"https://leetcode-py.wisl.dev#website\",\"name\":\"leetcode-py\",\"url\":\"https://leetcode-py.wisl.dev\",\"publisher\":{\"@id\":\"https://leetcode-py.wisl.dev/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://leetcode-py.wisl.dev/catalog/medium-5#webpage\",\"url\":\"https://leetcode-py.wisl.dev/catalog/medium-5\",\"name\":\"Medium LeetCode Problems in Python, Part 5\",\"description\":\"All 820 Medium LeetCode problems with tested Python solutions. Part 5 of 5: problems 801-820.\",\"dateModified\":\"2026-10-12T04:42:19.000Z\",\"isPartOf\":{\"@id\":\"https://leetcode-py.wisl.dev#website\"}},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://leetcode-py.wisl.dev/catalog/medium-5#article\",\"headline\":\"Medium LeetCode Problems in Python, Part 5\",\"name\":\"Medium LeetCode Problems in Python, Part 5\",\"description\":\"All 820 Medium LeetCode problems with tested Python solutions. Part 5 of 5: problems 801-820.\",\"url\":\"https://leetcode-py.wisl.dev/catalog/medium-5\",\"mainEntityOfPage\":{\"@id\":\"https://leetcode-py.wisl.dev/catalog/medium-5#webpage\"},\"image\":\"https://leetcode-py.wisl.dev/img/brand/og-card-light.png\",\"dateModified\":\"2026-10-12T04:42:19.000Z\",\"publisher\":{\"@id\":\"https://leetcode-py.wisl.dev/#organization\"},\"isPartOf\":{\"@id\":\"https://leetcode-py.wisl.dev#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"leetcode-py\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"leetcode-py","nav":{"global":null,"groups":[{"group":"Welcome","pages":[{"title":"LeetCode Practice Environments in Python","sidebarTitle":"leetcode-py","href":"/index"}]},{"group":"Getting Started","pages":[{"title":"Install the lcpy CLI via pip or uv","sidebarTitle":"Installation","href":"/getting-started/installation"},{"title":"lcpy Quickstart: First Problem in 5 Commands","sidebarTitle":"Quickstart","href":"/getting-started/quickstart"},{"title":"LeetCode Practice Environment vs a Bare Editor","sidebarTitle":"Why leetcode-py","href":"/getting-started/why-leetcode-py"}]},{"group":"Practice","pages":[{"title":"Anatomy of a problem","href":"/practice/problem-anatomy"},{"title":"Test LeetCode Solutions Locally with pytest","sidebarTitle":"Test locally","href":"/practice/test-locally"},{"title":"LeetCode Python Test Cases with pytest","sidebarTitle":"Testing","href":"/practice/testing"},{"title":"Visualizations","href":"/practice/visualizations"},{"title":"Notebooks","href":"/practice/notebooks"}]},{"group":"CLI","pages":[{"title":"lcpy CLI: Generate and List Problems","sidebarTitle":"lcpy","href":"/cli/lcpy"},{"title":"Blind 75, Grind 75, NeetCode and Others","sidebarTitle":"Collections","href":"/cli/collections"}]},{"group":"Catalog","pages":[{"title":"LeetCode Problem Catalog: All Collections","sidebarTitle":"Catalog","href":"/catalog/index"},{"title":"All LeetCode Problems in Python with Tests","sidebarTitle":"All Problems","href":"/catalog/all"},{"title":"Easy LeetCode Problems in Python with Tests","sidebarTitle":"Easy","href":"/catalog/easy"},{"title":"Medium LeetCode Problems in Python with Tests","sidebarTitle":"Medium","href":"/catalog/medium"},{"title":"Hard LeetCode Problems in Python with Tests","sidebarTitle":"Hard","href":"/catalog/hard"},{"title":"Topics","href":"/catalog/topics"},{"title":"Grind 75 in Python with Tested Solutions","sidebarTitle":"Grind 75","href":"/catalog/grind-75"},{"title":"Grind Collection in Python: Tested Solutions","sidebarTitle":"Grind","href":"/catalog/grind"},{"title":"Blind 75 in Python with Tested Solutions","sidebarTitle":"Blind 75","href":"/catalog/blind-75"},{"title":"NeetCode 150 in Python with Tested Solutions","sidebarTitle":"NeetCode 150","href":"/catalog/neetcode-150"},{"title":"NeetCode 250 in Python with Tested Solutions","sidebarTitle":"NeetCode 250","href":"/catalog/neetcode-250"},{"title":"NeetCode All in Python with Tested Solutions","sidebarTitle":"NeetCode All","href":"/catalog/neetcode"},{"title":"AlgoMaster 75 in Python with Tested Solutions","sidebarTitle":"AlgoMaster 75","href":"/catalog/algo-master-75"}]},{"group":"Contributing","pages":[{"title":"Add a New LeetCode Problem End to End","sidebarTitle":"Problem creation","href":"/contributing/problem-creation"},{"title":"Contributor Reference: bakefile Tasks","sidebarTitle":"bakefile","href":"/contributing/bakefile"}]},{"group":"Troubleshooting","pages":[{"title":"lcpy Errors and Troubleshooting","sidebarTitle":"Troubleshooting","href":"/troubleshooting/index"},{"title":"lcpy gen Error: Problem Not Found","sidebarTitle":"Problem not found","href":"/troubleshooting/unknown-problem"},{"title":"lcpy gen Error: Problem Already Exists","sidebarTitle":"Already exists","href":"/troubleshooting/files-already-exist"},{"title":"Visualizations Show ASCII Instead of Diagrams","sidebarTitle":"ASCII diagrams","href":"/troubleshooting/graphviz-missing"},{"title":"Playground Notebook Cells Do Not Render","sidebarTitle":"Notebook cells","href":"/troubleshooting/notebook-cells"}]}]},"basePath":"","title":"Medium LeetCode Problems in Python, Part 5 - leetcode-py","buildId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","deploymentId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","dynamics":[],"chunks":[]}