/**
* @param {number[]} nums
* @return {number}
*/
var missingNumber = function(nums) {
var len = nums.length;
var sum1 =
0;
var sum2 =
0;
for(
var i=
0;i<len;i++){
sum1 += i;
sum2 += nums[i];
}
if(sum1==sum2){
return len;
}
else{
return len - (sum2-sum1);
}
};
这道题要求的是,给出一串数字,要求返回这串数字中,缺少了哪个? 数字是从0开始的:比如给出数组为:0、1、3,那就返回2。但是顺序不定。比如给出3、0、1也需要我们返回2。 这道题的思路是:将给定数组内所有数字求和,然后和正确不缺的数字串做比较: 1、如果求和结果和正确数字串之和相等,那么就返回下一个数字:也就是说,如果给定了0123,那么就返回4。 2、如果不等,那就说明是缺少了一个中间数。比如给定的是:013456,而正常的排序数字应该是012345。那么我们可以将给定的数组看成是:016345。通过求和之后,和正常数组对比,多出来的那部分就可以判定是那个数字丢了。
转载请注明原文地址: https://ju.6miu.com/read-1301559.html