Given an array containing n distinct numbers taken from 0, 1, 2, ..., n
, find the one that is missing from the array.
For example,
Given nums = [0, 1, 3]
return 2
.
Note:
Your algorithm should run in linear runtime complexity. Could you implement it using only constant extra space complexity?
目的就是判断缺失哪一个数字,,最简单的方法就是排好序,看看却哪一个。
class Solution {
public:
int missingNumber(vector<int>& nums) {
sort(nums.begin(),nums.end());
int n;
for( n=0;n<nums.size();n++)
{
if(n!=nums[n])
{
return n;
}
}
return n;
}
};
最简单的方法:
等差数列前n项和 - 数组之和 即为所求
class Solution {
public:
int missingNumber(vector<int>& nums) {
int n=nums.size();
int sum=0;
for(int i=0;i<n;i++)
{
sum+=nums[i];
}
return n*(n+1)/2-sum;
}
};