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

滑动窗口的最大值

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

#include <vector>
class Solution {
public:
    class myque{
    public:
        deque<int> que;
        void push(int val){
            while (!que.empty() && que.back() < val){
                que.pop_back();
            }
            que.push_back(val);
        }
        void pop(int val){
            if (!que.empty() && val == que.front())
                que.pop_front();
        }
        int front(){
            return que.front();
        }
    };
    vector<int> maxInWindows(const vector<int>& num, unsigned int size) {
        myque que;
        vector<int> result;
        if (size > num.size() || size == 0)
            return result;
        for (int i = 0; i < size; i++){
            que.push(num[i]);
        }
        result.push_back(que.front());
        for (int i = size; i < num.size(); i++){
            que.pop(num[i - size]);
            que.push(num[i]);
            result.push_back(que.front());
        }
        return result;

    }
};

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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