社区讨论

求助,(也许是站外题?)

灌水区参与者 4已保存回复 6

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
6 条
当前快照
1 份
快照标识符
@m54wzb17
此快照首次捕获于
2024/12/26 13:59
去年
此快照最后确认于
2025/11/04 12:20
4 个月前
查看原帖
CPP
问题描述
在一条01串中,如果01的个数是相同的,我们就称这条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 条回复,欢迎继续交流。

正在加载回复...