2016-08-12 123 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);