查詢 JavaScript 中陣列中缺失元素


我們需要編寫一個 JavaScript 函式,這個函式接受一個長度為 n 的整數陣列。這個陣列包含從 0 到 n 的所有整數(包括 0 和 n),但只有一個整數缺失,這個整數可以是任意數字,並且陣列沒有排序。我們的函式任務是找出缺失的數字並在線性時間和常量空間內返回它。

由於陣列包含從 0 到 n 除了 n 之外所有數字,我們可以簡單地計算陣列的所有元素之和,時間為線性。

然後,我們可以在常量時間和空間內將其從前 n 個自然數的總和中減去,前 n 個自然數的總和可以透過這種方式計算。兩者之間的差值就是我們的缺失數字。

示例

以下是程式碼 -

const arr = [3, 7, 8, 10, 11, 0, 2, 6, 1, 4, 5];
const findMissing = (arr = []) => {
   const sum = arr.reduce((acc, val) => acc + val);
   const { length: num } = arr;
   const correctSum = (num * (num + 1)) / 2;
   return diff = correctSum - sum;
   return diff;
};
console.log(findMissing(arr));

輸出

以下是控制檯輸出 -

9

更新於: 20-Jan-2021

926 次瀏覽

助力你的 職業生涯

完成課程後獲得認證

開始學習
廣告