文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>寻找发帖水王

寻找发帖水王

时间:2010-09-20  来源:wsnhyjj

题目来自《编程之美》 这里自己写了下寻找一个最多的ID和寻找2个最多的ID的情况,注意条件(一个最多的ID发帖量必须超过总帖的1/2,2个最多的ID发帖量各自都超过总帖数的1/3 才能用如下的方法解答)
扩展题目可以按照代码思路类推。 代码可以直接运行。 /*  * Description:  *           寻找发帖最多的1个(2个)ID。  * Author  :FinL  * Language: C  * Date    : 2010-09-20  */
#include<stdio.h>
int candidate; int candidate1; int candidate2;
/*其中有一个人的帖子超过了一半*/ int find(int *a,int n) { int i,ntimes; for(i=ntimes=0;i<n;i++) { if(0==ntimes) { candidate=a[i]; ntimes=1; } else { if(a[i]==candidate) ntimes++; else ntimes--; } } return candidate; }
/*其中有2个人的帖子各超过了1/3*/ void find2(int *a,int n) { int i,ntimes1=0,ntimes2=0; for(i=0;i<n;i++) { if(0==ntimes1) { candidate1=a[i]; ntimes1=1; } else { if(a[i]==candidate1) { ntimes1++; } else { if(0==ntimes2) { candidate2=a[i]; ntimes2=1; } else { if(a[i]==candidate2) { ntimes2++; } else { ntimes1--; ntimes2--; } } } } } }

int main() { int a[]={1,1,1,1,2,2,2,2,3,3}; int n; // int candidate;
n=sizeof(a)/sizeof(a[0]); // candidate=find(a,n); find2(a,n);
printf("candidate is %d,%d\n",candidate1,candidate2); return 0;
}
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载