思路
(模拟) $O(n)$
破环为链,复制n个数据,统计其中的连续1的个数
C++ 代码
#include <iostream>
#include <cmath>
#include <algorithm>
using namespace std;
bool a[400005];
int main()
{
int T;
cin >> T;
while (T--)
{
int n;
cin >> n;
for (int i = 1; i <= n; i++)
{
cin >> a[i];
a[i + n] = a[i];
}
int maxv = 0, ans = 0;
for (int i = 1; i <= 2 * n; i++)
{
if (a[i]) ans++;
else ans = 0;
maxv = max(maxv, ans);
}
cout << maxv << endl;
}
return 0;
}