给定一个长度为n的整数数组,数组中连续的相等元素构成的子序列称为平台。试设计算法,求出数组中最长平台的长度。
输入与输出要求:首先输入一个整数n,代表数组元素的个数,n不会超过1000。然后是n个整数,每个整数的取值范围是int型范围。输出最长平台的长度,占一行。
程序运行效果:
Sample 1:
15↙
1 1 2 2 4 5 7 7 7 7 7 7 3 3 9↙
6
#include <stdio.h>
int main()
{
int a[1000] = { 0 }, b[1000] = { 0 }, max = 0, count = 0, n, i = 0, j = 0, k = 0;
scanf("%d", &n);
for (i = 0; i < n; i++)
scanf("%d", &a[i]);
for (i = 0; i < n; i++)
{
if (a[i + 1] == a[i])
{
count++;
b[j] = count;
j++;
}
if (a[i + 1] != a[i])
count = 0;
}
max = b[0];
for (k = 0; k < j; k++)
{
if (b[k] > max)
max = b[k];
}
printf("%d\n", max+1);
return 0;
}