日期:2014-05-20  浏览次数:20746 次

输出两个数组的相同元素(用最优算法)
给定两个数组:
int m[];
int n[];

请直接贴代码,谢谢。

------解决方案--------------------
还记得list吗。还记得list的相关操作吗?

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Test {
public static void main(String[] args) {
List<Integer> list1 = Arrays.asList(1,2,5,7,8,3,12);
List<Integer> list2 = Arrays.asList(1,2,6,7,9,3,12);
List<Integer> list = new ArrayList<Integer>();
list.addAll(list1);
list.retainAll(list2);
System.out.println(list);
}
}
输出结果:
[1, 2, 7, 3, 12]

------解决方案--------------------
好吧。我也这种说服力不强。理论上是可以喜欢m+n;
加入上面是Integer数组.
Java code

public class SleepTest {
    public static void main(String[] args) throws InterruptedException {
        int[] result = new int[Integer.MAX_VALUE];
        Integer[] a = {1, 2, 3, 4, 5};
        Integer[] b = {3, 4, 5, 6, 7};
        for(int i=0;i<a.length;i++){
            result[a[i]]=1;
        }
        for(int i=0;i<b.length;i++){
            if(result[b[i]]==1){
            System.out.print(b[i]);    
            }
        }
    }
}