目录
一,题目
二,思路
- 因为题目没有给出存放平台的数组的元素个数可以取到的最大值,所以可以直接将存放平台的数组长度设为键盘输入的数组元素个数n,即a[n]。接着再对数组中的元素进行赋值。
- 然后遍历数组,将数组中的前后两个元素值进行判断:如果前后这两个元素值相同,那么让当前平台长度c自增,并再进行一次判断:如果当前平台长度c大于之前的平台最大长度m,那么将当前平台长度c赋值给平台最大长度m。如果前后这两个元素值不相同,此时平台断开,那么就让当前平台长度赋值为1,继续去循环,找到下一个连续的平台。(需要注意的是,当前平台长度c的初始值需要设为1,因为即使没有连续重复的元素,当前平台的长度也有1,例如,数组有2个元素:3,2,可以看到3和2不相等,没有连续重复的元素,此时当前平台长度c为1,平台最大长度m为1,如果将当前平台长度的初始值设为0,则结果错误,同理平台最大长度m也一样,m的初始值为1)
- 最后输出结果平台最大长度m。
三,代码
cpp
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,m=1,c=1;
cin>>n;
int a[n];
for(int i=0; i<n; i++) cin>>a[i];
for(int i=1; i<n; i++)
{
if(a[i]==a[i-1])
{
c++;
if(c>m) m=c;
}
else c=1;
}
cout<<m;
return 0;
}
有问题请在评论区留言或者是私信我,回复时间不超过一天。