A21369连号题解
2024-11-30 20:51:14
发布于:北京
19阅读
0回复
0点赞
原题链接:A21369.连号
温馨提示:本题解配有文字说明和代码注释,请放心食用!!!
由于这道题要求我们求出最长连号,所以我们可以将所有连号长度采集起来,然后找出最大值。
具体实现:定义一个数组arr,arr[i]表示从i开始数组的连号长度,在通过函数定义求出连号长度储存起来,最后排序找出最大并输出。
AC代码:
/*
XYC.专属题解,禁止搬运,仅供参考,请勿抄袭!
*/
//ACGO题库 A21369.最长连号 入门 题解(含注释)
#include <bits/stdc++.h>
using namespace std;
int n = 0;
int length(int* arr,int scr){//定义一个函数求从下表scr开始有多长的连号
int len = 1;
for (int i = scr;i <= n;i ++){
if(arr[i] == arr[i+1] - 1){//判断连号
len ++;
}else{
return len;
}
}
return len;
}
int main(){
int ans = 0;
int len[12000] = {1};//储存连号长度
cin >> n;
int arr[12000] = {};
for (int i = 1;i <= n;i ++){
cin >> arr[i];
}
for (int i = 1;i <= n;i ++){
len[i] = length(arr,i);//求长度
}
sort(len+1,len+n,greater<int>());//sort排序
cout << len[1];//输出连号长度最大的
return 0;
}//点个赞呗!!!
这里空空如也
有帮助,赞一个