Zhili-PJ-A. 执理1576 - 最长连号_解
题目描述
输入长度为 n 的一个正整数序列,要求输出序列中最长连号的
长度。连号指在序列中,从小到大的连续自然数。
输入格式
第一行,一个整数 n
第二行,n 个整数 a, 之间用空格隔开
输出格式
一个数,最长连号的个数
样例输入与输出
样例输入
10
1 5 6 2 3 4 5 6 8 9
样例输出
5
数据范围与提示
对于 100% 的数据,保证1 ≤ n ≤ 10的4次方,1 ≤ ai ≤ 10的9次方
代码示例
* 全代码
C++
#include<iostream>
using namespace std;
//-熟
int main() {
int n, i, a, b=0, cnt=1, max=0; // 定义下最小值
cin >> n;
cin >> b;
for(i=1; i<n; i++){
cin >> a;
if(a == b+1) {
cnt++;
}
else {
if(cnt > max) { // 与最小值比较
max = cnt; // 更新最小值
}
cnt = 1; //
}
b = a;
}
cout << max;
return 0;
}
附件
C
#include<cstdio>
// -熟
int main() {
int n, i, a, b=0, cnt=1, max=0; // 定义下最小值
scanf("%d", &n);
scanf("%d", &b);
for(i=1; i<n; i++){
scanf("%d", &a);
if(a == b+1) {
cnt++;
}
else {
if(cnt > max) { // 与最小值比较
max = cnt; // 更新最小值
}
cnt = 1; //
}
b = a;
}
printf("%d", max);
return 0;
}
测试点状态