2017-09-17 4 views
0

이것은 데이터 구조를위한 것입니다. 교수님은 제가 효율성으로 글쓰기를 원합니다. 그래서 그가 하나 더 효율적이라면 저는 롤을 마쳤습니다. 그것은 두 개의 루프를 사용하지 않고? 내가 대답으로 게시합니다, 그것은 유용한 것으로 밝혀졌다 때문에두 배열 (Java)의 교차점을 더 효율적으로 인쇄하십시오.

1 루프가 가장 효율적인

고마워

+1

"한 루프"없이 해시 세트 배열을 정렬하거나 가능한 숫자 – Slai

+0

을의 범위를 제한 한 경우에만 가능하다 이거 해봤 니? http://www.geeksforgeeks.org/union-and-intersection-of-two-sorted-arrays-2/ ** 시간 복잡성 : O (m + n) ** –

+0

안녕하세요 @Slai, 죄송합니다. , 그들은 정렬됩니다 :) – Arturo

답변

1

것 (해시 태그를 사용하지 마십시오). 어쩌면 누군가는 그것을 사용할 것입니다. 링크에서 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); 
    } 
}