文章
14
粉丝
230
获赞
26
访问
70.4k
如果a[i]>a[i-1] 保持递增 dp[i]=dp[i-1]+1;
否则, 重新计算爬坡,dp[i]=1;
当前坡度计算:a[i]- a[i-dp[i]+1],如果大于ans,更新ans
#include<bits/stdc++.h>
using namespace std;
int a[1005];
int dp[1005];
int main()
{
int num=0;
while(cin>>num)
{
for(int i=1; i<=num; i++)
{
cin>>a[i];
}
int ans=0;
dp[1]=1;
for(int i=1; i<=num; i++)
{
if(a[i]>a[i-1])
dp[i]=dp[i-1]+1;
else
dp[i]=1;
if(a[i]-a[i-dp[i]+1]>ans)
ans=a[i]-a[i-dp[i]+1];
}
cout<<ans<<endl;
}
return 0;
}
登录后发布评论
暂无评论,来抢沙发