滑动窗口的最大值

来源:互联网 发布:图书数据 编辑:程序博客网 时间:2024/05/22 00:08
#include <vector>#include <deque>using namespace std;vector<int> maxInWindow(const vector<int>& num,int size){vector<int> maxInWindow;if (num.size()>=size&&size>=1){deque<int> index;for (int i = 0; i < size; i++){while (!index.empty()&&num[i]>=num[index.back()]){index.pop_back();}index.push_back(i);}for (int i = size; i < num.size(); i++){maxInWindow.push_back(num[index.front()]);while (!index.empty()&&num[i]>=num[index.back()]){index.pop_back();}if (!index.empty()&&index.front()<=(i-size)){index.pop_front();}index.push_back(i);}maxInWindow.push_back(num[index.front()]);}return maxInWindow;}

0 0
原创粉丝点击