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

滑动窗口的最大值

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

#include <deque>
class Solution {
public:
        class myQue
        {
        public:
            deque<int> que;
            void pop(int val){
                if(!que.empty()&&que.front()==val)
                    que.pop_front();
            }
            void push(int val){
                while(!que.empty()&&que.back()<val)
                    que.pop_back();
                que.push_back(val);
            }
            int front(){
                return que.front();
            }
        };
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param num int整型vector 
     * @param size int整型 
     * @return int整型vector
     */
    vector<int> maxInWindows(vector<int>& num, int size) {
        // write code here
        myQue que;
        vector<int> res;
        if(size==0||size>num.size()) return res;
        for(int i=0;i<size;i++){
            que.push(num[i]);
        }
        res.push_back(que.front());
        for(int i=size;i<num.size();i++){
            que.pop(num[i-size]);
            que.push(num[i]);
            res.push_back(que.front());
        }
        return res;
    }
};

全部评论

相关推荐

有趣的牛油果开挂了:最近这个阶段收到些杂七杂八的短信是真的烦
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务