加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 在小于O(n ^ 2)的数组中查找数字重复的次数

发布时间:2020-12-15 05:19:36 所属栏目:Java 来源:网络整理
导读:我写的示例代码.但这是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;ia.length;i++){ for(j=0;j5;j++) { if(a[i]==b[j][0]) { temp=true; b[j][1]++; break; } } if(temp==false) { b[k][0]=a[i]
我写的示例代码.但这是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");
    }
}

解决方法

这是伪代码的解决方案:

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

现在histogram [somenumber]包含数字在数组中的次数 – 在O(n)中,假设Map在O(1)中查找项目

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读