1.问题描述
给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。
示例:
输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3
输出: [3,3,5,5,6,7]
解释:
2.题目分析
本题直接暴力就行
我们需要知道结果容器里边的元素个数为nums.size()-k+1
3.代码实现
3.1C++代码
class Solution {
public:
vector<int> maxSlidingWindow(vector<int>& nums, int k) {
if(nums.empty())
return nums;
vector<int> vec(nums.size()-k+1);
int cnt=0;
for(int i=0;i<nums.size()-k+1;i++)
{
int max=-1000;
for(int j=i;j<i+k;j++)
{
if(max<nums[j])
max=nums[j];
}
vec[cnt++]=max;
}
return vec;
}
};
3.2Java代码
class Solution {
public int[] maxSlidingWindow(int[] nums, int k) {
if(nums.length==0)
return nums;
int arr[]=new int[nums.length-k+1];
int cnt=0;
for(int i=0;i<nums.length-k+1;i++)
{
int max=-1000;
for(int j=i;j<i+k;j++)
{
if(max<nums[j])
max=nums[j];
}
arr[cnt++]=max;
}
return arr;
}
}