Java – find the number of repetitions of a number in an array less than o (n ^ 2)

I wrote the sample code But this is n ^ 2

int a[]={1,4,1,5,2,3,1};
int b[][]=new int[5][2];
int i,j,k=0,count=1;
boolean temp=false;
for(i=0;i<a.length;i++)
{
    for(j=0;j<5;j++)
    {
        if(a[i]==b[j][0])
        {   temp=true;
            b[j][1]++;
            break;
        }
    }

    if(temp==false)
    {
        b[k][0]=a[i];
        b[k][1]=1;
        k++;    
    }
    temp=false;
}
for(i=0;i<5;i++)
{
    for(j=0;j<1;j++)
    {
    System.out.println(b[i][j]+" is repeated "+b[i][j+1]+" times");
    }
}

Solution

This is the pseudo code solution:

Map<Int,Int> histogram;
for(number in array) {
    histogram[number]++;
}

Now histogram [somenumber] contains the number of times a number is in the array – in O (n), suppose map finds an item in O (1)

The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
分享
二维码
< <上一篇
下一篇>>