您的位置:首页 > 其它

找水王01

2016-05-20 20:41 246 查看
一、题目要求

如果你有一张当前论坛的帖子列表,其中他帖子的作者ID也在其中,快速找出这个传说中的水王

二、解题思路

在遍历数组的时候保存两个值:一个是数组中的一个数字,一个是次数。当我们遍历到下一个数字的时候,如果下一个数字和我们之前保存的数字相同,则次数加1。

如果下一个数字和我们之前保存的数字不同,则次数减1。如果次数为零,我们需要保存下一个数字,并把次数重新设为1。

三、程序源码:

#include<iostream>
using namespace std;

int Find(int *a,int N)   //a代表数组,N代表数组长度
{
int wk;
int ntimes,i;
for(i=ntimes=0;i<N;i++)
{
if(ntimes==0)
{
wk=a[i],ntimes=1;
}
else
{
if(wk==a[i])
ntimes++;
else
ntimes--;
}
}
return wk;
}

int main()
{
cout<<"水王的ID为:";
int a[5]={0,2,1,2,2};
int *n=a;
cout<<Find(a,5)<<endl;
return 0;
}


  

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: