题目:一个从小到大排列的数组,这个数组中的一个平台就是连续的一段值相同的元素。例如:122333445中22,333等都是平台,333为最长平台
程序:
#include<iostream>
#include<vector>
using namespace std;
int main()
{
int max_len=0;
int pla_num=1;
int las_num;
int cur_num;
int cin_tem;
int sta=1;
vector<int> lis_num;
while(cin>>cin_tem)lis_num.push_back(cin_tem);
cur_num=las_num=lis_num[0];
for(int i=0;i<lis_num.size();i++)
{
if(cur_num==las_num)
{
for(int j=i;cur_num==las_num&&j<lis_num.size()-max_len;j++,max_len++)
{
cur_num=lis_num[j];
pla_num=cur_num;
}
las_num=cur_num;
i=j;
continue;
}
else
{
sta=cur_num-las_num;
i+=max_len-1;
max_len--;
cur_num=lis_num[i];
for(int k=i;cur_num==las_num&&k>=i-sta;k--,max_len++)cur_num=lis_num[k];
continue;
}
}
cout<<pla_num;
return 0;
}