From 3d0800155e340a4f6b7fefdc57c24510d82702c0 Mon Sep 17 00:00:00 2001 From: konduri-lakshmi-prasanna Date: Sun, 26 Oct 2025 09:32:54 +0530 Subject: [PATCH] Implement maximum sliding window algorithm --- maximum sliding window | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 maximum sliding window diff --git a/maximum sliding window b/maximum sliding window new file mode 100644 index 000000000000..54ac1c9c9922 --- /dev/null +++ b/maximum sliding window @@ -0,0 +1,29 @@ +class Solution { + public int[] maxSlidingWindow(int[] nums, int k) { + int n = nums.length; + int[] result = new int[n - k + 1]; + int maxIndex = -1; + + for (int i = 0; i <= n - k; i++) { + // If maxIndex is outside current window, find new max + if (maxIndex < i) { + maxIndex = i; + for (int j = i; j < i + k; j++) { + if (nums[j] >= nums[maxIndex]) { // fix: include '=' for stability + maxIndex = j; + } + } + } else { + // Only compare the newly added element + int newElementIndex = i + k - 1; + if (nums[newElementIndex] >= nums[maxIndex]) { // fix: include '=' for stability + maxIndex = newElementIndex; + } + } + + result[i] = nums[maxIndex]; + } + + return result; + } +}