JavaScript 中的絕對值和最小化


在給定的問題陳述中,我們必須藉助 Javascript 功能找到給定陣列中和最小化的絕對值。因此,我們將使用基本的數學方法來解決這個問題。

理解問題

手頭的問題是找到和最小化的絕對值。這是數學和計算機科學中需要解決的基本問題。該程式涉及從給定陣列中找到一個數字,該數字使該數字與陣列中其他項之間的絕對差之和最小。

給定問題的邏輯

為了解決上述問題,我們將使用一種簡單的方法來找到和最小化的絕對值。在這個問題中,我們首先建立一個函式來完成此任務,並在該函式中傳遞一個輸入陣列,我們需要為其找到絕對值。因此,在這個函式中,我們將對給定的陣列進行排序。然後,我們將檢查陣列的長度是偶數還是奇數。如果陣列的長度是奇數,則我們將返回中間元素作為結果。否則,我們將返回索引 (length/2) - 1 處的項。

演算法

步驟 1:因為我們必須找到給定陣列的和最小化的絕對值。所以第一步是定義一個函式來完成給定的任務。並將函式命名為 sumMinimization,在這個函式中,我們將接受一個輸入陣列作為引數。我們將為這個陣列找到絕對值。

步驟 2:定義函式後,我們將首先使用 sort 方法將給定輸入陣列的項按升序排序,並在 sort 方法中使用比較函式將項按升序排列。

步驟 3:因此,在按升序排列專案後,我們將檢查給定輸入陣列的長度。如果陣列的長度為奇數,則所需的值將是中間索引。要獲取中間索引,我們將使用 Math.floor 函式。

步驟 4:如果陣列的長度為偶數,我們將返回 (arr.length/2)-1 索引處的所需項。

步驟 5:最後,我們將提供一個示例用法,其中一個數組將傳遞給建立的函式,並將結果列印到控制檯。

示例

function sumMinimization(arr) {
   // Sort the array in ascending order
   arr.sort((a, b) => a - b);
 
   // Check if the array length is odd or even
   if (arr.length % 2 === 1) {
     // For odd-length array
     return arr[Math.floor(arr.length / 2)];
   } else {
     // For even-length array
     return arr[(arr.length / 2) - 1];
   }
  }
  const array = [1, 2, 3, 4, 5];
  const result = sumMinimization(array);
  console.log(result);  

輸出

3

複雜度

查詢和最小化的絕對值的函式的時間複雜度為 O(n log n),其中 n 是陣列的大小。因為我們對陣列進行了排序操作。並且該函式的空間複雜度是常數 O(1),因為我們只使用了陣列的值來獲得結果。

結論

在我們探索了在 Javascript 中查詢絕對值和最小化的問題之後。我們對陣列執行了一些基本操作,例如對偶數和奇數長度進行排序和條件檢查。還使用了一些數學公式來獲取所需的專案。

更新於:2023年8月11日

439 次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告