TB椰程 TypeBuddy 打字搭子

最长连号

洛谷·深入浅出 · 代码 · cpp · 难度 3/5 · 共 462 字

求序列中最长连续自然数段的长度

  • 洛谷
  • 练习

正文

// 原题:https://oj.yecheng.tv/p/1388
// 题意:输入序列,求最长的“连号”(从小到大相邻自然数)长度。
// 思路:扫描,若当前比前一个大 1 则当前段 +1,否则重置为 1,维护最大值。
// 复杂度:O(n)。
// 易错点:连号需严格递增 1;段长至少 1。
#include <iostream>
using namespace std;
int main(){
    int n, x, prev, cur = 1, mx = 1;
    cin >> n >> prev;
    for(int i = 1; i < n; i++){
        cin >> x;
        if(x == prev + 1) cur++;
        else cur = 1;
        if(cur > mx) mx = cur;
        prev = x;
    }
    cout << mx << endl;
    return 0;
}

洛谷·深入浅出的其它内容

打字首页 · 词库画廊 · 编程打字 · 指法入门 · 天梯榜 · 数据分析 · 班级课堂 · 关于我们
椰程 TypeBuddy 打字搭子 —— 键盘指法练习 · 单词记忆 · 班级课堂 · 在线 PK