题解 | #生成窗口最大值数组#

生成窗口最大值数组

https://www.nowcoder.com/practice/b316c7f9617744b98fa311ae29ac516c

#include <iostream>
#include<deque>
using namespace std;
deque<int>q;
int main() {
   int n,m;
   int a[1000001];
   cin>>n>>m;
   for(int i=1;i<=n;i++)
   cin>>a[i];
   for(int i=1;i<=n;i++)
   {
    while(!q.empty()&&a[q.back()]<a[i])
       q.pop_back();
       q.push_back(i);
       if(i>=m){
       while(!q.empty()&&q.front()<=i-m)
           q.pop_front();
           cout<<a[q.front()]<<" ";
       }

   }
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

求面试求offer啊啊啊啊:1600一个月?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务