我哪错了QWQ
2026-08-24 20:57:18
发布于:北京
14阅读
0回复
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;
}
我这哪错了QWQ
全部评论 1
哪题
4天前 来自 天津
0A82860
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


有帮助,赞一个