题目描述
输入长度为 n 的一个正整数序列,要求输出序列中最长连号的长度。
连号指在序列中,从小到大的连续自然数。
输入格式
第一行,一个整数 n。
第二行,n 个整数 ai,之间用空格隔开。
输出格式
一个数,最长连号的个数。
输入输出样例
输入 #1
10 1 5 6 2 3 4 5 6 8 9
输出 #1
5
说明/提示
数据规模与约定
对于 100% 的数据,保证 1≤n≤10^4,1≤ai≤10^9。
思路:
首先定义cnt=1,ans=0,然后输入数据,然后遍历数组,如果有连号cnt++,否则cnt清零,然后更新最大值(ans),最后输出ans+1(因为单独一个数也算连号)即可
AC代码:
#include<bits/stdc++.h>//万能头文件
using namespace std;//cin,cout必备
int a[10005];//定义数组
int main()//main主函数开始
{
int ans=0,n,cnt=1;//定义一些变量
cin >> n;//输入数据个数
for(int i=0;i<n;i++)//n个数
{
cin >> a[i];//读入数据
}
for(int i=1;i<n;i++)//从1开始否则会越界(下标-1)
{
if(a[i]==a[i-1]+1)//是连号
{
cnt++;//计数器+1
}
else//不是连号
{
cnt=0;//清零
}
ans=max(cnt,ans);//更新最大值
}
cout<<++ans;//最后要++
return 0;//愉快的结束程序
}
这篇博客就到这里啦,拜拜!