# 消失的元素

https://leetcode-cn.com/problems/missing-number-lcci/

数组nums包含从0n的所有整数,但其中缺了一个。请编写代码找出那个缺失的整数。你有办法在O(n)时间内完成吗?

image-20210906125141686

labuladong提供

var missingNumber = function(nums) {
 	// 长度
    let n = nums.length;
    let res = 0;
	// 新补的索引
    res += n - 0;
    // 遍历数组
    for(let i = 0; i < n; i++){
	   // 剩下的值(索引 - 数组)相加
        res += i - nums[i];
    }
    return res;
}
1
2
3
4
5
6
7
8
9
10
11
12
13

利用等差公式 n*(n+1)/2 求0-n的和,再减去病例nums后的和,就是缺少的值

var missingNumber = function(nums) {
    let n = nums.length;
    // 利用等差公式 n*(n+1)/2 求0-n的和
    let sum = n*(n+1)/2;
    // 再减去遍历nums后的和,就是缺少的值
    nums.forEach(el => sum -= el);
    return sum;
};
1
2
3
4
5
6
7
8

image-20210906152540719

最后更新时间: 6/20/2022, 10:48:50 PM