题目描述:
Given an array containing n distinct numbers taken from 0, 1, 2, ..., n
, find the one that is missing from the array.
Example 1:
Input: [3,0,1]
Output: 2
Example 2:
Input: [9,6,4,2,3,5,7,0,1]
Output: 8
Note:
Your algorithm should run in linear runtime complexity. Could you implement it using only constant extra space complexity?
给定[0,n]范围内的n个不同的数,其中只有一个数缺失了,需要在O(1)的时间复杂度和空间复杂度内找到它。由于0~n的总和已知,可以计算这n个数的和,那么差值就是缺失的那个数。
class Solution {
public:
int missingNumber(vector<int>& nums) {
int n=nums.size();
int sum=n*(n+1)/2;
for(int i=0;i<n;i++) sum-=nums[i];
return sum;
}
};