考虑到题目要求只能用额外的常数空间,所以思路是:先计算这n+1个数字的总和,之后遍历数组,遇到一个数,就从总和中扣除,最后的差值就是缺失的数字了
class Solution {
public:
int missingNumber(vector<int>& nums) {
int i,n=nums.size();
long sum;
if(n%2==0)
sum=n/2*(n+1);
else
sum=(n+1)/2*n;
for(i=0;i<n;i++)
sum=sum-nums[i];
return (int)sum;
}
};