首页 > 其他 > 详细

【剑指offer】【队列】59-I.滑动窗口的最大值

时间:2020-04-02 21:44:56      阅读:72      评论:0      收藏:0      [点我收藏+]

滑动窗口的最大值

利用单调队列实现
1. 判断当前元素是否还在滑动窗口中,如果不在,弹出
2. 当队尾元素小于等于当前元素时,队尾元素出队
3. 当前元素下标入队
4. 把每次的最大值加入到结果中

class Solution {
public:
    vector<int> maxInWindows(vector<int>& nums, int k) {
        deque<int> de;
        vector<int> res;
        for(int i = 0; i < nums.size(); i++)
        {
            if(!de.empty() && i - k + 1 > de.front()) de.pop_front();
            while(!de.empty() && nums[i] >= nums[de.back()]) de.pop_back();
            
            de.push_back(i);
            if(i >= k - 1) res.push_back(nums[de.front()]);
        }
        return res;
    }
};

【剑指offer】【队列】59-I.滑动窗口的最大值

原文:https://www.cnblogs.com/Trevo/p/12601918.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!