2016-08-12 90 views
-2

比較Java中的兩個數組如何檢查array1中的所有元素是否大於array2?如果array1中的所有元素大於array2 else no,我想返回yesJava中的元素比較

+0

向我們展示你的代碼,我們可以幫助;) – beeb

+0

爲(i = 0; I b [j] System.out.println(「Yes」); else System.out.println(「No」);}}我寫這樣但but..it沒有比較所有元素if第一個元素大於其他正在打印是的,我想比較array1中的所有元素,如果所有元素都只返回yes。 –

+2

用你的代碼更新問題 – sidgate

回答

0

使用的支票,而不是的System.out.println

使用例如布爾......假設是陣列1,b是陣列2.確保內部陣列1的所有元素比大數組2中的所有元素都對嗎?

boolean bolSmaller = false; 
for(i=0;i<n;i++){ 
    for(j=0;j<n;j++){ 
     if(a[i] <= b[j]){ 
      //if element in array 2 is bigger than element in array 1.. 
      bolSmaller=true; 
     } 
    } 
} 

現在你只需要檢查布爾,如果這是真的,那麼陣列2比1陣列

0

這種做法大要素成本只有O(N):

public int getMinimalElement(int[] array) { 
    int min = array[0]; 
    for (int i = 0; i < array.length; i++) 
     if (array[i] < min) 
      min = array[i]; 
    return min; 
} 

public int getMaxElement(int[] array) { 
    int max = array[0]; 
    for (int i = 0; i < array.length; i++) 
     if (array[i] > max) 
      max = array[i]; 
    return max; 
} 

public void compare(int[] array1, int[] array2) { 
    if (getMinimalElement(array1) > getMaxElement(array2)) 
     System.out.println("Yes"); 
    else 
     System.out.println("No"); 
} 
+0

您的邏輯將比較兩個數組中的最小元素。他們正在尋找的是每個索引處元素的比較。 – Grasshopper

+0

@Grasshopper,你是對的。修復 – shure

0

在這裏找到一個例子:

boolean greater = true; 
for(int i=0;i<a.length;i++){ 
    for(int j=0;j<b.length;j++){ 
     if (a[i]<=b[j]) 
     { 
      greater = false; 
     } 
    } 
} 
if (greater){ 
    System.out.println("Yes"); 
}else{ 
    System.out.println("No"); 
} 
0

這裏的邏輯:
1.查找最大array2中的元素
2.迭代array1並將每個元素與最大值進行比較。
3.如果array1中的所有元素都大於max,那麼就完成了。
下面的代碼:

int max = Integer.MIN_VALUE; 
    for(int i=0; i < arr2.length; i++){ 
     if(max < arr2[i]) 
      max = arr2[i]; 
    } 


    boolean allGreater = true; 
    for(int i=0; i < arr1.length; i++){ 
     if(max >= arr1[i]){ 
      allGreater = false; 
      break; 
     } 
    } 

    System.out.println("Is arr1 is greater than arr2? Ans:" + allGreater);