【题目】
给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。
【代码】
public int[] maxSlidingWindow(int[] nums, int k) {
if(nums == null || k < 1 || nums.length < k){
return new int[0];
}
int[] array = new int[nums.length - k + 1];
int index = 0;
LinkedList<Integer> list = new LinkedList<>();
for(int i = 0; i < nums.length ; i++){
while(!list.isEmpty() && nums[list.peekLast()] <= nums[i]){
list.pollLast();
}
list.addLast(i);
if(list.peekFirst() == i - k){
list.pollFirst();
}
if(i >= k - 1){
array[index++] = nums[list.peekFirst()];
}
}
return array;
}