如安在1到100的整数数组上找到缺失的数字

一、数组元素为 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;
}
    原文作者:luckystar12
    原文地址: https://segmentfault.com/a/1190000018157232
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞