Counting repeated elements in an integer array

前端 未结 13 1298
挽巷
挽巷 2020-11-27 08:02

I have an integer array crr_array and I want to count elements, which occur repeatedly. First, I read the size of the array and initialize it with numbers read

13条回答
  •  借酒劲吻你
    2020-11-27 08:15

    with O(n log(n))

    int[] arr1; // your given array
    int[] arr2 = new int[arr1.length];
    Arrays.sort(arr1);
    
    for (int i = 0; i < arr1.length; i++) {
        arr2[i]++;
        if (i+1 < arr1.length) 
        {
            if (arr1[i] == arr1[i + 1]) {
                arr2[i]++;
                i++;
            }
        }
    }
    
    for (int i = 0; i < arr1.length; i++) {
        if(arr2[i]>0)
        System.out.println(arr1[i] + ":" + arr2[i]);
    }
    

提交回复
热议问题