请找出数组中重复次数最多且最大的数,java试题

rutine 发布于 2011/06/15 21:16
阅读 7K+
收藏 0
今天早上去笔试,有一道大概如下的算法题:给定一个数组如{9, 1, 6, 3, 3, 1, 2, 1, 8},请找出该数组中出现次数最多且最大的那个数及出现的次数。可惜,本人的算法知识不是很好,当时没能做出来,让我郁闷了整下午。
加载中
1
Andre.Z
Andre.Z
弄个Map,key为数字,value为次数。遍历values,查出最大的次数,再把次数不对的直接remove,剩下的就清静了。
Andre.Z
Andre.Z
@找寻: 拜托,value是次数诶,还不明白?
找寻
找寻
map 会直接覆盖相同的key值。你这样肯定不行
0
w
wormchen
觉得是2个数组遍历的问题,先从指定数组中取出一个数,和存放数组(map)中的数字和次数比较,然后继续遍历的问题,不知道有没有更简洁的算法。
0
faluo888
faluo888

让这个数组从大到小排序,排第0个的就是最大切最多的数了吧,出现次数只要循环下就有了。

这是求最大的数的个数。

最多且最大?我认为有问题。最大的次数不一定最多,最多的不一定最大吧。

不知道了。求楼下解答。

faluo888
faluo888
@jinceon:那我觉得我这么做是可以的……
jinceon
jinceon
题目没问题。最多且最大的意思就算,当次数一样时,选较大的。
0
liuex
liuex
觉得有点类似于插入法排序,时间复杂度O(n*lgn),但是空间复杂度O(n)
0
alone:
alone:
先让它遍历一次吧  统计每个数出现的次数。。。然后把次数大于1的拿出来 进行互相比较吧
0
飞翔e心
飞翔e心
先找最多的数字,如果最多的数字(也就是个数相同的数字)有多个,就找最大的那个
0
freish
freish
这个题目有问题啊:“重复次数最多且最大 ”,重复次数最多的未必是最大的,也就是说可能无解,是吗?!
freish
freish
@rutine: 我表示对那个“且”字无非做出这样的理解,“且”表示并列的关系,表示要同时满足
rutine
rutine
题目的意思是,找出出现次数最多的那个数,若有多个数的重复次数相同,则选最大的那个。
0
施宇迪
施宇迪
题目条件还不够哦。如果只是这样的话,做一次计数排序就可以了。
0
杨聚财
杨聚财
1.先遍历每个数字出现的次数,然后等到最多的次数N,然后找出所有次数为N 的数,然后对这些数的大小排序,找到最大的。我想到的思路就是这样,求高手解答。
0
Juzhang
Juzhang

测试一下kindediter <div></div>

echo 'hello world';
返回顶部
顶部