[英]Efficient way to check if every odd element is greater than every even element in array in java
[英]How to check if every element in an array is lower than another array in Java?
现在,我有以下想法:
int WORK[] = new int[]{5, 4, 3};
int release[] = new int[]{3, 2, 3};
boolean check = false;
for (int i = 0; i < WORK.length; i++)
{
if (WORK[i] >= release[i])
{
for (int j = 0; j < WORK.length; j++)
{
if (WORK[j] >= release[j])
{
for (int k = 0; k < WORK.length; k++)
{
if (WORK[k] >= release[k])
{
check = true;
System.out.print("All elements in work are bigger than release");
break;
}
}
break;
}
}
break;
}
}
if(!check)
{
System.out.print("Not every element in work is bigger than release");
}
现在,我想知道是否有更有效的方法来做到这一点? 但是我的主要问题是我需要使用n
元素来执行此操作。 使用“ n”个元素既没有效率,也没有用,因为我不知道会有多少个元素。
我想知道的是Java Arrays
有什么功能或可以帮助我的功能吗?
有什么帮助吗?
使用Java 8,您可以使用流的功能样式来完成此操作(这不是性能优化;只需要编写较少的代码即可)。
IntPredicate lowerThanRelease = i -> IntStream.of(release).allMatch(j -> i <= j);
boolean allLower = IntStream.of(work).allMatch(lowerThanRelease);
一种有效的方法是有两个具有4个变量的workmax,workmin,needmax,needmin。
一次遍历两个数组,然后找到该数组中的最大值和最小值。 然后,您要做的就是将一个数组的最小值与第二个数组的最大值进行比较。这样,您只需要两个循环(无嵌套)。 那么这是一个简单的比较问题。 例如,如果(workmin> needmax),则System.out.print(“ + work +”中的所有元素都大于需求“);
我认为,如果您了解上述方法,便可以提出代码。
希望我能正确回答您的问题。
if (array1.length == array2.length) {
for (int i = 0; i < array1.length; i++) {
for (int j =0; j < array2.length; j++) {
// compare array1[i] with array2[j];
}
}
} else {
System.out.println("Arrays have different lengths.");
}
这使您有机会比较一个数组的所有数字和第二个数组的所有数字。 因此,您的基本想法还不错。
希望能帮助到你。
这似乎很基础,但应该这样做。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.