题目描述
输入 n个正整数,要求输出最长的连号的长度。
连号指从小到大连续自然数。
输入格式
第一行,一个整数 n。
第二行,n个整数 a ,之间用空格隔开。
输出格式
一个数,最长连号的个数。
输入输出样例
输入
10
3 5 6 2 3 4 5 6 8 9
输出
5
#include<bits/stdc++.h>
using namespace std;
int main()
{
int f,n,m,i,max=1,ans=0;
cin>>n>>m;
for(i=2;i<=n;i++)
{
cin>>f;
if(f==m+1) max+=1; //如果输入的数是前一个数加1,最大值就加1
else max=1; // 否则的话,最大值变回1(继续下一次判断)
if(max>ans) ans=max;
// 如果最大值大于上一次记录的最长连号,那么就把该次最长连号记录下来
m=f;
}
cout<<ans;
return 0;
}
原先一直用数组,后面实在写不出来看题解,啊别人的方法也太简单了!!