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)中查找项目 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |