2番目に大きな数字を見つけるソリューションをどこからでも探しましたが、私はすべてのサイトで1つの解決策を得ました。最大の秒数
私が見つけたコード:
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);
}
コードが正常に動作しますが、私はへの入力シーケンスを変更した場合:
int arr[] = { 11, 10, 11, 2, 3, 4, 5, 6, 7, 8};
出力は次のようになります。
second largest in array is:11
I本当に何をすべきかわからない!
第一ソートアレイ - 、ループ – Randy
@Randy - 二番目に大きい数が過剰である見つけるために全体の配列をソート。 –
それは意味をなさない。 '11'は依然として第1の大きさであり、2回発生しただけです。 2番目に大きいのは間違いなく「10」です。 – adarshr