如何从整数数组中查找所有不同值的最大组数

时间:2018-04-07 14:52:13

标签: arrays algorithm data-structures

例如,给定一个数组{2,4,2,4,3,2,3}, distinct数组是{2,3,4}。 因此,对于给定的阵列,可能有2个这样的组。另一个例子, 对于{1,2,1,3,4,4,3,3}, distinct数组是{1,2,3,4}和 从给定的数组中只能形成1个这样的组。

我的解决方案是:

    int arr[] = {2,3,4,2,4,3,2};
    Map<Integer, Integer> map  = new HashMap<>();
    for(int i = 0; i < arr.length; i++) {
        int count = map.getOrDefault(arr[i], 0)+1;
        map.put(arr[i], count);
    }
    int min = Integer.MAX_VALUE;
    for(int i : map.values()) {
        if(i < min) {
            min = i;
        }
    }
    System.out.println(min);

有没有办法进一步优化它?

0 个答案:

没有答案