include<iostream>
using namespace std;
int get(int a[],int n)
{
int result=a[0]; //从数组1号元素开始检索
int count=1;
int i;
for(i=1;i<n;i++) //2号元素起看是否相等
{
if(a[i] == result)
{
count++; //相等计数器+1
}
else if(count == 1)
{
result=a[i]; //若不是多元则跳
count=1;
}
else count--; //遇到不同的计数器-1
}
count=0; //计数器置0,计算该数在数组中出现的次数
for(i=0;i<n;i++)
{
if(a[i]==result) count++;
}
if(count>(n/2))
return result;
else
return -1;
}
int main()
{
int i,n;
int a[105];
cin>>n;
for(i=0;i<n;i++)
cin>>a[i];
int x=get(a,n);
cout<<x;
return 0;
}
SWUST数据结构--寻找整数序列的主元素[数组]
最新推荐文章于 2022-04-17 15:59:41 发布