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; }