文章

2

粉丝

13

获赞

1

访问

624

头像
骑车路线 题解:
P1737 华东师范大学2021年机试题
发布于2024年8月21日 16:32
阅读数 325

佬们,只过了25%,用的单调队列,能帮忙看看错哪了吗?谢谢!

报错是报的wrong answer。谢谢!

#include<bits/stdc++.h>
using namespace std;
int main()
{
	long long n,a[1010];
	while(cin>>n)
	{
		deque<int> d;
		int ans=0;
		for(int i=0;i<n;i++) cin>>a[i];
		for(int i=0;i<n;i++)
		{
			if(d.empty()||d.back()<a[i]) 
			{
				d.push_back(a[i]);
				int height=d.back()-d.front();
				ans=max(ans,height);
			}
			else
			{
				while(!d.empty()&&d.back()>=a[i]) d.pop_back();
				d.push_back(a[i]);
				int height=d.back()-d.front();
				ans=max(ans,height);
			}	
		}
		cout<<ans<<endl;
	}
	return 0;
}

 

登录查看完整内容


登录后发布评论

1 条评论
snake VIP
2024年8月21日 18:12

你想复杂了,因为要连续的子段差值最大,所以直接递推就可以

赞(1)