最长凹谷问题

有一维数组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;
}