思路如下:
两次for循环,外面一层遍历整个数组,里面一层遍历窗口部分,每次都将窗口中最大值选出来存到结果数组中即可。
class Solution {
public int[] maxSlidingWindow(int[] nums, int k) {
int m=nums.length;
//结果数组,长度为m-k+1
int[]res=new int[m-k+1];
for(int i=0;i<m-k+1;i++){
//每次遍历都要选出一个最大值
int maxValue=Integer.MIN_VALUE;
for(int j=i;j<i+k;j++){
if(nums[j]>maxValue){
maxValue=nums[j];
}
}
//选出最大值存入res结果数组
res[i]=maxValue;
}
return res;
}
}
原题地址:
239. 滑动窗口最大值