# 消失的元素
https://leetcode-cn.com/problems/missing-number-lcci/
数组nums
包含从0
到n
的所有整数,但其中缺了一个。请编写代码找出那个缺失的整数。你有办法在O(n)时间内完成吗?
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
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
2
3
4
5
6
7
8