文章

25

粉丝

0

获赞

210

访问

5.8k

头像
最长连号 题解:
P1571 中山大学机试题
发布于2026年3月16日 16:46
阅读数 75

#include<bits/stdc++.h>
using namespace std;

const int N = 10005;
int dp[N]; //dp[i] 表示以a[i]结尾的最长连续子序列
int a[N];

int main(){
    int n;
    while(cin >> n){
        for(int i = 0; i < n; i++){
            cin >> a[i];
        }
        int ans = -1;
        for(int i = 0; i < n; i++) dp[i] = 1;

        for(int i = 1; i < n; i++){
           if(a[i] - a[i-1] == 1){
                dp[i] = dp[i-1] + 1;
                ans = max(ans, dp[i]);
           }else{
                dp[i] = 1;
                ans = max(ans,dp[i]);
           }
        }
        printf("%d\n",ans);
    }
    return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发