原题:
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?
Credits:
Special thanks to @jianchao.li.fighter for adding this problem and creating all test cases.
int missingNumber(int* nums, int numsSize) {
int cmp(const int*a,const int*b)
{
return *(int*)a-*(int*)b;
}
qsort(nums,numsSize,sizeof(int),cmp);
int n=0;
for(;n<numsSize;n++)
{
if(*(nums+n)!=n)
return n;
}
return n;
}
我的思路就是先排序,然后在进行遍历就好了,
最好的方法其实是遍历求和,做差就出来了