4 solutions
-
2
#include<iostream> using namespace std; int main() { int n,x,y,maxn,ma; cin>>n;//输入 while(n--) { maxn=0;//初始化 ma=0;//初始化 cin>>x;//输入 for(int i=0;i<x;i++) { cin>>y;//输入 if(y==1)//为1时 { maxn=max(maxn,ma);//是不是最大的 ma=0;//重置 } else if(y==0)//为0时 { ma++; } } maxn=max(maxn,ma);//别漏判断 cout<<maxn<<endl;//输出最长值 } return 0;//完结散花 }
-
0
#include #include #include bool a[101]; using namespace std; int main(){ int n; cin>>n; for(int i=1;i<=n;i++){ int x; cin>>x; for(int i=1;i<=x;i++){ cin>>a[i]; } int s=0,q=0; for(int i=1;i<=x;i++){ if(a[i]==0){ s++; } if(a[i]1||ix){ if(s>=q){ q=s; s=0; } if(s<q){ s=0; } } }
cout<<q<<endl; }
}
-
0
题意
对于每个测试样例,求输入的数中最长的连续个
思路
如果这个数是 ,当前区间零长度加一;如果不是 ,就与最长的区间零比较
代码
#include <bits/stdc++.h> using namespace std; int a[105],mx,m; int main(int argc, char **argv){ int t; cin >> t; while (t--){ int n; cin >> n; for (int i = 0;i < n;i++){ cin >> a[i]; if (!a[i]){ m++; // 如果等于 0,就加 1 }else{ mx = max(m,mx); // 如果不是 0,就判断大小 m = 0; // 重置 } } mx = max(m,mx); // 别漏判 m = 0; printf("%d\n",mx); mx = 0; // 重置 memset(a,0,sizeof(a)); // 重置 } return 0; }
- 1
Information
- ID
- 955
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 7
- Tags
- (None)
- # Submissions
- 84
- Accepted
- 21
- Uploaded By