题目
题目描述 输入n个正整数,(1<=n<=10000),要求输出最长的连号的长度。(连号指从小到大连续自然数)
输入输出格式
第一行,一个数n;
第二行,n个正整数,之间用空格隔开。
输出格式: 一个数,最长连号的个数。
输入输出样例
输入样例#1:10 3 5 6 2 3 4 5 6 8 9
输出样例#1:5
题解
获取输入后直接使用一个iterater遍历一遍即可。
代码
#include <iostream>
#include <vector>
using namespace std;
int main(int argc, const char * argv[]) {
int num = 0, length = 0, result = 0;
cin >> num;
vector<int> ivec(num, 0); //use num to initial ivec
for(int count = 0; count < num; count++)
cin >> ivec[count]; //get numbers
for (vector<int>::iterator it = ivec.begin()+1; it < ivec.end(); it++){
if(*it == *(it-1)+1) //if it is the right number
length++;
else
length = 0;
if(length > result)
result = length;
}
cout << result+1 << endl;
return 0;
}