Medium
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?
2ms:
public int missingNumber(int[] nums) {
int[] tmp = new int[nums.length+1];
for(int i:nums){
tmp[i]++;
}
for(int j=0;j<tmp.length;j++){
if(tmp[j]==0)
return j;
}
return 1;
}
1ms:
public int missingNumber(int[] nums) {
int re = 0;
for(int i=0;i<nums.length;i++){
re = re^i^nums[i];
}
return re^nums.length;
}
对照[LeetCode]136. Single Number&137. Single Number II&260. Single Number III