Sliding Window LeetCode Problems: All 116, With Python Solutions
Every problem in this library that LeetCode tags Sliding Window — 116 in total, 102 of them with a complete Python solution, a worked example and the time and space complexity of the approach.
- 116 problems
- 12 Easy
- 74 Medium
- 30 Hard
How Sliding Window problems are solved
A tag names the subject, not the method. These pattern hubs cover the techniques that actually solve Sliding Window problems — each one explains the approach, gives a Python template and states its complexity.
- Sliding Window — Collapse a nested loop over every subarray into a single pass with two indices.
Sliding Window problems by difficulty
Problems with a complete Python solution are listed first, then by ascending problem number.
Easy (12)
| # | Problem | Difficulty | Topics |
|---|---|---|---|
| 219 | Contains Duplicate II | Easy | Array, Hash Table, Sliding Window |
| 594 | Longest Harmonious Subsequence | Easy | Array, Hash Table, Counting +2 |
| 643 | Maximum Average Subarray I | Easy | Array, Sliding Window |
| 1652 | Defuse the Bomb | Easy | Array, Sliding Window |
| 1763 | Longest Nice Substring | Easy | Bit Manipulation, Hash Table, String +2 |
| 1876 | Substrings of Size Three with Distinct Characters | Easy | Hash Table, String, Counting +1 |
| 1984 | Minimum Difference Between Highest and Lowest of K Scores | Easy | Array, Sorting, Sliding Window |
| 2269 | Find the K-Beauty of a Number | Easy | Math, String, Sliding Window |
| 2379 | Minimum Recolors to Get K Consecutive Black Blocks | Easy | String, Sliding Window |
| 2760 | Longest Even Odd Subarray With Threshold | Easy | Array, Sliding Window |
| 2932 | Maximum Strong Pair XOR I | Easy | Bit Manipulation, Trie, Array +2 |
| 1176 | Diet Plan PerformancePremium | Easy | Array, Sliding Window |
Medium (74)
| # | Problem | Difficulty | Topics |
|---|---|---|---|
| 3 | Longest Substring Without Repeating Characters | Medium | Hash Table, String, Sliding Window |
| 187 | Repeated DNA Sequences | Medium | Bit Manipulation, Hash Table, String +3 |
| 209 | Minimum Size Subarray Sum | Medium | Array, Binary Search, Prefix Sum +1 |
| 395 | Longest Substring with At Least K Repeating Characters | Medium | Hash Table, String, Divide and Conquer +1 |
| 413 | Arithmetic Slices | Medium | Array, Dynamic Programming, Sliding Window |
| 424 | Longest Repeating Character Replacement | Medium | Hash Table, String, Sliding Window |
| 438 | Find All Anagrams in a String | Medium | Hash Table, String, Sliding Window |
| 567 | Permutation in String | Medium | Hash Table, Two Pointers, String +1 |
| 658 | Find K Closest Elements | Medium | Array, Two Pointers, Binary Search +3 |
| 713 | Subarray Product Less Than K | Medium | Array, Binary Search, Prefix Sum +1 |
| 718 | Maximum Length of Repeated Subarray | Medium | Array, Binary Search, Dynamic Programming +3 |
| 837 | New 21 Game | Medium | Math, Dynamic Programming, Sliding Window +1 |
| 904 | Fruit Into Baskets | Medium | Array, Hash Table, Sliding Window |
| 930 | Binary Subarrays With Sum | Medium | Array, Hash Table, Prefix Sum +1 |
| 978 | Longest Turbulent Subarray | Medium | Array, Dynamic Programming, Sliding Window |
| 1004 | Max Consecutive Ones III | Medium | Array, Binary Search, Prefix Sum +1 |
| 1016 | Binary String With Substrings Representing 1 To N | Medium | Bit Manipulation, Hash Table, String +1 |
| 1031 | Maximum Sum of Two Non-Overlapping Subarrays | Medium | Array, Dynamic Programming, Sliding Window |
| 1040 | Moving Stones Until Consecutive II | Medium | Array, Math, Sorting +1 |
| 1052 | Grumpy Bookstore Owner | Medium | Array, Sliding Window |
| 1156 | Swap For Longest Repeated Character Substring | Medium | Hash Table, String, Sliding Window |
| 1208 | Get Equal Substrings Within Budget | Medium | String, Binary Search, Prefix Sum +1 |
| 1234 | Replace the Substring for Balanced String | Medium | String, Sliding Window |
| 1248 | Count Number of Nice Subarrays | Medium | Array, Hash Table, Math +2 |
| 1297 | Maximum Number of Occurrences of a Substring | Medium | Hash Table, String, Sliding Window |
| 1343 | Number of Sub-arrays of Size K and Average Greater than or Equal to Threshold | Medium | Array, Sliding Window |
| 1358 | Number of Substrings Containing All Three Characters | Medium | Hash Table, String, Sliding Window |
| 1423 | Maximum Points You Can Obtain from Cards | Medium | Array, Prefix Sum, Sliding Window |
| 1438 | Longest Continuous Subarray With Absolute Diff Less Than or Equal to Limit | Medium | Queue, Array, Ordered Set +3 |
| 1456 | Maximum Number of Vowels in a Substring of Given Length | Medium | String, Sliding Window |
| 1477 | Find Two Non-overlapping Sub-arrays Each With Target Sum | Medium | Array, Hash Table, Binary Search +2 |
| 1493 | Longest Subarray of 1's After Deleting One Element | Medium | Array, Dynamic Programming, Sliding Window |
| 1658 | Minimum Operations to Reduce X to Zero | Medium | Array, Hash Table, Binary Search +2 |
| 1695 | Maximum Erasure Value | Medium | Array, Hash Table, Sliding Window |
| 1838 | Frequency of the Most Frequent Element | Medium | Greedy, Array, Binary Search +3 |
| 1839 | Longest Substring Of All Vowels in Order | Medium | String, Sliding Window |
| 1871 | Jump Game VII | Medium | String, Dynamic Programming, Prefix Sum +1 |
| 1888 | Minimum Number of Flips to Make the Binary String Alternating | Medium | String, Dynamic Programming, Sliding Window |
| 2024 | Maximize the Confusion of an Exam | Medium | String, Binary Search, Prefix Sum +1 |
| 2090 | K Radius Subarray Averages | Medium | Array, Sliding Window |
| 2110 | Number of Smooth Descent Periods of a Stock | Medium | Array, Math, Two Pointers +2 |
| 2134 | Minimum Swaps to Group All 1's Together II | Medium | Array, Sliding Window |
| 2260 | Minimum Consecutive Cards to Pick Up | Medium | Array, Hash Table, Sliding Window |
| 2271 | Maximum White Tiles Covered by a Carpet | Medium | Greedy, Array, Binary Search +3 |
| 2401 | Longest Nice Subarray | Medium | Bit Manipulation, Array, Sliding Window |
| 2411 | Smallest Subarrays With Maximum Bitwise OR | Medium | Bit Manipulation, Array, Binary Search +1 |
| 2461 | Maximum Sum of Distinct Subarrays With Length K | Medium | Array, Hash Table, Sliding Window |
| 2516 | Take K of Each Character From Left and Right | Medium | Hash Table, String, Sliding Window |
| 2537 | Count the Number of Good Subarrays | Medium | Array, Hash Table, Sliding Window |
| 2555 | Maximize Win From Two Segments | Medium | Array, Binary Search, Sliding Window |
| 2653 | Sliding Subarray Beauty | Medium | Array, Hash Table, Sliding Window |
| 2730 | Find the Longest Semi-Repetitive Substring | Medium | String, Sliding Window |
| 2747 | Count Zero Request Servers | Medium | Array, Hash Table, Sorting +1 |
| 2762 | Continuous Subarrays | Medium | Queue, Array, Ordered Set +3 |
| 2779 | Maximum Beauty of an Array After Applying Operation | Medium | Array, Binary Search, Sorting +1 |
| 2799 | Count Complete Subarrays in an Array | Medium | Array, Hash Table, Sliding Window |
| 2831 | Find the Longest Equal Subarray | Medium | Array, Hash Table, Binary Search +1 |
| 2841 | Maximum Sum of Almost Unique Subarray | Medium | Array, Hash Table, Sliding Window |
| 2875 | Minimum Size Subarray in Infinite Array | Medium | Array, Hash Table, Prefix Sum +1 |
| 2904 | Shortest and Lexicographically Smallest Beautiful String | Medium | String, Sliding Window |
| 2958 | Length of Longest Subarray With at Most K Frequency | Medium | Array, Hash Table, Sliding Window |
| 2962 | Count Subarrays Where Max Element Appears at Least K Times | Medium | Array, Sliding Window |
| 2981 | Find Longest Special Substring That Occurs Thrice I | Medium | Hash Table, String, Binary Search +2 |
| 2982 | Find Longest Special Substring That Occurs Thrice II | Medium | Hash Table, String, Binary Search +2 |
| 159 | Longest Substring with At Most Two Distinct CharactersPremium | Medium | Hash Table, String, Sliding Window |
| 340 | Longest Substring with At Most K Distinct CharactersPremium | Medium | Hash Table, String, Sliding Window |
| 487 | Max Consecutive Ones IIPremium | Medium | Array, Dynamic Programming, Sliding Window |
| 1100 | Find K-Length Substrings With No Repeated CharactersPremium | Medium | Hash Table, String, Sliding Window |
| 1151 | Minimum Swaps to Group All 1's TogetherPremium | Medium | Array, Sliding Window |
| 1852 | Distinct Numbers in Each SubarrayPremium | Medium | Array, Hash Table, Sliding Window |
| 1918 | Kth Smallest Subarray SumPremium | Medium | Array, Binary Search, Sliding Window |
| 2067 | Number of Equal Count SubstringsPremium | Medium | Hash Table, String, Counting +1 |
| 2107 | Number of Unique Flavors After Sharing K CandiesPremium | Medium | Array, Hash Table, Sliding Window |
| 2743 | Count Substrings Without Repeating CharacterPremium | Medium | Hash Table, String, Sliding Window |
Hard (30)
| # | Problem | Difficulty | Topics |
|---|---|---|---|
| 30 | Substring with Concatenation of All Words | Hard | Hash Table, String, Sliding Window |
| 76 | Minimum Window Substring | Hard | Hash Table, String, Sliding Window |
| 220 | Contains Duplicate III | Hard | Array, Bucket Sort, Ordered Set +2 |
| 239 | Sliding Window Maximum | Hard | Queue, Array, Sliding Window +2 |
| 480 | Sliding Window Median | Hard | Array, Hash Table, Sliding Window +1 |
| 632 | Smallest Range Covering Elements from K Lists | Hard | Greedy, Array, Hash Table +3 |
| 689 | Maximum Sum of 3 Non-Overlapping Subarrays | Hard | Array, Dynamic Programming, Prefix Sum +1 |
| 862 | Shortest Subarray with Sum at Least K | Hard | Queue, Array, Binary Search +4 |
| 992 | Subarrays with K Different Integers | Hard | Array, Hash Table, Counting +1 |
| 995 | Minimum Number of K Consecutive Bit Flips | Hard | Bit Manipulation, Queue, Array +2 |
| 1044 | Longest Duplicate Substring | Hard | String, Binary Search, Suffix Array +3 |
| 1425 | Constrained Subsequence Sum | Hard | Queue, Array, Dynamic Programming +3 |
| 1499 | Max Value of Equation | Hard | Queue, Array, Sliding Window +2 |
| 1610 | Maximum Number of Visible Points | Hard | Geometry, Array, Math +2 |
| 1703 | Minimum Adjacent Swaps for K Consecutive Ones | Hard | Greedy, Array, Prefix Sum +1 |
| 2009 | Minimum Number of Operations to Make Array Continuous | Hard | Array, Hash Table, Binary Search +1 |
| 2106 | Maximum Fruits Harvested After at Most K Steps | Hard | Array, Binary Search, Prefix Sum +1 |
| 2156 | Find Substring With Given Hash Value | Hard | String, Sliding Window, Hash Function +1 |
| 2302 | Count Subarrays With Score Less Than K | Hard | Array, Binary Search, Prefix Sum +1 |
| 2398 | Maximum Number of Robots Within Budget | Hard | Queue, Array, Binary Search +4 |
| 2444 | Count Subarrays With Fixed Bounds | Hard | Queue, Array, Sliding Window +1 |
| 2528 | Maximize the Minimum Powered City | Hard | Greedy, Queue, Array +3 |
| 2781 | Length of the Longest Valid Substring | Hard | Array, Hash Table, String +1 |
| 2902 | Count of Sub-Multisets With Bounded Sum | Hard | Array, Hash Table, Dynamic Programming +1 |
| 2935 | Maximum Strong Pair XOR II | Hard | Bit Manipulation, Trie, Array +2 |
| 2953 | Count Complete Substrings | Hard | Hash Table, String, Sliding Window |
| 2968 | Apply Operations to Maximize Frequency Score | Hard | Array, Binary Search, Prefix Sum +2 |
| 683 | K Empty SlotsPremium | Hard | Binary Indexed Tree, Segment Tree, Queue +5 |
| 727 | Minimum Window SubsequencePremium | Hard | String, Dynamic Programming, Sliding Window |
| 2524 | Maximum Frequency Score of a SubarrayPremium | Hard | Stack, Array, Hash Table +2 |
Keep exploring
- Array1,569
- String672
- Hash Table588
- Math485
- Dynamic Programming481
- Sorting392
- Greedy346
- Depth-First Search289
- Binary Search253
- Database249
- Tree225
- Breadth-First Search223
- Matrix216
- Two Pointers201
- Bit Manipulation194
- Binary Tree174
- Heap (Priority Queue)163
- Prefix Sum157
- Stack157
- Simulation144
- Graph138
- Counting126
- Design122
- Backtracking105
When the Sliding Window problem arrives live
Stealth Interview is a desktop app for macOS and Windows. It reads the coding problem off your screen, returns a working solution with a step-by-step explanation and its time and space complexity, and transcribes what the interviewer is saying — while staying invisible to screen sharing.