题解 | #滑动窗口的最大值#

滑动窗口的最大值

http://www.nowcoder.com/practice/1624bc35a45c42c0bc17d17fa0cba788

public:
    vector<int> maxInWindows(const vector<int>& num, unsigned int size){
        vector<int>ans;
        if(size>num.size()||num.size()==0||size==0){
            return ans;//这种情况直接返回
        }
        int j;
        for(int i=0;i<num.size();i++){
            int sum=-999999;
            if(num.size()-i>=size)//这里做了优化,限制只有长度大于窗口才进去
            for(j=i;j<i+size;j++){//滑动串口
                sum=max(sum,num[j]);
            }
            //j=size+i说明窗口被完整遍历过了
            if(j==size+i)//如果窗口不完整,那么该答案是不正确的
            ans.push_back(sum);
        }
        return ans;
    }
};
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务