博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
找水王
阅读量:6114 次
发布时间:2019-06-21

本文共 762 字,大约阅读时间需要 2 分钟。

1、题目要求:

  在一个论坛中,有一个用户,他的发帖量在总帖数中占了一半以上,并且在每一个帖子下都有他的回复,人们管他叫水王 

  用最简单、快速的方法找到这个水王

2、实现思路:

  在一个列表中,找到一个出现次数最高的发帖人,发帖数量占总帖数的一半以上!

  可以的方法很多,甚至可以统计每一个用户的发帖量,进行查找最大的那个(当然这只是第一想法,肯定不是最快也不是最简便的)

  在老师的提示下,想到了这么一个方法,两两消除不同的 id号,最终剩下的就是那个水王

 

     根据一个基本假设(假设n为总数,m 为水王发帖数,占到了一半以上)

       m/n  > 1/2       

       那么,当消除的都不是水王时,分母减小,分数值增大 m/(n-2) > 1/2依旧是成立的;

  当消除了的是一个水王和非水王时,(m-1)/(n-1)>1/2 成立,(m-1)/(n-1-1)>1/2依然成立。

  即水王帖数仍然在一半以上!所以这个方法是等效的,符合要求。消到最后,都剩下相同的了,就是水王。

3、思路整理(实现步骤):

     不需要真正对列表进行删除相消(前提:这个列表中必须有一个符合条件的水王)

     ①将第一个id 假设为king,king比其他id多出现频数num设为1

     ②将第二个id 与当前king比较,不同的话,将原来king的num值减 1,

          若num为0了,直接跳过这个id,将下一个id作为king;若num不为0,king依然为当前king

     ③若相同的话,原来的num加一,说明,又多出了一个king id

     循环②和③,直到最后一个数,king值就是水王的id

转载于:https://www.cnblogs.com/wmq123/p/10248453.html

你可能感兴趣的文章
图解SSH原理及两种登录方法
查看>>
[转载] 七龙珠第一部——第058话 魔境圣地
查看>>
【总结整理】JQuery基础学习---样式篇
查看>>
查询个人站点的文章、分类和标签查询
查看>>
基础知识:数字、字符串、列表 的类型及内置方法
查看>>
JSP的隐式对象
查看>>
P127、面试题20:顺时针打印矩阵
查看>>
JS图片跟着鼠标跑效果
查看>>
[SCOI2005][BZOJ 1084]最大子矩阵
查看>>
学习笔记之Data Visualization
查看>>
Leetcode 3. Longest Substring Without Repeating Characters
查看>>
【FJOI2015】金币换位问题
查看>>
数学之美系列二十 -- 自然语言处理的教父 马库斯
查看>>
Android实现自定义位置无标题Dialog
查看>>
面试总结
查看>>
Chrome浏览器播放HTML5音频没声音的解决方案
查看>>
easyui datagrid 行编辑功能
查看>>
类,对象与实例变量
查看>>
HDU 2818 (矢量并查集)
查看>>
【转】php字符串加密解密
查看>>