如何在1到100的整數陣列上找到缺失的數字

luckystar12發表於2019-02-16

一、陣列元素為 1~100 內的整數,長度為 N,且數字不重複,如何查詢缺失的數字

題目:給定一陣列如 [1, 2, 3, 5],如何查詢出缺失的數字 4.
解題思路:數字有規律,1~100 內的連續數字,只缺失一個數字,只要求和相減即可 (Sum1 – Sum2)。其中, Sum1 代表的是完整不缺數字的期待總和,等於 1+2+3+4+5=5*(5+1)/2=15,其演變表示式為 N(N+1)/2; Sum2 代表是的陣列元素的總和,等於 1+2+3+5=11。所以缺失的數字為 4=15-11.

Javascript 實現

function getMissingNum(arr){
    var n = arr.length + 1; // N + 1, 最大項
    var expectedSum = n * (n + 1) / 2; // Sum1
    var sum = 0; // Sum2
    arr.map(item=>sum+=item);
    return expectedSum - sum;
}

相關文章