DO. 程序阅读题-6001
程序阅读题-6001
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
#include <bits/stdc++.h>
using namespace std;
int a[200005];
int main() {
int n;
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> a[i];
a[i+n] = a[i];
}
int maxCnt = 1, cur = 1;
for (int i = 2; i <= 2*n; i++) {
if (a[i] == a[i-1]) {
cur++;
} else {
if (cur > maxCnt) maxCnt = cur;
cur = 1;
}
if (cur == n) break;
}
if (cur > maxCnt) maxCnt = cur;
cout << (maxCnt > n ? n : maxCnt);
return 0;
}
判断题
- 若输入
4 1 1 2 2,输出 2。{{ select(1) }}
- 对
- 错
- 程序能正确计算环形数组(首尾相连)中连续相同元素的最大个数。{{ select(2) }}
- 对
- 错
- 将最后输出语句改为
cout << maxCnt;会导致输出可能大于 n。{{ select(3) }}
- 对
- 错
选择题
- 若输入
3 1 1 1,输出 {{ select(4) }}
- 3
- 6
- 2
- 1
- 若输入
5 1 2 2 2 1,输出 {{ select(5) }}
- 2
- 3
- 4
- 5
答案:
- 对(原数组中连续相同最大为2,环形也是2)
- 对
- 对(如果全相等,复制后maxCnt会达到2n,输出超过n)
- A
- B(原数组
2,2,2长度3,环形连接后不会更长,因为首尾是1和1,不扩展)
1.对
2.对
3.对
4.A
5.B