By CaesarChang                 

      ~关注我  带你看更多精品技术和面试必备

class Solution {
public int[] maxSlidingWindow(int[] nums, int k) {
if(nums.length==0||(nums.length<k)){
return new int[]{};
}
int[] result=new int[nums.length-k+1];
int Max=-1;
for(int i=0;i<nums.length;i++){
Max=nums[i];
for(int j=1;j<k;j++){
if((j+i)<nums.length)
Max=Math.max(Max,nums[j+i]);
}
if(i<nums.length-k+1)
result[i]=Max;
}
return result;
}
}

输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3
输出: [3,3,5,5,6,7] 
解释: 

  滑动窗口的位置                最大值
---------------               -----
[1  3  -1] -3  5  3  6  7       3
 1 [3  -1  -3] 5  3  6  7       3
 1  3 [-1  -3  5] 3  6  7       5
 1  3  -1 [-3  5  3] 6  7       5
 1  3  -1  -3 [5  3  6] 7       6
 1  3  -1  -3  5 [3  6  7]      7

思路: 

1 开一个新数组  存放最大值

2 两个循环  ,第一个控制走到最后,第二个来实现寻找最大值,(k范围内的)(借助Math.max)  比较(i+1,k-1)

3 找到放到新数组组里面