首页 > 编程语言 > 详细

找一个数组里面的众数

时间:2021-01-06 22:08:47      阅读:27      评论:0      收藏:0      [点我收藏+]

找一个数组里面的众数, 即出现次数多的那个数。

 

给出一个数组,找出重复最多的那个元素。

 

    @Test
    public void testNumerousNum() {
        int array[] = {0, 0, 0, 0, 1, 4, 2, 1, 4, 2, 2, 2, 4, 4, 4, 4};
        String numerousNum = findNumerousNum(array);

        System.out.println(numerousNum);
    }

    String findNumerousNum(int arr[]) {
        if (arr.length < 1) {
            return null;
        }
        // map的k表示数组元素num,v表示num重复次数
        Map<Integer, Integer> numMap = new HashMap<Integer, Integer>();
        for (int num : arr) {
            if (!numMap.containsKey(num)) {
                numMap.put(num, 1);
            } else {
                numMap.put(num, numMap.get(num) + 1);
            }
        }

        int maxK = 0;
        int maxV = 0;
        for (Map.Entry<Integer, Integer> entry : numMap.entrySet()) {
            if (entry.getValue() > maxV) {
                maxK = entry.getKey();
                maxV = entry.getValue();
            }
        }
        System.out.println(numMap.toString());
        return "众数: " + maxK + "\n重复次数: " + maxV;
    }

 

结果:

{0=4, 1=2, 2=4, 4=6}
众数: 4
重复次数: 6

 

找一个数组里面的众数

原文:https://www.cnblogs.com/bors/p/numerousNum.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!