P1420 最长连号

P1420 最长连号

题目描述

输入长度为 nn 的一个正整数序列,要求输出序列中最长连号的长度。

连号指在序列中,从小到大的连续自然数。

输入格式

第一行,一个整数 n

第二行,n 个整数 a i a_i ai​,之间用空格隔开。

输出格式

一个数,最长连号的个数。

输入输出样例

输入 #1复制

10
1 5 6 2 3 4 5 6 8 9

输出 #1复制

5

说明/提示

数据规模与约定

对于 100%100% 的数据,保证 1 ≤ n ≤ 1 0 4 , 1 ≤ a i ≤ 1 0 9 1 \leq n \leq 10^4,1 \leq a_i \leq 10^9 1≤n≤104,1≤ai​≤109。

题解

python

x=eval(input())
n=list(map(eval,input().split()))

res=[]
i=1
tmp=1
while i<x:
    if n[i]-1==n[i-1]:tmp+=1
    else:
        res.append(tmp)
        tmp=1
    if i == x - 1: res.append(tmp)
    i+=1

print(max(res))

c++

#include <iostream>
#include <algorithm>

using namespace std;
int x,n[10000],tmp=1,res[10000];

int main() {
    cin >> x;
    for (int i = 0; i < x; cin>>n[i],++i);
    for (int i = 1; i < x; ++i) {
        if(n[i]-1==n[i-1])tmp+=1;
        else{res[i]=tmp;tmp=1;}
        if(i == x - 1)res[i]=tmp;
    }
    cout<< *max_element(res,res+x);
    return 0;
}
上一篇:SWUST OJ492: 荷兰国旗问题


下一篇:直接插入排序--C语言