最长凹谷问题

有一维数组X = [8,5,1,6,7,7,3,5],我们把它画到坐标系中,其中凹下去的部分我们称为X数组的凹谷数组Y,其中凹陷的长度即为凹谷数组的长度(Y的长度大于3),其中持平的部分不计入凹谷数组的长度。如下所示,X有两个凹谷数组Y1 = [8,5,1,6,7]和Y2 = [7,3,5],长度分别为5和3。我们则需要返回这个数组中的最长凹谷数组的长度,即5,如果数组中不含凹谷,则返回0。在这里插入图片描述
输入:
6
8 5 1 6 7 3
输出:5
C语言代码:
#include<stdio.h>
int main()
{
int a[10000];
int n;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
int tmp=0;
int count=1,length=0;
for(int i=0;i<n-1;i++)
{
if(a[i+1]<a[i]&&tmp0)
{
tmp=1;
count++;
continue;
}
else if(a[i+1]<=a[i]&&tmp
1)
{
count++;
continue;
}
else if(a[i+1]>a[i]&&tmp1)
{
tmp=2;
count++;
continue;
}
else if(a[i+1]>a[i]&&tmp
2)
{
count++;
if(i+1n-1&&count>length)
{
length=count;
}
continue;
}
else if(a[i+1]<=a[i]&&tmp
2)
{
if(count>length&&tmp==2)
{
length=count;
tmp=0;
count=1;
i–;
}
}
}
printf("%d",length);
return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值