题目
数组nums包含从0到n的所有整数,但其中缺了一个。请编写代码找出那个缺失的整数。你有办法在O(n)时间内完成吗?
注意:本题相对书上原题稍作改动
示例 1:
输入:[3,0,1]
输出:2
解题思路
数学
- 求和公式 sum = n * (n + 1) / 2
- sum减去数组中所有的数字,剩下的就是缺少的数字
代码
class Solution {
public int missingNumber(int[] nums) {
int n = nums.length, sum = n * (n + 1) / 2;
for (int i : nums) sum -= i;
return sum;
}
}