`
Iam42
  • 浏览: 275836 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

编程之美2.3-发帖水王扩展问题

阅读更多

有3个发帖最多的ID,他们发帖数目都超过了帖子总数目的1/4,从发帖ID列表中快速找出这3个ID

 

/**
 * 维护3个ID数据结构,里面name字段存放ID,count是一个计数器,
 * 遍历ID列表时,如果发现一个ID,与其中一个数据结构的name字段相等,这个数据结构的count++
 * 如果发现一个新的ID没有被这3个数据结构记录,那么,如果这3个数据结构中,有一个的count字段为0,则把这个新ID付给这个数据结构的name
 * 同时,他的count+1;反之如果没有发现count为0的数据结构,则把3个数据结构的count都减1。
 * @author Iam42
 */
public class Id {
	public Id(){
		count=0;
		name="";
	}
	
	public int count;
	public String name;
}

 

/**
 * 只需要遍历一次ID列表,没遍历到一个元素就对定义的3个数据结构进行相关的操作
 * 当列表遍历完毕后,三个数据结构里的name字段就是3个发帖水王
 * @author Iam42
 */
public class CatchID {


	public static void main(String[] args) {
		String[] idlist={"a","a","d","d","a","b","d","a","b","d","d","d","a","b","c","a","c","b","a","b"};
		
		Id id1 = new Id();
		Id id2 = new Id();
		Id id3 = new Id();
		
		for(int i=0 ; i<20 ; i++){
		    if(id1.name.equals(idlist[i])){
		    	id1.count++;
		    }else if(id2.name.equals(idlist[i])){
		    	id2.count++;
		    }else if(id3.name.equals(idlist[i])){
		    	id3.count++;
		    }else if(id1.count==0){
				id1.name=idlist[i];
				id1.count++;
			}else if(id2.count==0){
				id2.name=idlist[i];
				id2.count++;
			}else if(id3.count==0){
				id3.name=idlist[i];
				id3.count++;
			}else{
				id1.count--;
				id2.count--;
				id3.count--;
			}
		}

		System.out.println(id1.name);
		System.out.println(id2.name);
		System.out.println(id3.name);
	}
}

 

分享到:
评论

相关推荐

    寻找发帖水王

    寻找发帖水王 题目: Tango是微软亚洲研究院的一个试验项目。研究院的员工和实习生们都很喜欢在Tango上面交流灌水。传说,Tango有一大“水王”,他不但喜欢发贴,还会回复其他ID发的每个帖子。坊间风闻该“水王”...

    寻找发帖“水王”(微软)

    本文主要介绍了一个有趣而实用的计算机科学问题——如何从一系列发帖记录中找到所谓的“水王”。这里的“水王”指的是发帖数量最多的用户,其发帖数量超过了所有帖子总数的一半。文章首先介绍了问题背景,然后探讨了...

    水王之家6KBBS美化插件版 v1.0

    全新特点(详情可以见论坛演示) 全面美化的论坛界面,强大的个人信箱中心; 实用但不豪华的插件,新增的后台管理功能; 1、面版与展区的全面综合:采用功能分类,个性化面版和展区,头部导航分类。...

    leetcode中国-BeautyOfProgramming:本书的代码

    leetcode中国 Contents Chapter 1 游戏之乐 1.1 让CPU占用率曲线听你指挥 CPU占用率曲线为正弦曲线的效果图 ...寻找发帖的“水王” 妙用抵消法 有一个地方存疑:对于N-1个元素,需要多少次遍历才能

    面试算法整理

    题目来源于《剑指Offer》这本书中的第29题,同时参考了《编程之美》中关于寻找“发帖水王”的问题。这两个来源均提供了不同的解题思路和方法论。 **解法一:基于快排中分割算法的方法** 1. **基本思想**: - 通过...

    经典C程序算法,好东西

    在IT领域,编程和算法是核心技能之一,尤其是在C语言这样的基础编程语言中,掌握经典算法对于提升编程能力至关重要。本资源包包含了多个基于C语言的经典算法实例,涵盖了不同的问题领域,非常适合学习和实践。 首先...

    水王之家6KBBS美化插件版 v1.5

    《水王之家6KBBS美化插件版 v1.5》是一款专为6KBBS论坛设计的美化增强工具,旨在提升论坛用户界面的视觉效果和交互体验。此版本为v1.5,相较于之前的版本,它引入了更多的个性化元素和管理功能,致力于打造一个更加...

    机王争霸wap论坛 v1.0

    - **源代码**和**源码**:表明“机王争霸wap论坛 v1.0”不仅是一个成品应用,还提供了源代码,开发者可以研究其内部实现,学习编程技巧,甚至进行二次开发,定制适合自己需求的论坛系统。 - **论坛社区类**:强调这...

    6KBBS水王之家美化插件版 v1.5.rar

    增加美化: 1.美化了左侧 2.增加每**贴士 3.增加显示IP、浏览器等信息 4.修改签名栏在右侧显示 5.美化的发言的背景,虽然还是有点错误!... 6.... 7.... 8.... 9.... 10.... 11.... 12.... 13.... 14.... 15.... 16.... 17.... 18.... 19.... 20.... 21.... 22....

    机王争霸wap整站2.0

    这是我发布的第一个wap整站程序,以前从没学过asp,很多地方都不足,...有使用上的问题请联系webmaster@jxcqq.com,程序演示地址http://test.jxcqq.com 机王争霸(www.jxcqq.com) wap系统2.00版 发布于2005年11月21日

    标准模型下安全的基于身份的加密方案.pdf

    基于身份的加密(IBE)方案是一种加密方法,它允许使用用户的身份信息(如姓名、电子邮件地址等)作为公钥,从而避免了传统公钥基础设施(PKI)中复杂的证书管理问题。IBE方案的一个核心优点是简化了密钥管理,因为...

    水王之家6KBBS美化插件版 v1.61

    全面美化的论坛界面,强大的个人信箱中心;实用但不豪华的插件,新增的后台管理功能; 论坛管理默认用户名:admin 密码:admin

    机王争霸wap论坛1.0

    记得13900000000改成站长的号码 有使用上的问题请联系webmaster@jxcqq.com&lt;br&gt; &lt;br&gt; 机王争霸(www.jxcqq.com) wap论坛1.0版 发布于2005年10月29日 这论坛我已经测试过10天了,都可以正常运行,现在还不支持...

    MATLAB.zip

    这是一种决策分析工具,通过将复杂问题分解为多个层次和子问题,然后比较和综合这些子问题来帮助决策者做出选择。在MATLAB中,可以构建判断矩阵,计算一致性比率,以量化不同因素之间的相对重要性。这个压缩包中的...

    新课标2020高考语文二轮复习限时练十六文言文阅读范百禄传嵇含传含解析

    百禄以东流高仰,而河势顺下,不可回,即驰奏所以然之状,且取神宗诏令勿塞故道者并上之,乃止。” 解析:断句的关键在于理解句子的意思。"都水王孝先议回河故道"表明是王孝先提出的建议,后面"命百禄行视"是皇帝...

    Sublime Text 3绿色汉化破解版下载

    Sublime Text 3绿色汉化破解版下载 编程器完全汉化版。。

    Sublime Text 3汉化语言包

    Sublime Text 3提供了很多高效开发的功能,例如多选编辑(同时编辑多个位置)、Goto Anything(快速跳转文件和符号)、Find in Files(全局搜索)等,熟练掌握这些功能可以显著提升编程效率。 10. **保持更新**:...

    鱼c小甲鱼零基础学python全套课后题及答案

    这使得Python成为初学者入门编程的良好选择,同时其丰富的库支持也让它在科学计算、Web开发、自动化任务等领域有着广泛的应用。 【IDLE 是什么?】 IDLE 是 Python 的一个集成开发环境(IDE),它包含了一个Python...

    [智能社]9小时精讲直播AngularJS课程_附教程课件 【百度云盘】

    AngularJS是一门非常值得学习的编程语言,在这系列中,详细地讲述了AngularJS的使用方法!想要学习AngularJS的不妨点击看看吧!

Global site tag (gtag.js) - Google Analytics