面试题目65(滑动窗口的最大值)
来源:互联网 发布:医疗器械注册 软件 编辑:程序博客网 时间:2024/06/10 19:12
题目:给定一个数组和滑动窗口的大小,请找出所有滑动窗口的最大值,例如如果输入数组是
{2,1,3,2,6,2,5,1},则滑动窗口的最大值是{3,3
#include<iostream>#include<deque>#include<vector>using namespace std;vector<int> max_windows(const vector<int> &num,unsigned int size){vector<int> max_num;deque<int> index;for(unsigned int i=0;i<size;++i){if(!index.empty()&&num[i]>num[index.back()])index.pop_back();index.push_back(i);}for(unsigned int i=size;i<num.size();++i){max_num.push_back(num[index.front()]);while(!index.empty()&&num[i]>=num[index.back()]){index.pop_back();}if(!index.empty()&&index.front()<=(int)(i-size)){index.pop_front();}index.push_back(i);}max_num.push_back(num[index.front()]);return max_num;}int main(){int a[8]={2,1,3,2,6,2,5,1};vector<int> vec(a,a+8);vector<int> result;result=max_windows(vec,3);for(vector<int>::iterator iter=result.begin();iter!=result.end();++iter){cout<<*iter<<" ";}cout<<endl;system("pause");return 0;}
,6,6,6,5};
0 0
- 面试题目65(滑动窗口的最大值)
- 65 - 滑动窗口的最大值
- 滑动窗口的最大值
- 滑动窗口的最大值
- 滑动窗口的最大值
- 滑动窗口的最大值
- 滑动窗口的最大值
- 滑动窗口的最大值
- 滑动窗口的最大值
- 滑动窗口的最大值
- 滑动窗口的最大值
- 滑动窗口的最大值
- 滑动窗口的最大值
- 滑动窗口的最大值
- 滑动窗口的最大值
- 滑动窗口的最大值
- 滑动窗口的最大值
- 滑动窗口的最大值
- 如何正确在高版本的VS中使用jsoncpp
- AKH
- Python - PS1-1 counting vowels
- HTML与CSS简单页面效果实例
- Codeforces Round #285 (Div. 2)
- 面试题目65(滑动窗口的最大值)
- Codeforces Round #286 (Div. 2)
- “应用程序已被java安全阻止”问题解决
- Codeforces Round #287 (Div. 2)
- hdu 4612 Warm up (带有重边的无向图Tarjan+树的直径)
- qt数据库多线程问题的解决
- c语言学习之不同方式计算圆周率
- Codeforces Round #288 (Div. 2)
- 牛刀小试 - Java泛型程序设计