码迷,mamicode.com
首页 > 其他好文 > 详细

滑动窗口的最大值

时间:2016-05-08 16:35:17      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:

 

 

 1 class Solution {
 2 public:
 3     vector<int> maxInWindows(const vector<int>& num, unsigned int size)
 4     {
 5         vector<int> res;
 6         if(num.empty() || size<=0)
 7             return res;
 8         int i=0;
 9         for(; i<size; ++i)
10         {
11             if(index.empty())
12             {
13                 index.push_back(i);
14             }
15             else
16             {
17                 if(num[i] >= num[index.back()])
18                     index.pop_back();
19                     index.push_back(i);
20                 
21             }
22         }
23         
24         for(; i<=num.size(); ++i)
25         {
26             res.push_back(num[index.front()]);
27             while(!index.empty() && num[i]>=num[index.back()])
28                   index.pop_back();
29             index.push_back(i);
30             while(!index.empty() && index.front()<=(i-size))
31                    index.pop_front();
32             
33         }
34         return res;
35     }
36 private:
37     deque<int> index;
38 };

 

滑动窗口的最大值

标签:

原文地址:http://www.cnblogs.com/daocaorenblog/p/5470814.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!