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