首页 > 其他 > 详细

单调队列模板

时间:2020-04-25 01:18:40      阅读:52      评论:0      收藏:0      [点我收藏+]
 1 class Solution 
 2 {
 3 public:
 4     vector<int> maxSlidingWindow(vector<int>& nums, int k) 
 5     {
 6         vector<int> res;
 7         deque<int> q;
 8         for(int i = 0;i < nums.size();i ++)
 9         {
10             //看滑动窗口是否大于k
11             if(q.size() && i - k + 1 > q.front()) q.pop_front();
12             //维持一个严格单调下降的双端队列
13             while(q.size() && nums[q.back()] <= nums[i]) q.pop_back();
14             q.push_back(i);//把当前下标放入双端队列中
15             //滑动窗口大小满足k
16             if(i >= k - 1) res.push_back(nums[q.front()]);
17         }
18         return res;
19     }
20 };

 

单调队列模板

原文:https://www.cnblogs.com/yuhong1103/p/12770666.html

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