239. Sliding Window Maximum
naive
class Solution {
public int[] maxSlidingWindow(int[] nums, int k) {
if (k == 1) {
return nums;
}
int result[] = new int[nums.length - k + 1];
int left = 0;
for (int right = 0; right < nums.length; right++) {
if (right - left + 1 == k) {
int max = Integer.MIN_VALUE; // in size k window find local max
for (int i = left; i <= right; i++) {
max = Math.max(max, nums[i]);
}
result[left++] = max;
}
}
return result;
}
}Heap
dequeue
dequeue new version

more structure way
Previousmono queueNext1438. Longest Continuous Subarray With Absolute Diff Less Than or Equal to Limit
Last updated