编程算法题:将两个数组a、b中相同的元素提取出来,保存在数组c中,不考虑空间复杂度。

我写了算法,复杂度为O(n²),请问谁有更优异的算法?哥面试xx的时候写过一个时间复杂度比这个低的算法,他看不懂,就把我刷了,好在即使他不刷我,也不去xx,鄙视... 我写了算法,复杂度为O(n²),请问谁有更优异的算法?哥面试xx的时候写过一个时间复杂度比这个低的算法,他看不懂,就把我刷了,好在即使他不刷我,也不去xx,鄙视你,xx考官!哥今天让也你看看大家的智慧!xx考官的xx算法如下,欢迎大家各抒己见!
public class Main {
public void merge(int [] a,int [] b,int [] c){
int k=0;
outer: for(int i=0;i<a.length;i++){
inner: for(int j=0;j<b.length;j++){
if(a[i]==b[j]){
if(!isHave(a[i],c)){
c[k++]=a[i];break inner;
}
else{
break inner;
}
}
}
}
}
public boolean isHave(int a,int [] c){
for(int i=0;i<c.length;i++){
if(a==c[i]){
return true;
}
}
return false;
}
public static void main(String []args){
Main huawei=new Main();
int []a={1,3,5,5,7,8,5,4,3};
int []b={1,2,3,4,8,66,6,5,5,10};
int []c=new int[a.length>b.length?a.length:b.length];
huawei.merge(a,b,c);
for(int i=0;i<c.length;i++){
System.out.println(c[i]);
}
}
}
展开
 我来答
百度网友28b4182
2012-03-14 · TA获得超过7218个赞
知道大有可为答主
回答量:4847
采纳率:100%
帮助的人:1771万
展开全部
有nlogn的,先对两个数组进行排序,然后再拿其中的一个数字去另一个数字中二分查找.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
TableDI
2024-07-18 广告
`VLOOKUP` 函数是 Excel 中一个常用的函数,用于在表格或区域中查找值,并返回该值所在行中指定列的对应值。当需要匹配两个表格的相同数据时,可以利用 `VLOOKUP` 来实现。具体来说,首先确保两个表格中有一个共同的列(例如ID... 点击进入详情页
本回答由TableDI提供
zzhangdexin
2012-03-14 · 超过10用户采纳过TA的回答
知道答主
回答量:54
采纳率:0%
帮助的人:23.6万
展开全部
额……本人不会JAVA啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友9308069
2012-03-14 · TA获得超过1万个赞
知道大有可为答主
回答量:3947
采纳率:89%
帮助的人:1849万
展开全部
import java.util.Arrays;
import java.util.HashSet;
public class Test {
public static void main(String[] args) {
Integer a[]={1,3,5,5,7,8,5,4,3}, b[]={1,2,3,4,8,66,6,5,5,10};
HashSet<Integer> sa=new HashSet<Integer>(Arrays.asList(a));
sa.retainAll(Arrays.asList(b));
System.out.println(sa);
}
}
============
[1, 3, 4, 5, 8]
效率O(N)左右
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式