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?
int missingNumber(int* nums, int numsSize) {
int i,j,k;
int tem;
for(i=0;i<numsSize-1;i++)
for(j=i+1;j<numsSize;j++)
{
if(nums[j]<nums[i])
{
tem=nums[i];
nums[i]=nums[j];
nums[j]=tem;
}
}
if(nums[0]!=0)
return 0;
int b=0;
for(i=1;i<numsSize;i++)
{
if(nums[i]==b+1)
{
b=nums[i];
continue;
}
else
break;
}
if(i==numsSize)
return nums[numsSize-1]+1;
return nums[i]-1;
}