日期:2014-05-20  浏览次数:20643 次

求助:有一个已知数列,求这个数列中最多有几个相同的数字的方法
已知一数列   我想计算这其中最多有几个相同的数字
求高手给与逻辑上的指导   万分感谢~~~

------解决方案--------------------
重新构造一个数列
定义一个统计变量,如count
取出原数列中的一个数
如果新数列中不存在
那么把它放入新数列
否则
count++
------解决方案--------------------
先排序

然后一个个数读下去
要是一样就把一个计数器加一
要是不一样就把计数器重新置为一
这个期间把最大计数器保存下来
------解决方案--------------------
int[] nums = {1,2,3,4,5,3,3,2,2,3,4,5,3,4,1,5,3,2,4};
Map <Integer, Integer> map = new TreeMap <Integer, Integer> ();
for(int num : nums) {
  int count = map.get(num) == null ? 0 : map.get(num);
  map.put(num, ++count);
}
for(Map.Entry <Integer, Integer> entry : map.entrySet()) {
  System.out.println(entry.getKey() + " ==> " + entry.getValue());
}