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?
这道题是要找到没有出现的那个数字。
有两种方法,一种用求出应有的和再减去出现的数。
var missingNumber = function(nums) {
var large = nums.length;
var sum = (0+large)*(large+1)/2;
for (var i = 0;i < nums.length; i++)
sum -= nums[i];
return sum;
};
一种利用自己和自己异或得0,把应该出现的数和真正出现的数全部异或起来。
var missingNumber = function(nums) {
var result = nums.length;
for (var i = 0;i < nums.length; i++) {
result ^= nums[i];
result ^= i;
}
return result;
};