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;
}
}