比如: A = 1 3 4 5 7, B = 2 3 5 8 9, 那么交集就是 3 5.
1 挨个遍历,O(m*n)
2 遍历其中一个,在另一个二分搜索。O(mlgn)3 同时遍历两个数组,做比较。O(m+n)
public class CommonArray {
public static void find(int[] a, int[] b){
int i = 0;
int j = 0;
while(i<a.length && j<b.length){
if(a[i] == b[j]){
System.out.print(a[i] + " ");
i++;
j++;
}else if(a[i] > b[j]){
j++;
}else{
i++;
}
}
}
/**
* @param args
*/
public static void main(String[] args) {
int[] a = {1, 3, 4, 5, 7};
int[] b = {2, 3, 5, 8, 9};
CommonArray.find(a, b);
}
}