> ## Documentation Index
> Fetch the complete documentation index at: https://leetcode-py.wisl.dev/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent 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.

# Grind Collection in Python: Tested Solutions

> All 169 problems in the Grind list: each generates a tested Python practice environment with a pytest suite and reference solutions.

Grind holds 169 problems (40 Easy, 103 Medium, 26 Hard).
The extended Grind collection is a superset of Grind 75 for longer prep timelines, with broader coverage of the same interview patterns. Every problem generates a Python practice environment with a parametrized pytest suite and a tested reference solution.

This collection includes every problem in [Grind 75](https://leetcode-py.wisl.dev/catalog/grind-75.md).

Generate the whole collection into the current directory:

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
lcpy gen -t grind
```

| # | Problem | Difficulty | Solution |
| - | - | - | - |
| 1 | [Two Sum](https://leetcode-py.wisl.dev/problems/two-sum) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/two_sum/solution.py) |
| 2 | [Add Two Numbers](https://leetcode-py.wisl.dev/problems/add-two-numbers) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/add_two_numbers/solution.py) |
| 3 | [Longest Substring Without Repeating Characters](https://leetcode-py.wisl.dev/problems/longest-substring-without-repeating-characters) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/longest_substring_without_repeating_characters/solution.py) |
| 4 | [Median of Two Sorted Arrays](https://leetcode-py.wisl.dev/problems/median-of-two-sorted-arrays) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/median_of_two_sorted_arrays/solution.py) |
| 5 | [Longest Palindromic Substring](https://leetcode-py.wisl.dev/problems/longest-palindromic-substring) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/longest_palindromic_substring/solution.py) |
| 7 | [Reverse Integer](https://leetcode-py.wisl.dev/problems/reverse-integer) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/reverse_integer/solution.py) |
| 8 | [String to Integer (atoi)](https://leetcode-py.wisl.dev/problems/string-to-integer-atoi) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/string_to_integer_atoi/solution.py) |
| 9 | [Palindrome Number](https://leetcode-py.wisl.dev/problems/palindrome-number) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/palindrome_number/solution.py) |
| 11 | [Container With Most Water](https://leetcode-py.wisl.dev/problems/container-with-most-water) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/container_with_most_water/solution.py) |
| 13 | [Roman to Integer](https://leetcode-py.wisl.dev/problems/roman-to-integer) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/roman_to_integer/solution.py) |
| 14 | [Longest Common Prefix](https://leetcode-py.wisl.dev/problems/longest-common-prefix) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/longest_common_prefix/solution.py) |
| 15 | [3Sum](https://leetcode-py.wisl.dev/problems/three-sum) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/three_sum/solution.py) |
| 16 | [3Sum Closest](https://leetcode-py.wisl.dev/problems/three-sum-closest) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/three_sum_closest/solution.py) |
| 17 | [Letter Combinations of a Phone Number](https://leetcode-py.wisl.dev/problems/letter-combinations-of-a-phone-number) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/letter_combinations_of_a_phone_number/solution.py) |
| 19 | [Remove Nth Node From End of List](https://leetcode-py.wisl.dev/problems/remove-nth-node-from-end-of-list) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/remove_nth_node_from_end_of_list/solution.py) |
| 20 | [Valid Parentheses](https://leetcode-py.wisl.dev/problems/valid-parentheses) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/valid_parentheses/solution.py) |
| 21 | [Merge Two Sorted Lists](https://leetcode-py.wisl.dev/problems/merge-two-sorted-lists) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/merge_two_sorted_lists/solution.py) |
| 22 | [Generate Parentheses](https://leetcode-py.wisl.dev/problems/generate-parentheses) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/generate_parentheses/solution.py) |
| 23 | [Merge k Sorted Lists](https://leetcode-py.wisl.dev/problems/merge-k-sorted-lists) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/merge_k_sorted_lists/solution.py) |
| 24 | [Swap Nodes in Pairs](https://leetcode-py.wisl.dev/problems/swap-nodes-in-pairs) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/swap_nodes_in_pairs/solution.py) |
| 25 | [Reverse Nodes in k-Group](https://leetcode-py.wisl.dev/problems/reverse-nodes-in-k-group) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/reverse_nodes_in_k_group/solution.py) |
| 31 | [Next Permutation](https://leetcode-py.wisl.dev/problems/next-permutation) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/next_permutation/solution.py) |
| 32 | [Longest Valid Parentheses](https://leetcode-py.wisl.dev/problems/longest-valid-parentheses) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/longest_valid_parentheses/solution.py) |
| 33 | [Search in Rotated Sorted Array](https://leetcode-py.wisl.dev/problems/search-in-rotated-sorted-array) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/search_in_rotated_sorted_array/solution.py) |
| 36 | [Valid Sudoku](https://leetcode-py.wisl.dev/problems/valid-sudoku) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/valid_sudoku/solution.py) |
| 37 | [Sudoku Solver](https://leetcode-py.wisl.dev/problems/sudoku-solver) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/sudoku_solver/solution.py) |
| 39 | [Combination Sum](https://leetcode-py.wisl.dev/problems/combination-sum) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/combination_sum/solution.py) |
| 41 | [First Missing Positive](https://leetcode-py.wisl.dev/problems/first-missing-positive) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/first_missing_positive/solution.py) |
| 42 | [Trapping Rain Water](https://leetcode-py.wisl.dev/problems/trapping-rain-water) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/trapping_rain_water/solution.py) |
| 46 | [Permutations](https://leetcode-py.wisl.dev/problems/permutations) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/permutations/solution.py) |
| 48 | [Rotate Image](https://leetcode-py.wisl.dev/problems/rotate-image) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/rotate_image/solution.py) |
| 49 | [Group Anagrams](https://leetcode-py.wisl.dev/problems/group-anagrams) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/group_anagrams/solution.py) |
| 50 | [Pow(x, n)](https://leetcode-py.wisl.dev/problems/powx-n) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/powx_n/solution.py) |
| 51 | [N-Queens](https://leetcode-py.wisl.dev/problems/n-queens) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/n_queens/solution.py) |
| 53 | [Maximum Subarray](https://leetcode-py.wisl.dev/problems/maximum-subarray) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/maximum_subarray/solution.py) |
| 54 | [Spiral Matrix](https://leetcode-py.wisl.dev/problems/spiral-matrix) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/spiral_matrix/solution.py) |
| 55 | [Jump Game](https://leetcode-py.wisl.dev/problems/jump-game) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/jump_game/solution.py) |
| 56 | [Merge Intervals](https://leetcode-py.wisl.dev/problems/merge-intervals) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/merge_intervals/solution.py) |
| 57 | [Insert Interval](https://leetcode-py.wisl.dev/problems/insert-interval) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/insert_interval/solution.py) |
| 61 | [Rotate List](https://leetcode-py.wisl.dev/problems/rotate-list) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/rotate_list/solution.py) |
| 62 | [Unique Paths](https://leetcode-py.wisl.dev/problems/unique-paths) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/unique_paths/solution.py) |
| 67 | [Add Binary](https://leetcode-py.wisl.dev/problems/add-binary) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/add_binary/solution.py) |
| 70 | [Climbing Stairs](https://leetcode-py.wisl.dev/problems/climbing-stairs) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/climbing_stairs/solution.py) |
| 73 | [Set Matrix Zeroes](https://leetcode-py.wisl.dev/problems/set-matrix-zeroes) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/set_matrix_zeroes/solution.py) |
| 74 | [Search a 2D Matrix](https://leetcode-py.wisl.dev/problems/search-a-2d-matrix) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/search_a_2d_matrix/solution.py) |
| 75 | [Sort Colors](https://leetcode-py.wisl.dev/problems/sort-colors) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/sort_colors/solution.py) |
| 76 | [Minimum Window Substring](https://leetcode-py.wisl.dev/problems/minimum-window-substring) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/minimum_window_substring/solution.py) |
| 78 | [Subsets](https://leetcode-py.wisl.dev/problems/subsets) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/subsets/solution.py) |
| 79 | [Word Search](https://leetcode-py.wisl.dev/problems/word-search) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/word_search/solution.py) |
| 84 | [Largest Rectangle in Histogram](https://leetcode-py.wisl.dev/problems/largest-rectangle-in-histogram) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/largest_rectangle_in_histogram/solution.py) |
| 91 | [Decode Ways](https://leetcode-py.wisl.dev/problems/decode-ways) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/decode_ways/solution.py) |
| 98 | [Validate Binary Search Tree](https://leetcode-py.wisl.dev/problems/validate-binary-search-tree) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/validate_binary_search_tree/solution.py) |
| 100 | [Same Tree](https://leetcode-py.wisl.dev/problems/same-tree) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/same_tree/solution.py) |
| 101 | [Symmetric Tree](https://leetcode-py.wisl.dev/problems/symmetric-tree) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/symmetric_tree/solution.py) |
| 102 | [Binary Tree Level Order Traversal](https://leetcode-py.wisl.dev/problems/binary-tree-level-order-traversal) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/binary_tree_level_order_traversal/solution.py) |
| 103 | [Binary Tree Zigzag Level Order Traversal](https://leetcode-py.wisl.dev/problems/binary-tree-zigzag-level-order-traversal) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/binary_tree_zigzag_level_order_traversal/solution.py) |
| 104 | [Maximum Depth of Binary Tree](https://leetcode-py.wisl.dev/problems/maximum-depth-of-binary-tree) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/maximum_depth_of_binary_tree/solution.py) |
| 105 | [Construct Binary Tree from Preorder and Inorder Traversal](https://leetcode-py.wisl.dev/problems/construct-binary-tree-from-preorder-and-inorder-traversal) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/construct_binary_tree_from_preorder_and_inorder_traversal/solution.py) |
| 108 | [Convert Sorted Array to Binary Search Tree](https://leetcode-py.wisl.dev/problems/convert-sorted-array-to-binary-search-tree) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/convert_sorted_array_to_binary_search_tree/solution.py) |
| 110 | [Balanced Binary Tree](https://leetcode-py.wisl.dev/problems/balanced-binary-tree) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/balanced_binary_tree/solution.py) |
| 113 | [Path Sum II](https://leetcode-py.wisl.dev/problems/path-sum-ii) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/path_sum_ii/solution.py) |
| 121 | [Best Time to Buy and Sell Stock](https://leetcode-py.wisl.dev/problems/best-time-to-buy-and-sell-stock) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/best_time_to_buy_and_sell_stock/solution.py) |
| 124 | [Binary Tree Maximum Path Sum](https://leetcode-py.wisl.dev/problems/binary-tree-maximum-path-sum) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/binary_tree_maximum_path_sum/solution.py) |
| 125 | [Valid Palindrome](https://leetcode-py.wisl.dev/problems/valid-palindrome) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/valid_palindrome/solution.py) |
| 127 | [Word Ladder](https://leetcode-py.wisl.dev/problems/word-ladder) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/word_ladder/solution.py) |
| 128 | [Longest Consecutive Sequence](https://leetcode-py.wisl.dev/problems/longest-consecutive-sequence) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/longest_consecutive_sequence/solution.py) |
| 133 | [Clone Graph](https://leetcode-py.wisl.dev/problems/clone-graph) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/clone_graph/solution.py) |
| 134 | [Gas Station](https://leetcode-py.wisl.dev/problems/gas-station) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/gas_station/solution.py) |
| 136 | [Single Number](https://leetcode-py.wisl.dev/problems/single-number) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/single_number/solution.py) |
| 139 | [Word Break](https://leetcode-py.wisl.dev/problems/word-break) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/word_break/solution.py) |
| 141 | [Linked List Cycle](https://leetcode-py.wisl.dev/problems/linked-list-cycle) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/linked_list_cycle/solution.py) |
| 143 | [Reorder List](https://leetcode-py.wisl.dev/problems/reorder-list) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/reorder_list/solution.py) |
| 146 | [LRU Cache](https://leetcode-py.wisl.dev/problems/lru-cache) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/lru_cache/solution.py) |
| 148 | [Sort List](https://leetcode-py.wisl.dev/problems/sort-list) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/sort_list/solution.py) |
| 150 | [Evaluate Reverse Polish Notation](https://leetcode-py.wisl.dev/problems/evaluate-reverse-polish-notation) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/evaluate_reverse_polish_notation/solution.py) |
| 152 | [Maximum Product Subarray](https://leetcode-py.wisl.dev/problems/maximum-product-subarray) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/maximum_product_subarray/solution.py) |
| 153 | [Find Minimum in Rotated Sorted Array](https://leetcode-py.wisl.dev/problems/find-minimum-in-rotated-sorted-array) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/find_minimum_in_rotated_sorted_array/solution.py) |
| 155 | [Min Stack](https://leetcode-py.wisl.dev/problems/min-stack) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/min_stack/solution.py) |
| 169 | [Majority Element](https://leetcode-py.wisl.dev/problems/majority-element) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/majority_element/solution.py) |
| 179 | [Largest Number](https://leetcode-py.wisl.dev/problems/largest-number) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/largest_number/solution.py) |
| 189 | [Rotate Array](https://leetcode-py.wisl.dev/problems/rotate-array) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/rotate_array/solution.py) |
| 190 | [Reverse Bits](https://leetcode-py.wisl.dev/problems/reverse-bits) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/reverse_bits/solution.py) |
| 191 | [Number of 1 Bits](https://leetcode-py.wisl.dev/problems/number-of-1-bits) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/number_of_1_bits/solution.py) |
| 198 | [House Robber](https://leetcode-py.wisl.dev/problems/house-robber) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/house_robber/solution.py) |
| 199 | [Binary Tree Right Side View](https://leetcode-py.wisl.dev/problems/binary-tree-right-side-view) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/binary_tree_right_side_view/solution.py) |
| 200 | [Number of Islands](https://leetcode-py.wisl.dev/problems/number-of-islands) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/number_of_islands/solution.py) |
| 206 | [Reverse Linked List](https://leetcode-py.wisl.dev/problems/reverse-linked-list) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/reverse_linked_list/solution.py) |
| 207 | [Course Schedule](https://leetcode-py.wisl.dev/problems/course-schedule) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/course_schedule/solution.py) |
| 208 | [Implement Trie (Prefix Tree)](https://leetcode-py.wisl.dev/problems/implement-trie-prefix-tree) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/implement_trie_prefix_tree/solution.py) |
| 210 | [Course Schedule II](https://leetcode-py.wisl.dev/problems/course-schedule-ii) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/course_schedule_ii/solution.py) |
| 211 | [Design Add and Search Words Data Structure](https://leetcode-py.wisl.dev/problems/design-add-and-search-words-data-structure) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/design_add_and_search_words_data_structure/solution.py) |
| 212 | [Word Search II](https://leetcode-py.wisl.dev/problems/word-search-ii) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/word_search_ii/solution.py) |
| 215 | [Kth Largest Element in an Array](https://leetcode-py.wisl.dev/problems/kth-largest-element-in-an-array) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/kth_largest_element_in_an_array/solution.py) |
| 217 | [Contains Duplicate](https://leetcode-py.wisl.dev/problems/contains-duplicate) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/contains_duplicate/solution.py) |
| 221 | [Maximal Square](https://leetcode-py.wisl.dev/problems/maximal-square) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/maximal_square/solution.py) |
| 224 | [Basic Calculator](https://leetcode-py.wisl.dev/problems/basic-calculator) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/basic_calculator/solution.py) |
| 226 | [Invert Binary Tree](https://leetcode-py.wisl.dev/problems/invert-binary-tree) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/invert_binary_tree/solution.py) |
| 227 | [Basic Calculator II](https://leetcode-py.wisl.dev/problems/basic-calculator-ii) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/basic_calculator_ii/solution.py) |
| 230 | [Kth Smallest Element in a BST](https://leetcode-py.wisl.dev/problems/kth-smallest-element-in-a-bst) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/kth_smallest_element_in_a_bst/solution.py) |
| 232 | [Implement Queue using Stacks](https://leetcode-py.wisl.dev/problems/implement-queue-using-stacks) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/implement_queue_using_stacks/solution.py) |
| 234 | [Palindrome Linked List](https://leetcode-py.wisl.dev/problems/palindrome-linked-list) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/palindrome_linked_list/solution.py) |
| 235 | [Lowest Common Ancestor of a Binary Search Tree](https://leetcode-py.wisl.dev/problems/lowest-common-ancestor-of-a-binary-search-tree) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/lowest_common_ancestor_of_a_binary_search_tree/solution.py) |
| 236 | [Lowest Common Ancestor of a Binary Tree](https://leetcode-py.wisl.dev/problems/lowest-common-ancestor-of-a-binary-tree) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/lowest_common_ancestor_of_a_binary_tree/solution.py) |
| 238 | [Product of Array Except Self](https://leetcode-py.wisl.dev/problems/product-of-array-except-self) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/product_of_array_except_self/solution.py) |
| 239 | [Sliding Window Maximum](https://leetcode-py.wisl.dev/problems/sliding-window-maximum) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/sliding_window_maximum/solution.py) |
| 242 | [Valid Anagram](https://leetcode-py.wisl.dev/problems/valid-anagram) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/valid_anagram/solution.py) |
| 252 | [Meeting Rooms](https://leetcode-py.wisl.dev/problems/meeting-rooms) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/meeting_rooms/solution.py) |
| 253 | [Meeting Rooms II](https://leetcode-py.wisl.dev/problems/meeting-rooms-ii) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/meeting_rooms_ii/solution.py) |
| 261 | [Graph Valid Tree](https://leetcode-py.wisl.dev/problems/graph-valid-tree) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/graph_valid_tree/solution.py) |
| 268 | [Missing Number](https://leetcode-py.wisl.dev/problems/missing-number) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/missing_number/solution.py) |
| 269 | [Alien Dictionary](https://leetcode-py.wisl.dev/problems/alien-dictionary) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/alien_dictionary/solution.py) |
| 271 | [Encode and Decode Strings](https://leetcode-py.wisl.dev/problems/encode-and-decode-strings) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/encode_and_decode_strings/solution.py) |
| 278 | [First Bad Version](https://leetcode-py.wisl.dev/problems/first-bad-version) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/first_bad_version/solution.py) |
| 283 | [Move Zeroes](https://leetcode-py.wisl.dev/problems/move-zeroes) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/move_zeroes/solution.py) |
| 285 | [Inorder Successor in BST](https://leetcode-py.wisl.dev/problems/inorder-successor-in-bst) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/inorder_successor_in_bst/solution.py) |
| 287 | [Find the Duplicate Number](https://leetcode-py.wisl.dev/problems/find-the-duplicate-number) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/find_the_duplicate_number/solution.py) |
| 295 | [Find Median from Data Stream](https://leetcode-py.wisl.dev/problems/find-median-from-data-stream) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/find_median_from_data_stream/solution.py) |
| 297 | [Serialize and Deserialize Binary Tree](https://leetcode-py.wisl.dev/problems/serialize-and-deserialize-binary-tree) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/serialize_and_deserialize_binary_tree/solution.py) |
| 300 | [Longest Increasing Subsequence](https://leetcode-py.wisl.dev/problems/longest-increasing-subsequence) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/longest_increasing_subsequence/solution.py) |
| 310 | [Minimum Height Trees](https://leetcode-py.wisl.dev/problems/minimum-height-trees) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/minimum_height_trees/solution.py) |
| 322 | [Coin Change](https://leetcode-py.wisl.dev/problems/coin-change) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/coin_change/solution.py) |
| 323 | [Number of Connected Components in an Undirected Graph](https://leetcode-py.wisl.dev/problems/number-of-connected-components-in-an-undirected-graph) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/number_of_connected_components_in_an_undirected_graph/solution.py) |
| 328 | [Odd Even Linked List](https://leetcode-py.wisl.dev/problems/odd-even-linked-list) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/odd_even_linked_list/solution.py) |
| 329 | [Longest Increasing Path in a Matrix](https://leetcode-py.wisl.dev/problems/longest-increasing-path-in-a-matrix) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/longest_increasing_path_in_a_matrix/solution.py) |
| 336 | [Palindrome Pairs](https://leetcode-py.wisl.dev/problems/palindrome-pairs) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/palindrome_pairs/solution.py) |
| 338 | [Counting Bits](https://leetcode-py.wisl.dev/problems/counting-bits) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/counting_bits/solution.py) |
| 362 | [Design Hit Counter](https://leetcode-py.wisl.dev/problems/design-hit-counter) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/design_hit_counter/solution.py) |
| 377 | [Combination Sum IV](https://leetcode-py.wisl.dev/problems/combination-sum-iv) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/combination_sum_iv/solution.py) |
| 380 | [Insert Delete GetRandom O(1)](https://leetcode-py.wisl.dev/problems/insert-delete-getrandom-o1) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/insert_delete_getrandom_o1/solution.py) |
| 383 | [Ransom Note](https://leetcode-py.wisl.dev/problems/ransom-note) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/ransom_note/solution.py) |
| 394 | [Decode String](https://leetcode-py.wisl.dev/problems/decode-string) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/decode_string/solution.py) |
| 409 | [Longest Palindrome](https://leetcode-py.wisl.dev/problems/longest-palindrome) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/longest_palindrome/solution.py) |
| 416 | [Partition Equal Subset Sum](https://leetcode-py.wisl.dev/problems/partition-equal-subset-sum) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/partition_equal_subset_sum/solution.py) |
| 417 | [Pacific Atlantic Water Flow](https://leetcode-py.wisl.dev/problems/pacific-atlantic-water-flow) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/pacific_atlantic_water_flow/solution.py) |
| 424 | [Longest Repeating Character Replacement](https://leetcode-py.wisl.dev/problems/longest-repeating-character-replacement) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/longest_repeating_character_replacement/solution.py) |
| 435 | [Non-overlapping Intervals](https://leetcode-py.wisl.dev/problems/non-overlapping-intervals) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/non_overlapping_intervals/solution.py) |
| 437 | [Path Sum III](https://leetcode-py.wisl.dev/problems/path-sum-iii) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/path_sum_iii/solution.py) |
| 438 | [Find All Anagrams in a String](https://leetcode-py.wisl.dev/problems/find-all-anagrams-in-a-string) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/find_all_anagrams_in_a_string/solution.py) |
| 525 | [Contiguous Array](https://leetcode-py.wisl.dev/problems/contiguous-array) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/contiguous_array/solution.py) |
| 528 | [Random Pick with Weight](https://leetcode-py.wisl.dev/problems/random-pick-with-weight) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/random_pick_with_weight/solution.py) |
| 542 | [01 Matrix](https://leetcode-py.wisl.dev/problems/zero-one-matrix) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/zero_one_matrix/solution.py) |
| 543 | [Diameter of Binary Tree](https://leetcode-py.wisl.dev/problems/diameter-of-binary-tree) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/diameter_of_binary_tree/solution.py) |
| 560 | [Subarray Sum Equals K](https://leetcode-py.wisl.dev/problems/subarray-sum-equals-k) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/subarray_sum_equals_k/solution.py) |
| 572 | [Subtree of Another Tree](https://leetcode-py.wisl.dev/problems/subtree-of-another-tree) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/subtree_of_another_tree/solution.py) |
| 588 | [Design In-Memory File System](https://leetcode-py.wisl.dev/problems/design-in-memory-file-system) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/design_in_memory_file_system/solution.py) |
| 621 | [Task Scheduler](https://leetcode-py.wisl.dev/problems/task-scheduler) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/task_scheduler/solution.py) |
| 632 | [Smallest Range Covering Elements from K Lists](https://leetcode-py.wisl.dev/problems/smallest-range-covering-elements-from-k-lists) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/smallest_range_covering_elements_from_k_lists/solution.py) |
| 658 | [Find K Closest Elements](https://leetcode-py.wisl.dev/problems/find-k-closest-elements) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/find_k_closest_elements/solution.py) |
| 662 | [Maximum Width of Binary Tree](https://leetcode-py.wisl.dev/problems/maximum-width-of-binary-tree) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/maximum_width_of_binary_tree/solution.py) |
| 692 | [Top K Frequent Words](https://leetcode-py.wisl.dev/problems/top-k-frequent-words) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/top_k_frequent_words/solution.py) |
| 704 | [Binary Search](https://leetcode-py.wisl.dev/problems/binary-search) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/binary_search/solution.py) |
| 721 | [Accounts Merge](https://leetcode-py.wisl.dev/problems/accounts-merge) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/accounts_merge/solution.py) |
| 733 | [Flood Fill](https://leetcode-py.wisl.dev/problems/flood-fill) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/flood_fill/solution.py) |
| 735 | [Asteroid Collision](https://leetcode-py.wisl.dev/problems/asteroid-collision) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/asteroid_collision/solution.py) |
| 739 | [Daily Temperatures](https://leetcode-py.wisl.dev/problems/daily-temperatures) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/daily_temperatures/solution.py) |
| 759 | [Employee Free Time](https://leetcode-py.wisl.dev/problems/employee-free-time) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/employee_free_time/solution.py) |
| 787 | [Cheapest Flights Within K Stops](https://leetcode-py.wisl.dev/problems/cheapest-flights-within-k-stops) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/cheapest_flights_within_k_stops/solution.py) |
| 815 | [Bus Routes](https://leetcode-py.wisl.dev/problems/bus-routes) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/bus_routes/solution.py) |
| 844 | [Backspace String Compare](https://leetcode-py.wisl.dev/problems/backspace-string-compare) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/backspace_string_compare/solution.py) |
| 863 | [All Nodes Distance K in Binary Tree](https://leetcode-py.wisl.dev/problems/all-nodes-distance-k-in-binary-tree) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/all_nodes_distance_k_in_binary_tree/solution.py) |
| 876 | [Middle of the Linked List](https://leetcode-py.wisl.dev/problems/middle-of-the-linked-list) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/middle_of_the_linked_list/solution.py) |
| 895 | [Maximum Frequency Stack](https://leetcode-py.wisl.dev/problems/maximum-frequency-stack) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/maximum_frequency_stack/solution.py) |
| 973 | [K Closest Points to Origin](https://leetcode-py.wisl.dev/problems/k-closest-points-to-origin) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/k_closest_points_to_origin/solution.py) |
| 977 | [Squares of a Sorted Array](https://leetcode-py.wisl.dev/problems/squares-of-a-sorted-array) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/squares_of_a_sorted_array/solution.py) |
| 981 | [Time Based Key-Value Store](https://leetcode-py.wisl.dev/problems/time-based-key-value-store) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/time_based_key_value_store/solution.py) |
| 994 | [Rotting Oranges](https://leetcode-py.wisl.dev/problems/rotting-oranges) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/rotting_oranges/solution.py) |
| 1197 | [Minimum Knight Moves](https://leetcode-py.wisl.dev/problems/minimum-knight-moves) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/minimum_knight_moves/solution.py) |
| 1235 | [Maximum Profit in Job Scheduling](https://leetcode-py.wisl.dev/problems/maximum-profit-in-job-scheduling) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/maximum_profit_in_job_scheduling/solution.py) |
| 1730 | [Shortest Path to Get Food](https://leetcode-py.wisl.dev/problems/shortest-path-to-get-food) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/shortest_path_to_get_food/solution.py) |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.