1. Introduction to Sliding Window
Sliding window optimizes contiguous subarray and substring problems. Below are 20 essential questions with full implementations in C++, Java, Python, and JavaScript.
2. Core Sliding Window Questions
Q1. Maximum Sum Subarray of Size K
cppint maxSumSubarray(vector<int>& nums, int k) { int windowSum = 0; for (int i = 0; i < k; i++) windowSum += nums[i]; int maxSum = windowSum; for (int i = k; i < nums.size(); i++) { windowSum += nums[i] - nums[i - k]; maxSum = max(maxSum, windowSum); } return maxSum; }
javapublic int maxSumSubarray(int[] nums, int k) { int windowSum = 0; for (int i = 0; i < k; i++) windowSum += nums[i]; int maxSum = windowSum; for (int i = k; i < nums.length; i++) { windowSum += nums[i] - nums[i - k]; maxSum = Math.max(maxSum, windowSum); } return maxSum; }
pythondef maxSumSubarray(nums: list, k: int) -> int: window_sum = sum(nums[:k]) max_sum = window_sum for i in range(k, len(nums)): window_sum += nums[i] - nums[i - k] max_sum = max(max_sum, window_sum) return max_sum
javascriptfunction maxSumSubarray(nums, k) { let windowSum = 0; for (let i = 0; i < k; i++) windowSum += nums[i]; let maxSum = windowSum; for (let i = k; i < nums.length; i++) { windowSum += nums[i] - nums[i - k]; maxSum = Math.max(maxSum, windowSum); } return maxSum; }
Time Complexity: O(n) | Space Complexity: O(1)
3. Summary Table
| Problem | Type | Time | Space |
|---|---|---|---|
| Max Sum Subarray | Fixed Window | O(n) | O(1) |
Practice all sliding window problems on DSAMaster's practice platform.
