2017-04-07 1 views
-2

newbie 여기에 자바 자체가 새롭다. 현재 약간의 프로젝트에서 일하고 있으며 현재 내가있는 곳에서 난처한 처지입니다. 기본적으로 내 코드에는 두 개의 배열이 있으며이 배열을 내 메서드로 전달합니다. 이 시점에서 내 방법은 내 배열을보고 비교하고,이 프로그램에 대한이 경우 10 인 가장 높은 공통 int를 찾고, 내 프로그램에서 10을 가져 와서 인쇄물로 다시 돌려 보내고 싶습니다. 또한이 프로그램은 일반적인 숫자가 없으면 -1을 출력 할 수 있다고 가정합니다. 지금까지 제 코드가 있습니다.공통 정수에 대한 배열 비교

public class arrayCompare 
{ 
    public static void main(String [] args) 
    { 
     int [] arrayA = {2, 4, 6 , 8, 10, 12}; 
     int [] arrayB = {3, 4, 7 , 10, 11,13}; 

     int result = largestInCommon(arrayA , arrayB); 



    } 

    public static int largestInCommon(int [] A, int[] B) 
    { 
     int counter = 0; 

     for(int x = 0; x < A.length; x++) 
     { 
     if(A[0]==B[x]) 
     { 
      for(int y = 0; y < B.length; y++) 



     } 


     } 
    } 
} 

답변

1

두 배열의 모든 요소를 ​​반복합니다. 모든 요소가 다른 요소와 같고 마지막 상위 요소보다 높은 지 확인하십시오. 이 경우,이 새로운 높은 요소를 것

int[] arrayA = { 2, 4, 6, 8, 10, 12 }; 
    int[] arrayB = { 3, 4, 7, 10, 11, 13 }; 
    int higher = -1; 
    for (int a = 0; a < arrayA.length; a++) { 
     for (int b = 0; b < arrayB.length; b++) { 
      if (arrayA[a] == arrayB[b] && arrayA[a] > higher) { 
       higher = arrayA[a]; 
      } 
     } 
    } 
    System.out.println(higher); 

출력 :

10 

귀하의 오류가 두 번째 루프를 입력하기 전에 요소를 비교하는 것입니다. arrayA[]의 첫 번째 요소는 arrayB[]도 존재하고 당신이 설정되어 있지 및

0

당신은 두 개의 배열을 반복하고 A[x] == B[y]largest>A[x], 당신은 아래의 코드를 참조 할 수 있는지 확인하는 데 필요한 새로운 높은 값을 반환 않을 경우에만 확인 :

public static int largestInCommon(int [] A, int[] B) { 
      int largest = 0; 
      for(int x = 0; x < A.length; x++) { 
      for(int y = 0; y < B.length; y++) { 
       if(A[x] == B[y] && largest>A[x]) { 
        largest = A[x]; 
        break;//no need to iterate 2nd array,if common elment found 
       } 
      } 
      } 
      return largest; 
     } 
0

다음을 수행 할 수 있습니다. 요소가 S A의인지 0 인덱스로부터 순서

  • 감소하는 N-1 (b)의 검사 나 해시 세트 S
  • 정렬 배열

    1. 저장소 어레이를했다. 어떤 값이 발견되면 그 값을 반환하십시오. b. 값이없는 경우 -1을 반환합니다.

    O (sizeA) 공간과 O (sizeB) 시간으로 수행 할 수 있습니다. [이미 정렬 된 경우 O [sizeB * lg (sizeB)]

  • 0
    public static void main(String [] args) 
        { 
         int [] arrayA = {2, 4, 6 , 8, 10, 12}; 
         int [] arrayB = {3, 4, 7 , 10, 11,13}; 
         int result = largestInCommon(arrayA , arrayB); 
         System.out.println("Max "+result); 
        } 
        public static int largestInCommon(int [] A, int[] B) 
        { 
         int counter = -1; 
         for(int x = 0; x < A.length; x++) 
         { 
          for(int y = 0; y < B.length; y++){ 
          if(A[x]==B[y]) 
          { 
           if(counter < A[x]){ 
            counter=A[x]; 
           } 
          } 
         } 
         } 
         return counter; 
        }