一、数组元素为 1~100 内的整数,长度为 N,且数字不反复,怎样查找缺失的数字
问题:给定一数组如 [1, 2, 3, 5],怎样查找出缺失的数字 4.
解题思绪:数字有规律,1~100 内的一连数字,只缺失一个数字,只需乞降相减即可 (Sum1 – Sum2)。个中, Sum1 代表的是完全不缺数字的期待总和,即是 1+2+3+4+5=5*(5+1)/2=15,其演化表达式为 N(N+1)/2; Sum2 代表是的数组元素的总和,即是 1+2+3+5=11。所以缺失的数字为 4=15-11.
Javascript 完成:
function getMissingNum(arr){
var n = arr.length + 1; // N + 1, 最大项
var expectedSum = n * (n + 1) / 2; // Sum1
var sum = 0; // Sum2
arr.map(item=>sum+=item);
return expectedSum - sum;
}