在范围中查找缺失的数字 - Javascript挑战

时间:2015-06-13 10:23:55

标签: javascript arrays

有人可以帮助我开始应对这一挑战:

  

给定一个99,999个唯一数字的数组,范围从1到100,00,以随机顺序排列,找到列表中缺少的一个数字。

我不确定如何开始考虑它。

2 个答案:

答案 0 :(得分:7)

除了缺少的数字,你描述的是arithmetic progression,它有一个很好的公式来计算它的总和。所以你可以遍历数组,求它,然后从公式中减去它。不同之处是缺少的元素:

function missing(arr) {
    var sum = 0;
    for (var i = 0, len = arr.length; i < len; ++i) {
        sum += arr[i];
    }
    var expected = 100000 * (1 + 100000) / 2;
    var missing = expected - sum;
    return missing;
}

答案 1 :(得分:5)

如果你想这样做而不浪费任何存储数字的空间,

1+2+3+4+... sum

开头

然后从总和

中减去数组中的每个数字