牛牛的数列一直错一个

为啥例3一直过不了
#include <stdio.h>
#include <stdlib.h>

int main()
{
   int n,i,max=1;
   scanf("%d",&n);
   int a[n];
   int left[100000]; //已i个元素为结尾
   int right[100000];//已i个元素为开头

  if(n>2){
   for(i=0;i<n;i++)
   {
       scanf("%d",&a[i]);
   }
   left[0]=1;
   right[n-1]=1;
   for(i=1;i<n;i++)
   {
       if(a[i]>a[i-1])
       {
          left[i]=left[i-1]+1;
       }
       else
       {
           left[i]=1;
       }
   }
   for(i=n-2;i>=0;i--)
   {
       if(a[i]<a[i+1])
       {
           right[i]=right[i+1]+1;
       }
       else
       {
           right[i]=1;
       }
   }
   
   for(i=1;i<=n-1;i++)
   {

        if(a[i-1]<a[i+1]&&left[i-1]+right[i+1]>max)
       {
           max=left[i-1]+right[i+1];
       }
   }
    if(i=n-1&&left[i-1]+1>max)
       {
           max=left[i-1]+1;
       }
   printf("%d",max+1);
  }
  else
  {
      printf("%d",n);
  }


    return 0;
}


全部评论
4 1 2 3 1,你试试这个样例
点赞
送花
回复
分享
发布于 2022-07-11 19:12

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务