我这个方法合适吗?求最长平台
一个从小到大排列的数组,这个数组中的一个平台就是连续的一段值相同的元素。例如:122333445中22,333等都是平台,333为最长平台。我的程序 有错 没法运行
第15行有错,怎么错啦?
我这个思路可以吗? 还可以简化吗?
#include<stdio.h>
#define SIZE 1000
int maxLen(int , int);
main()
{
int a[SIZE];
int n, i;
printf("Please input the number of intergers:");
scanf("%d", &n); //输入N个数
for(i=0; i<=n-1; i++) //依次读取N个数
scanf("%d", a[i]);
i=maxLen(a[], n); //调用函数,求最长平台 怎么错的 ([Error]cpp:15: error: expected primary-expression before ']' token)
printf("%d", i);
return 0;
}
int maxLen(int a[], int n)
{
int b[1000]={0}; //b[]数组做辅助
int j, pass, hold;
for(j=0; j<=n-1; j++){
if(a[j]==a[j+1]) //若相同,b[这个数]加一
b[a[j]]++;
}
for(pass=0; pass<=n-1; pass++){ //泡沫排序,把最大的数放在b[0]
for(j=0; j<=n-2; j++){
if(b[j]<b[j-1]){
hold=b[j];
b[j]=b[j+1];
b[j+1]=hold;
}
}
}
return b[0];
}