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

滑动窗口的最大值

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

#include <vector>
class Solution {
public:
    vector<int> ans;
    queue<int> q;
    vector<int> myMax;
    int idx;
    vector<int> maxInWindows(const vector<int>& num, unsigned int size) {
        if(num.size()<size||size==0) return ans;
        idx=0;
        for(int i=0;i<num.size();i++){
            q.push(num[i]);
            while(!myMax.empty()&&myMax.back()<num[i]){
                myMax.pop_back();
            }
            myMax.push_back(num[i]);
            if(i<size-1) continue;
            if(i>=size&&num[i-size]==myMax[idx]){
                idx++;
            }
            ans.push_back(myMax[idx]); 
        }
        return ans;
    }
};

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-16 12:18
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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