首页 > 技术文章 > 1.9.12

zby-ccsygz 2016-12-11 01:21 原文

12:最长平台

总时间限制:
1000ms
内存限制:
65536kB
描述

已知一个已经从小到大排序的数组,这个数组的一个平台(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 <= 1000),为数组元素的个数。第二行有n个整数,整数之间以一个空格分开。
输出
输出最长平台的长度。
样例输入
10
1 2 2 3 3 3 4 5 5 6
样例输出
3
来源
D.Gries. The Science of Programming, Springer-Verlag, 1981
 1 #include<cstdio>
 2 #include<cstring>
 3 using namespace std;
 4 int s[1010];
 5 int main()
 6 {
 7     int n,ma=0,ma1;
 8     scanf("%d",&n);
 9     for(int i=0;i<n;i++)
10      scanf("%d",&s[i]);
11     for(int i=0;i<n;i++)
12       {
13           ma1=0;
14           int j=i;
15           while(s[j]==s[i])
16           {
17               j++;
18               ma1++;
19           }
20           if(ma1>ma)ma=ma1;
21       }
22       printf("%d",ma);
23      return 0;
24 } 

 

推荐阅读