這裏我寫了代碼來打印陣列中的最大和第二大的數字。但是當我在數組中有兩次最大的數字時,它的打印量最大和次數最多。可以有人告訴我我犯的錯誤。這是我的代碼。從java中的整數數組中獲得最大和第二大的數字?
int arr[] = {96, 1, 23, 47, 81, 92, 52, 48, 56, 66, 65, 96, 81, 6};
int largest = arr[0];
int secondLargest = arr[0];
// check the condition
for (int i = 0; i < arr.length; i++) {
// this condition check for largest number
if (arr[i] > largest) {
secondLargest = largest;
largest = arr[i];
} else if (arr[i] > secondLargest) {
secondLargest = arr[i];
}
}
// print the result
System.out.println("second largest number is:" + secondLargest);
System.out.println("largest number is:" + largest);
和輸出來爲:
second largest number is:96
largest number is:96
你爲什麼不對它進行排序,並首先返回的解決方案和第二個值? – Maroun 2015-01-21 12:21:06
那麼在迭代數組值之前,你最初的假設是maximum = secondLargest = arr [0]已經是假的了。 – user2336315 2015-01-21 12:21:42
@MarounMaroun爲什麼要爲這樣的任務排序數組? 'O(n)'vs'O(nlogn)'(我認爲這也是一個練習) – user2336315 2015-01-21 12:23:11