给定一个由n个元素组成的二进制数组a,二进制数组是只由0和1组成的数组。 一个空白部分是一个连续的仅由0组成的元素段。 你的任务是找到最长的空白部分的长度。 Input 第一行包含单个整数t (1≤t≤1000)——测试用例的数量。 每个测试用例的第一行包含单个整数n (1≤n≤100) ——数组的长度。 每个测试用例的第二行包含n个以空格分隔的整数ai (0≤ai≤1) ——数组的元素。 Output 对于每个测试用例,输出一个整数——最长空白部分的长度。用c++写
时间: 2024-02-12 21:04:55 浏览: 128
node.JS二进制操作模块buffer对象使用方法详解
好的,我明白了你的问题。下面是我给出的代码示例:
```c++
#include <iostream>
using namespace std;
int main() {
int t;
cin >> t;
while (t--) {
int n;
cin >> n;
int ans = 0, curr = 0;
for (int i = 0; i < n; i++) {
int x;
cin >> x;
if (x == 0) {
curr++;
} else {
ans = max(ans, curr);
curr = 0;
}
}
ans = max(ans, curr);
cout << ans << endl;
}
return 0;
}
```
这里的思路是遍历数组,如果当前元素是0,则将当前空白部分的长度加1;如果当前元素是1,则更新最长的空白部分长度,并将当前空白部分长度重置为0。最后再次更新最长的空白部分长度,输出即可。
希望对你有帮助!
阅读全文