算法:如何最快速的找到數(shù)組中第二大的元素

題目

給你一個數(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)前最大值大的元素,更新最大值和第二大值;如果遇到比第二大值大但不等于最大值的元素,更新第二大值。最后返回第二大值即可。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容