JavaScript陣列中最大值和最小值之差


在這個問題中,我們必須建立一個演算法,利用JavaScript的功能來獲取陣列中最大值和最小值之差。因此,我們將使用for迴圈和將最大值和最小值初始化為Infinity來解決這個問題。

理解問題的邏輯

問題陳述要求編寫程式碼來獲取陣列中最大值和最小值之差。

因此,為了解決這項任務,我們將初始化兩個變數,這兩個變數將儲存最大值和最小值。然後,使用迴圈遍歷陣列的每個元素。然後,我們將檢查該元素是否大於當前最大值,並根據需要進行更新。然後檢查最小值並根據需要更新。獲得這兩個值後,我們將計算它們之間的差值,這就是所需的結果。

例如:如果我們有一個數組[1, 2, 3, 4, 5, 6],我們可以看到在這個陣列中,最大元素是6,最小元素是1,這兩個值之間的差是6 - 1 = 5。因此,最終輸出將是5。

演算法

以下是演算法的逐步過程

步驟1:初始化兩個變數,用於儲存陣列的最大值和最小值。並將值設定為-Infinity和Infinity。這些值表示比陣列中任何其他數字都小和大的保證值。

步驟2:使用for迴圈遍歷陣列的每個專案。對於陣列中的每個元素,我們將檢查該元素是否大於當前最大值。如果此條件為真,則更新最大值的新值。

步驟3:並檢查該元素是否小於當前最小值,然後更新為最小值的新值。

步驟4:透過從最大值中減去最小值來計算最大值和最小值之間的差值。並將此值儲存在另一個變數中,並將其命名為difference。

步驟5:最後,使用console.log語句將最大值、最小值和差值作為輸出顯示到控制檯中。

示例

//define array
const array = [1, 5, 10, 2, 4, 6, 9];
//define highest and lowest values
let highest = -Infinity;
let lowest = Infinity;

//iterate the array elements
for (let i = 0; i < array.length; i++) {
   if (array[i] > highest) {
      highest = array[i];
   }
   if (array[i] < lowest) {
      lowest = array[i];
   }
}
//difference between highest and lowest
const difference = highest - lowest;

console.log("Highest value:", highest);
console.log("Lowest value:", lowest);
console.log("Difference:", difference);

輸出

Highest value: 10
Lowest value: 1
Difference: 9

複雜度

使用給定過程獲取陣列中最大值和最小值之差的複雜度為O(n),其中n是給定陣列元素的長度。因為演算法一次遍歷陣列的元素並比較當前最大值和最小值。因此,迭代次數與陣列中的元素數量成正比,因此最終複雜度為線性。

結論

我們可以透過使用for迴圈迭代陣列元素來解決給定的問題。並找到陣列中的最大值和最小值,計算這兩個值之間的差值。並在控制檯中顯示所需的結果。

更新於:2023年8月14日

446 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始
廣告