Ho cercato ovunque una soluzione per trovare il secondo numero più grande, ma ho trovato una soluzione in tutti i siti, ed è sbagliato.Il secondo numero più grande
Il codice che ho trovato:
public static void main(String[] args) {
int arr[] = { 1, 23, 47, 81, 92, 88, 52, 48, 56, 66, 65, 76, 71, 85,
49, 53, 56, 61, 65, 84 };
secondLargeNumber(arr);
}
public static void secondLargeNumber(int[] arr) {
int largest = arr[0];
int secondLargest = arr[0];
for (int i = 0; i < arr.length; i++) {
if (arr[i] > largest) {
secondLargest = largest;
largest = arr[i];
} else if (arr[i] > secondLargest) {
secondLargest = arr[i];
}
}
System.out.println("second largest in array is:" + secondLargest);
}
Il codice funziona bene, ma se ho cambiato la sequenza di ingresso:
int arr[] = { 11, 10, 11, 2, 3, 4, 5, 6, 7, 8};
l'uscita sarà:
second largest in array is:11
I davvero non so cosa fare!
Ordina l'array - allora ciclo – Randy
@Randy - Ordinamento l'intera matrice per trovare il secondo maggior numero è eccessivo. –
Questo non ha senso. '11' è ancora il primo più grande, solo che si è verificato due volte. Il secondo più grande è sicuramente '10'. – adarshr