1116:最长平台(C C++)

【题目描述】

已知一个已经从小到大排序的数组,这个数组的一个平台(Plateau)就是连续的一串值相同的元素,并且这一串元素不能再延伸。例如,在 1,2,2,3,3,3,4,5,5,6中1,2-2,3-3-3,4,5-5,6都是平台。试编写一个程序,接收一个数组,把这个数组最长的平台找出来。在上面的例子中3-3-3就是最长的平台。

【输入】

第一行有一个整数n,为数组元素的个数。第二行有n个整数,整数之间以一个空格分开。

【输出】

输出最长平台的长度。

【输入样例】

10
1 2 2 3 3 3 4 5 5 6

【输出样例】

3

【代码】

#include<iostream>
using namespace std;
int main()
{
    
       int n,alen=0,len=1;
    cin>>n;                
    int a[n+1];			//数组a从1到n 	 
	a[0]=0;         //a【0】存放不同值 
      for(int i=1;i<=n;i++)	//从1到n 
    {
    
    
	    cin>>a[i];              //输入数组a 
	    if(a[i]==a[i-1])       //若当前元素与之前一个元素相同则++ 
           len++;               
        else 
        	len=1;              //不相同则回归1 
        if(alen<len) 			//当前长度 大于 最大长度 则  
            alen=len;          //修改最大长度值 
	}
	cout<<alen<<endl;	//输出最大长度值 
    return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_50901683/article/details/109003115