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?
這道題是要找到?jīng)]有出現(xiàn)的那個(gè)數(shù)字。
有兩種方法黔酥,一種用求出應(yīng)有的和再減去出現(xiàn)的數(shù)藻三。
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,把應(yīng)該出現(xiàn)的數(shù)和真正出現(xiàn)的數(shù)全部異或起來(lái)跪者。
var missingNumber = function(nums) {
var result = nums.length;
for (var i = 0;i < nums.length; i++) {
result ^= nums[i];
result ^= i;
}
return result;
};