题解 A82860 见注释
2026-04-02 15:06:37
发布于:广东
313阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
int n,ans;//ans存储最大的连续1的个数
int a[100009];
int main(){
cin>>n;//n个数字
for(int i=0;i<n;i++)cin>>a[i];
//从第一个元素开始遍历
for(int i=0;i<n;i++){
int cnt=0;//初始状态:当前连续1的个数为0
while(a[i]==1){//只要当前元素为1
//就继续找下一个元素
cnt++;//连续1的个数加1
i++;
}
//保存最大连续1的个数
ans=max(ans,cnt);
}
cout<<ans;
return 0;
}
全部评论 2
可以可以
2026-07-13 来自 山西
1可以分析一下max(ans,cnt);吗?
2026-07-14 来自 浙江
0cnt是当前连续1的个数,ans是整个过程中连续1的最大值,ans=max(ans,cnt)相当于是说如果当前这段连续1的个数大于之前连续1的个数,就更新
例如: 1100111 有两段连续1,前一段cnt=2,于是ans会从0更新为2,后一段cnt=3,ans会从2更新为32026-07-15 来自 广东
0谢谢
2026-07-15 来自 浙江
0















有帮助,赞一个