这是针对数据结构的,我的教授希望我高效地编写它,所以如果他找到一个更高效的我做了大声笑那么......有没有办法在不使用两个循环的情况下获得它? (不要使用主题标签)
1循环将是最有效的
谢谢你们
答案 0 :(得分:2)
由于它证明是有用的,我会将其作为答案发布。也许有人也会使用它。
以下是答案:http://www.geeksforgeeks.org/union-and-intersection-of-two-sorted-arrays-2/
来自链接的例子:
// Java program to find intersection of
// two sorted arrays
class FindIntersection
{
/* Function prints Intersection of arr1[] and arr2[]
m is the number of elements in arr1[]
n is the number of elements in arr2[] */
static void printIntersection(int arr1[], int arr2[], int m, int n)
{
int i = 0, j = 0;
while (i < m && j < n)
{
if (arr1[i] < arr2[j])
i++;
else if (arr2[j] < arr1[i])
j++;
else
{
System.out.print(arr2[j++]+" ");
i++;
}
}
}
public static void main(String args[])
{
int arr1[] = {1, 2, 4, 5, 6};
int arr2[] = {2, 3, 5, 7};
int m = arr1.length;
int n = arr2.length;
printIntersection(arr1, arr2, m, n);
}
}