通过比较两个数组找到最大的整数

时间:2015-09-17 16:16:39

标签: java

我有两个不同大小的数组,比如a1[5]a2[7]。我想比较两个数组并找到最大的整数。例如

输入

a1 = {52,53,48,72,20}
a2 = {28,12,73,21,33,44,88}

输出应该像 a2,88 ,其中88是最大数字,a2是最大数字所在的数组。

我在 Google 中进行搜索,但无法获得任何结果。只是想知道有没有可用的内置功能?或者给我一些逻辑来获得输出。

4 个答案:

答案 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]);

}