2015-09-17 5 views
-3

У меня есть два массива разных размеров, скажем a1[5] и a2[7]. Я хочу сравнить два массива и найти наибольшее целое число. НапримерНайти наибольшее целое число, сравнив два массива

ввода

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

Выход должен быть как a2, 88 где 88 наибольшее число и а2 массив, где проживает наибольшее число.

Я искал в Google, но ничего не мог получить. Просто хочу знать, есть ли встроенная функция для этого? или дать мне некоторую логику для получения результата.

+3

Почему вы не можете просто пройти через два массива, имеющих две переменные, одну из которых хранит наибольшее найденное число, а затем и тот, который содержит переменную, из которой он пришел. – MZimmerman6

+1

Возможный дубликат http://stackoverflow.com/q/1484347/1768232 (да, я вне голосования) – durron597

+2

Найти самый большой int в каждом массиве и сравнить их ... – assylias

ответ

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

Просто перебирать как массивы, найти большее значение и массив оно содержится;

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); 
1

Насколько логика идет: Я хотел бы предложить вам создать method который принимает array и возвращает наибольшее число в массиве. Вы можете вызывать эту функцию в два раза, как это:

int maxValueInFirstArray = maxValueInArray(int[] firstArray); 
int maxValueInSecondArray = maxValueInArray(int[] secondArray); 

Затем вы можете проверить два значения в if statement вычислить наибольшее значение. Это будет не только короче, но и легко читаемо. Что касается , как работает функция maxValueInArray(), я оставлю это на вас, чтобы найти. Надеюсь, это поможет :)

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

} 
Смежные вопросы