day13 - 栈与队列part03

发布时间 2023-08-22 14:37:30作者: zqh2023

239. 滑动窗口最大值

详解

// 队列que是STL的双向队列deque
// 队列存放的是元素在序列中的序号
//参考https://www.jianshu.com/p/e59d51e1eef5
class Solution {
public:
    vector<int> maxSlidingWindow(vector<int>& nums, int k) {
        deque<int> deque_1;
        vector<int> result;

        for(int i=0; i<nums.size(); i++){
            while(!deque_1.empty() && nums[deque_1.back()] < nums[i]){
                deque_1.pop_back();
            }
            deque_1.push_back(i);
            if(i>=k-1){
                while(!deque_1.empty() && deque_1.front()<i-k+1){
                    deque_1.pop_front();
                }
                result.push_back(nums[deque_1.front()]);
            }
        }
        return result;
    }
};