各位大哥,怎样编写一个Java程序,统计输入数字的个数。当输入0时,表示结束输入。报告频数最大的数。

比如:编写一个程序,读取个数不定的整数,然后查找其中出现频率最高的数字,当输入0时,表示结束输入,例如,如果输入的数据是
2 3 40 3 5 4 -3 3 3 2 0 ,那么数字3的出现频率是最高的。请一次输入一个数字。如果出现频率最高的数字不止一个而是多个,则应该将它们全部输出。例如,在线性表9 30 3 9 3 2 4 0,3和9都出现了两次,所以,3和9都应该被报告。主要是解释一下怎样报告频数最高的数。

第1个回答  2014-05-21
我就知道最简单的算法。。。直接统计出每个数字出现的概率,然后对取出概率的最大值对应的数儿就行了,不过感觉算法有点儿太笨了,还是等等看有没有更好的吧追问

怎样统计出每个数字出现的概率,然后对取出概率的最大值对应的数呢??

追答

用两个序列就行了,第一个序列用来存输入的数儿,第二个序列的对应位置存储出现的次数,然后找到第二个序列最大值的位置,取出第一个序列这个位置的值。我以前好像看到过有比较简单的算法,没记住。。。

本回答被提问者采纳
第2个回答  2014-05-21
使用Map<Integer, Integer>处理追问

嗯嗯,那怎么报告出现频率最高的数字呢??

相似回答