题目描述:
给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你
只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。
返回滑动窗口中的最大值。
示例:
输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3
输出: [3,3,5,5,6,7]
代码实现:
class Solution {
public int maxNum(int[] arr){
if(arr.length<0){
return 0;
}
int tmp = arr[0];
for(int i = 0;i<arr.length;i++){
tmp = Math.max(tmp,arr[i]);
}
return tmp;
}
public int[] maxSlidingWindow(int[] nums, int k) {
if(nums.length < 0 || k <= 0 || k > nums.length){
return nums;
}
int[] arr = new int[nums.length+1-k];
for (int i =0;i<arr.length;i++){
int[] cur = Arrays.copyOfRange(nums,i,i+k);
int tmp = maxNum(cur);
arr[i] = tmp;
}
return arr;
}
}