比较Java中的两个数组如何检查array1中的所有元素是否大于array2?如果array1中的所有元素都大于array2 else yes
,我想返回no
。
答案 0 :(得分:0)
使用布尔值代替System.out.println
进行检查使用你的例子......假设a是数组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。
答案 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");
}
答案 2 :(得分: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");
}
答案 3 :(得分: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);