gpt4 book ai didi

java - 在一个数组中,是否至少有一个数字比另一个数组中的所有其他数字大?

转载 作者:行者123 更新时间:2023-11-30 02:08:20 28 4
gpt4 key购买 nike

编写一个名为 ex1 的迭代方法,该方法有两个形式参数,分别为两个整数数组 a 和 b。如果 a 和 b 至少包含一个元素,则仅当 b[i ... length-1] 的所有元素都小于 a[i]< 时,ex1 返回 true 值

public static boolean ex1(int a[], int b[]){
boolean p = a != null && b != null;
boolean s = false;
int i = 0;
int j = 0;
int cont = 0;
if (p){
while( i < a.length && s == false){
for(j = i; j < b.length; j++){
if(a[i] > b[j]){
cont++;
}
}
if(cont == (j - i) + 1){
s = true;
}
i++;
}
}
return s;
}

测试用

public class Febbraio0TestEx1 {
public static void main(String[] args) {
int[] a0 = null;
int[] a1 = {};
int[] a2 = {10, 2};
int[] a3 = {2, 3};
int[] b0 = null;
int[] b1 = {};
int[] b2 = {4, 0, -1, 1, 1};
int[] b3 = {4, 0, -1, 1, 3};

System.out.println(Febbraio0.ex1(a0, b0)==false);
System.out.println(Febbraio0.ex1(a0, b1)==false);
System.out.println(Febbraio0.ex1(a1, b0)==false);
System.out.println(Febbraio0.ex1(a1, b1)==false);
System.out.println(Febbraio0.ex1(a2, b0)==false);
System.out.println(Febbraio0.ex1(a2, b1)==false);
System.out.println(Febbraio0.ex1(a2, b3)==true) ;
System.out.println(Febbraio0.ex1(a3, b2)==true) ;
System.out.println(Febbraio0.ex1(a3, b3)==false);
}
}

从测试来看,它应该返回所有 true。但我的方法不起作用,我不明白为什么。

最佳答案

你的做法一点都不好。我建议你换个角度看这个问题。

ex1 returns true value, only if all the elements of b[i ... length-1] are all smaller than a[i]

这意味着数组 b 的最大元素必须小于数组 a 的最小元素。所以你可以把它写成一行,这样会好很多。

public static boolean ex1(int a[], int b[]){
return Collections.max(b) < Collections.min(a);}

关于java - 在一个数组中,是否至少有一个数字比另一个数组中的所有其他数字大?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50816022/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com