求助原因
  • 板块学术版
  • 楼主suxiyiwang
  • 当前回复3
  • 已保存回复3
  • 发布时间2023/4/10 12:44
  • 上次更新2023/10/23 18:49:52
查看原帖
求助原因
522989
suxiyiwang楼主2023/4/10 12:44

改动代码

#include<bits/stdc++.h>
using namespace std;
const int N=1e6+10;
deque<int> q;
int a[N],n,k;
int main()
{
	ios::sync_with_stdio(false);
	cin>>n>>k;
	for(int i=1;i<=n;i++)cin>>a[i];//(为什么加了这一行,程序运行速度会更快)
	for(int i=1;i<=n;i++)
	{
		while(q.size()&&a[i]<q.back())q.pop_back();
		q.push_back(a[i]);
		if(i-k>=1&&q.front()==a[i-k])q.pop_front();
		if(i>=k)cout<<q.front()<<" ";
	}
	cout<<endl;
	q.clear();
	for(int i=1;i<=n;i++)
	{
		while(q.size()&&a[i]>q.back())q.pop_back();
		q.push_back(a[i]);
		if(i-k>=1&&q.front()==a[i-k])q.pop_front();
		if(i>=k)cout<<q.front()<<" ";
	}
	return 0;
}

原代码

#include<bits/stdc++.h>
using namespace std;
const int N=1e6+10;
deque<int> q;
int a[N],n,k;
int main()
{
	ios::sync_with_stdio(false);
	cin>>n>>k;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
		while(q.size()&&a[i]<q.back())q.pop_back();
		q.push_back(a[i]);
		if(i-k>=1&&q.front()==a[i-k])q.pop_front();
		if(i>=k)cout<<q.front()<<" ";
	}
	cout<<endl;
	q.clear();
	for(int i=1;i<=n;i++)
	{
		while(q.size()&&a[i]>q.back())q.pop_back();
		q.push_back(a[i]);
		if(i-k>=1&&q.front()==a[i-k])q.pop_front();
		if(i>=k)cout<<q.front()<<" ";
	}
	return 0;
}

数据 测试点 状态 耗时 内存 改动后: #7 Accept 327毫秒 6008K

原来: #7 stdMoniter_alarm_timelimit_exceed -1毫秒 -1K

2023/4/10 12:44
加载中...