社区讨论
求助,(也许是站外题?)
灌水区参与者 4已保存回复 6
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 6 条
- 当前快照
- 1 份
- 快照标识符
- @m54wzb17
- 此快照首次捕获于
- 2024/12/26 13:59 去年
- 此快照最后确认于
- 2025/11/04 12:20 4 个月前
CPP
问题描述
在一条01串中,如果0和1的个数是相同的,我们就称这条01串是平衡的。现在给你一长度为 n
的01串(每个数之间有空格隔开),请你求出子串中,最长的平衡串的长度。
输入格式
2行。 第1行,1个数,表示 n
。 第2行,n
个数,表示01串。
输出格式
一个数。
输入输出样例
输入
9
0 1 0 0 0 1 1 0 0
输出
6
数据范围
1≤n≤10
这是我的代码
CPP#include<iostream>
using namespace std;
int n,m[100000],x,z;
int main(){
cin>>n;
for(int i=0;i<n;i++){
cin>>m[i];
}
for(int i1=0;i1<n;i1++){
for(int l=i1;l<n;l++){
if(m[l]==1){
x++;//cout<<x<<endl;
}
if(m[l]==0){
x--;//cout<<x<<endl;
}
if(x==0){
if(l-i1+1>z){
z=l-i1+1;//cout<<z<<endl;
}
}
}
//cout<<endl;
x=0;
}
cout<<z;
return 0;
}
现在就是超时不知道咋搞
回复
共 6 条回复,欢迎继续交流。
正在加载回复...