在JavaScript中寻找数字数组中的缺失元素

我们需要编写一个JavaScript函数,该函数接受一个长度为n的数字数组。该数组包含从0到n的所有整数(包括0和n),但是仅缺少一个整数,它可以是任何数字,并且不对数组进行排序。我们函数的任务是找到丢失的数字,并在线性时间和恒定空间中将其返回。

由于数组包含从0到n的所有数字,但只有一个,因此我们可以简单地计算线性时间中数组所有元素的总和。

然后我们可以从可以在恒定的时间和空间中计算的前n个自然数的总和中减去它。两者之间的差异将是我们缺少的数字。

示例

以下是代码-

const arr = [3, 7, 8, 10, 11, 0, 2, 6, 1, 4, 5];

const findMissing = (arr = []) => {

   const sum = arr.reduce((acc, val) => acc + val);

   const { length: num } = arr;

   const correctSum = (num * (num + 1)) / 2;

   return diff = correctSum - sum;

   return diff;

};

console.log(findMissing(arr));

输出结果

以下是控制台输出-

9

以上是 在JavaScript中寻找数字数组中的缺失元素 的全部内容, 来源链接: utcz.com/z/354913.html

回到顶部