B2097 最长平台

· · 题解

B2097 最长平台 题解

题意是:找数组的最长平台,而从小到大排序的数组中,连续的一串值相同的元素就是一个平台,那么题目就变得简单明了了,具体分析可见注释。

代码如下:

#include<iostream>
using namespace std; 
int main() 
{
    int n,a[100001]; //n表示数组大小
    int m=-9999,len=1;
    int i;
    cin>>n;
    a[0]=-3456497;//保证a[0]与a[1]不相同
    for(i=1;i<=n;i++)
    {
        cin>>a[i];
        if(a[i]==a[i-1])//若当前元素与之前一个元素相同
            len++;//平台长度+1
        else
            len=1;//平台长度重归为1
        if(len>m)//记录最大平台值
            m=len;
    }
    cout<<m<<endl;
    return 0;
}