題目:
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?
解題思路一:
將數(shù)組進(jìn)行排序拜效,然后循環(huán)判斷哪怔,看看缺少的是哪一位蛙埂,當(dāng)都沒有缺失的時(shí)候灌侣,說明是少了最后一位了赵。代碼:
/**
* @param {number[]} nums
* @return {number}
*/
var missingNumber = function(nums) {
nums.sort(compare);
var len = nums.length;
for(var i = 0; i < len; i++){
if(nums[i] != i){
return i;
}
}
return len;
};
function compare(value1, value2){
return value1 - value2;
}
解題思路二:
假設(shè)多一個(gè)長度的數(shù)組统锤,[0在岂, 1绍弟, 2锐锣, 腌闯。。雕憔。姿骏,len]的和與所求的數(shù)組的和進(jìn)行相減,差值即是缺失值斤彼。代碼:
/**
* @param {number[]} nums
* @return {number}
*/
var missingNumber = function(nums) {
var len = nums.length;
var sum = 0;
for(var i = 0; i < len; i++){
sum = sum + nums[i];
}
var sum1 = (len * (len+1))/2;
return sum1-sum;
};