題目
給你一個數(shù)組稿黍,如何最快速的找到數(shù)組中第二大的元素鼻吮,用Java和JavaScript代碼實現(xiàn)
Java代碼實現(xiàn):
public class SecondLargestElement {
public static int findSecondLargest(int[] arr) {
int largest = Integer.MIN_VALUE;
int secondLargest = Integer.MIN_VALUE;
for (int num : arr) {
if (num > largest) {
secondLargest = largest;
largest = num;
} else if (num > secondLargest && num != largest) {
secondLargest = num;
}
}
return secondLargest;
}
public static void main(String[] args) {
int[] arr = {5, 10, 3, 8, 15};
int secondLargest = findSecondLargest(arr);
System.out.println("Second largest element: " + secondLargest);
}
}
JavaScript代碼實現(xiàn):
function findSecondLargest(arr) {
let largest = Number.MIN_SAFE_INTEGER;
let secondLargest = Number.MIN_SAFE_INTEGER;
for (let num of arr) {
if (num > largest) {
secondLargest = largest;
largest = num;
} else if (num > secondLargest && num !== largest) {
secondLargest = num;
}
}
return secondLargest;
}
let arr = [5, 10, 3, 8, 15];
let secondLargest = findSecondLargest(arr);
console.log("Second largest element: " + secondLargest);
總結(jié)
無論是Java還是JavaScript,算法的核心思想都是通過遍歷數(shù)組,同時維護兩個變量來記錄最大值和第二大值。在遍歷過程中,如果遇到比當(dāng)前最大值大的元素斤贰,更新最大值和第二大值;如果遇到比第二大值大但不等于最大值的元素次询,更新第二大值荧恍。最后返回第二大值即可。