算法:有一串整数,这串数字数字不定,共N个,求出其中出现次数最多的数字

原创 2007年10月15日 23:00:00

 有一串整数,这串数字数字不定,共N个,求出其中出现次数最多的数字(原题是找出现次数大于N/2的那个数)

对于这个问题一般算法是什么?

一般算法

循环数组,对一个数字找相同数字,找到就总数加一,并把相同的数字标记为-1,以后在循环时不再计算

重复循环计算直到找结果,其中有些小技巧可以提前结束,就是如果一个数的出现次数超过N/2,那么它肯定是结果。

一个老鸟的算法

他充分分析了数字相同的规律,相同的数字他们的二进制值、十进制值、十六进制值各都相等

这样在循环一次数据时,根据其十六进制的最低位将数据放到一个16为的数组中,这样一次循环后,数组总就记录了各种数据出现次数,如一个数的十六进制的第一位是0,那么就将数组的地【0】位加一,最后就只对数组中数字最大的数据进行比较,直到结束

hdu(杭电oj)第一页题目题解

第一页有几题没写,有机会补上(嗯,忘了就是另一回事了)。
  • a601025382s
  • a601025382s
  • 2014年08月16日 13:13
  • 13563

算法-蓝桥杯习题(3-5)

蓝桥杯习题 蓝桥杯练习系统习题加答案,总共分为6部分,90%习题使用C语言解答,部分使用C++或者Java。大部分习题为搜索参考或者别人提供所得,不足之处在所难免,恳请批评指正(预计200多题,...
  • RodeStillFaraway
  • RodeStillFaraway
  • 2016年01月22日 20:37
  • 4703

寻找大小为n的数组中出现次数超过n/2的那个数

问题描述: 在一个大小为n的数组中,其中有一个数出现的次数超过n/2,求出这个数。这题看似很简单,但是找到最优解不容易,一般情况我们首先想到最笨的方法,每选一个数,遍历一次数组,复杂度O(N^2),或...
  • a7980718
  • a7980718
  • 2016年03月14日 15:21
  • 1728

找出一堆数里面出现次数最多或最多的前N个数字

描叙:一大推数据里面,数字与数字之间用空格隔开,找出出现次数最多的前N个。 #当数字之间的空格只有一个的时候 #sed 's/ /\n/g' data.txt | sort | uniq -c | s...
  • tianmo2010
  • tianmo2010
  • 2012年04月26日 15:44
  • 2997

找出数组中出现次数最多的数字

package cc; //找出数组{ 3, 4, 1, 5, 3, 1, 4, 5, 4, 3 }中出现次数最多的数字 //1 建立一个新数组,长度与原数组一致,然后将每个数字出现的次数存入此数...
  • lfdfhl
  • lfdfhl
  • 2012年11月17日 23:51
  • 1261

一个简单的实现找出数组中一个数字出现次数最多的数字的算法

程序员=编程语言基础+数据结构+算法 这几天继续回归java基础,以及学习数据结构的知识,这里实现一个简单的算法----找出数组中一个数字出现次数最多的数字的算法 public cla...
  • xiaoluo501395377
  • xiaoluo501395377
  • 2012年11月20日 21:00
  • 542

一个简单的算法---实现找出数组中一个数字出现次数最多的数字

转自:http://www.cnblogs.com/xiaoluo501395377/archive/2012/11/20/2779752.html public class HashMapTest...
  • CloudCoding
  • CloudCoding
  • 2015年09月15日 10:09
  • 325

UVA 11235 Frequent values 非递减序列 l r范围内 出现最多的数字次数 RMQ

Frequent values Time Limit: 3000MS   Memory Limit: Unknown   64bit IO Format: %lld & %l...
  • hnust_xiehonghao
  • hnust_xiehonghao
  • 2013年06月26日 17:49
  • 1730

C语言寻找出现次数最多的数字

/*不使用列表,而是直接用整型数组进行操作,速度最快,不进行删除,而是将当前位置的数据设置为尾部的数据,等同于数据交换,将不再用的数据移动到尾部就行了,数组的速度比列表要快太多了,*/int _tma...
  • haojknm
  • haojknm
  • 2011年12月07日 10:02
  • 1364

找出重复次数最多的数字

问题 给定一个大小为n的数组,该数组包含数字的范围在 [0...k-1], k是一个正整数,k 例如, 假设k= 10给定的数组是arr[] = {1, 2, 2, 2, 0, 2, 0...
  • u014082714
  • u014082714
  • 2015年04月20日 10:15
  • 1178
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:算法:有一串整数,这串数字数字不定,共N个,求出其中出现次数最多的数字
举报原因:
原因补充:

(最多只允许输入30个字)