题目描述
将数组中连续的相同段叫做一个平台,例如,在 11,22,22,33,33,33,44,55,55,66 中 (11),(22,22),(33,33,33),(44),(55,55),(66) 都是平台。
想请你编写一个程序,接收一个数组,找出最长的平台。在上面的例子中 (33,33,33) 就是最长的平台。
输入格式
输入为两行:第一行是数组中元素的个数 𝑛n(1<=𝑛<=100001<=n<=10000),第二行是 𝑛n 个整数,每两个整数之间用空格分隔。
输出格式
输出最长平台的长度。
分析
因为最长平台是连续的,所以可以把判定代码写成while循环,外面套一层for循环找出所有平台,再比较大小,找出最长平台。
代码
#include<bits/stdc++.h>
using namespace std;
int n,maxn=0;
int nrr[10005];
int main(){
cin>>n;
for(int i=0;i<n;i++){
cin>>nrr[i];
}
for(int i=0;i<n;i++){
int num=1;
while(nrr[i]==nrr[i+1]){
num++;
i++;
}
if(num>maxn){
maxn=num;
}
}
cout<<maxn;
return 0;
}