我有两个不同大小的数组,比如a1[5]
和a2[7]
。我想比较两个数组并找到最大的整数。例如
输入
a1 = {52,53,48,72,20}
a2 = {28,12,73,21,33,44,88}
输出应该像 a2,88 ,其中88是最大数字,a2是最大数字所在的数组。
我在 Google 中进行搜索,但无法获得任何结果。只是想知道有没有可用的内置功能?或者给我一些逻辑来获得输出。
答案 0 :(得分:2)
这应该引导你朝着正确的方向前进:
public class Answer{
public double d;
public int array;
Answer(double d, boolean inFirstArray){
if inFirstArray{
this.d = d;
this.int = 1;
}
else{
this.d = d;
this.int = 2;
}
}
}
public Answer findLargestNumber(double[] a1, double[] a2){
boolean inFirstArray = true;
double biggestNumber = 0;
for (double d : a1){
if (d > biggestNumber)
biggestNumber = d;
}
for (double d : a2){
if (d > biggestNumber){
biggestNumber = d;
inFirstArray = false;
}
}
Answer answer = new Anwser(biggestNumber,inFirstArray);
return answer;
}
答案 1 :(得分:1)
只需迭代两个数组,找到更大的值及其包含的数组;
Integer answer = Integer.MIN_VALUE;
Integer arr = 1;
Integer[] a1 = {1,2,4};
Integer[] a2 = {1,4,6,8};
for (Integer val : a1) {
if (val > answer) {
answer = val;
arr = 1;
}
}
for (Integer val : a2) {
if (val > answer) {
answer = val;
arr = 2;
}
}
System.out.println("a" + arr + "," + answer);
答案 2 :(得分:1)
根据逻辑:我建议你创建一个method
,它取array
并返回数组中最大的数字。您可以像这样调用此函数两次:
int maxValueInFirstArray = maxValueInArray(int[] firstArray);
int maxValueInSecondArray = maxValueInArray(int[] secondArray);
然后,您可以检查if statement
中的两个值来计算最大值。这不仅会更短,而且更容易阅读。至于函数maxValueInArray()如何工作,我会留给你找到。我希望这会有所帮助:)
答案 3 :(得分:1)
这可能是一种从两个数组中找到最大整数的方法,以及最大数字所在的数组。
private static void findTheLargestInteger(int[] arr1, int[] arr2) {
Arrays.sort(arr1);
Arrays.sort(arr2);
if(arr1[arr1.length-1] > arr2[arr2.length-1])
System.out.println("a1, "+ arr1[arr1.length-1]);
else
System.out.println("a2, "+ arr2[arr2.length-1]);
}