长沙网站开发智,网站内的搜索是怎么做的,wordpress运行时间,天津官网建设哪家好牛客题霸 [滑动窗口的最大值] C题解/答案
题目描述
给定一个数组和滑动窗口的大小#xff0c;找出所有滑动窗口里数值的最大值。例如#xff0c;如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3#xff0c;那么一共存在6个滑动窗口#xff0c;他们的最大值分别为{4,4,6,…牛客题霸 [滑动窗口的最大值] C题解/答案
题目描述
给定一个数组和滑动窗口的大小找出所有滑动窗口里数值的最大值。例如如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3那么一共存在6个滑动窗口他们的最大值分别为{4,4,6,6,6,5} 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个 {[2,3,4],2,6,2,5,1} {2,[3,4,2],6,2,5,1} {2,3,[4,2,6],2,5,1} {2,3,4,[2,6,2],5,1} {2,3,4,2,[6,2,5],1} {2,3,4,2,6,[2,5,1]}。 窗口大于数组长度的时候返回空
题解
暴力做法 枚举一个开段然后查看长度为size的区间内最大值不断存入新的vector里 记得当sizelen时要返回空
代码
class Solution {
public:vectorint maxInWindows(const vectorint num, unsigned int size){vectorint sum;int lennum.size();if(lensize||size0)return sum;for(int i0;ilen-size1;i){int maxxnum[i];for(int ji;jsizei;j){maxxmax(maxx,num[j]);}sum.push_back(maxx);}return sum;}
};