全部评论 1

  • 哪题

    3天前 来自 天津

    0
    • A82860

      3天前 来自 北京

      0
    • 我知道哪里有问题了
      如果最后一位是1的话你就始终不会进入最后一次的判断(因为你的程序是0才会更新),这也是你为什么样例1过不了的原因
      因此有两种处理方式,一是往最后加一个0,二是等整体循环完毕后再进行一次单独特判

      3天前 来自 天津

      0
    • #include<bits/stdc++.h>
      using namespace std;
      int main(){
          long long n;
          cin>>n;
          long long a[114514];
          for(int i=0;i<n;i++){
              cin>>a[i];
          }
          int m=0,max=0;
          for(int i=0;i<=n;i++){
              if(a[i]==1){
                  m++;
              }else{
                  if(max<=m){
                      max=m;
                  }
                  m=0;
              }
          }
          cout<<max;
          return 0;
      }
      

      改成这样即可
      只用把第二次循环改成i<=n,这样相当于往后面添加了一个0(自己思考为什么)

      3天前 来自 天津

      0

热门讨论