花匠
简单贪心
数有几个波动
分别从波峰与波谷开始
#include<bits/stdc++.h>
#define re return
#define inc(i,l,r) for(int i=l;i<=r;++i)
#define dec(i,l,r) for(int i=l;i>=r;--i)
using namespace std;
template<typename T>inline void rd(T&x)
{
char c;bool f=0;
while((c=getchar())<'0'||c>'9')if(c=='-')f=1;
x=c^48;
while((c=getchar())>='0'&&c<='9')x=x*10+(c^48);
if(f)x=-x;
}
const int maxn=100005;
int last,now,ans,n,f,ff;
int main()
{
rd(n);
rd(last);
ans=1;int k=1;
inc(i,2,n)
{
rd(now);
if(f==1&&now>last)++ans,f=0;
else if(f==0&&now<last)++ans,f=1;
if(ff==1&&now<last)++k,ff=0;
else if(ff==0&&now>last)++k,ff=1;
last=now;
}
printf("%d",max(ans,k));
re 0;
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步