第12天--算法(滑动窗口最大值)
滑动窗口最大值
public int[] maxSlidingWindow(int[] nums, int k) {
if(nums == null || k < 1 || nums.length < k) {
return new int[0];
}
LinkedList<Integer> list = new LinkedList<>();
int res[] = new int[nums.length - k + 1];
int index = 0;
for(int i = 0;i < nums.length;i ++) {
while(!list.isEmpty() && nums[i] >= nums[list.peekLast()]) {
list.pollLast();
}
list.addLast(i);
if(list.peekFirst() == i - k) {
list.pollFirst();
}
if(i >= k - 1) {
res[index ++] = nums[list.peekFirst()];
}
}
return res;
}

浙公网安备 33010602011771号