代码随想录 Leetcode239. 滑动窗口最大值

发布时间:2024年01月22日

题目:


代码(首刷看解析 2024年1月22日):

class Solution {
private:
    class MyQueue{
    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 show_max(){
            return que.front();
        }
    };
public:
    vector<int> maxSlidingWindow(vector<int>& nums, int k) {
        int n = nums.size();
        MyQueue que;
        vector<int> res;
        for (int i = 0; i < k; ++i) {
            que.push(nums[i]);
        }
        res.push_back(que.show_max());
        for (int i = 0; i < n - k; ++i) {
            que.pop(nums[i]);
            que.push(nums[i + k]);
            res.emplace_back(que.show_max());
        }
        return res;
    }
};

文章来源:https://blog.csdn.net/qq_52313711/article/details/135743335
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。