提示:如果你#Subtask1TLE
查看原帖
提示:如果你#Subtask1TLE
1029978
zyh1145楼主2023/11/26 15:32

看看我的(喜

TLE 代码:

#include <iostream>
#include <algorithm>
using namespace std;
const int maxn = 1e6+1;
int n,a[maxn],l,r,ans; 
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cin>>n;
	for (int i = 1;i <= n;i++)
	{
		cin>>a[i];
		if (a[i])
		{
			a[i] = a[i-1] + 1;
		}
		else 
		{
			a[i] = a[i-1] - 1;
		}
	}
	for (int i = 2;i <= n;i++)
	{
		for (int j = i-ans-2;j >= 0;j -= 2)//唯一修改处
		{
			if (a[i] - a[j] == 0) ans = i-j;
		}
	}
	cout<<ans;
    return 0;
}

AC 代码:

#include <iostream>
#include <algorithm>
using namespace std;
const int maxn = 1e6+1;
int n,a[maxn],l,r,ans; 
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cin>>n;
	for (int i = 1;i <= n;i++)
	{
		cin>>a[i];
		if (a[i])
		{
			a[i] = a[i-1] + 1;
		}
		else 
		{
			a[i] = a[i-1] - 1;
		}
	}
	for (int i = 2;i <= n;i++)
	{
		for (int j = 0;j <= i-ans-2;j += 2)//唯一修改处
		{
			if (a[i] - a[j] == 0) 
			{
				ans = i-j;
				break;//这里可以省时间
			}
		}
	}
	cout<<ans;
    return 0;
}
2023/11/26 15:32
加载中...