面试高频手撕题 | 10.返回一个数组中缺失的数字

alt

一、知识点

该问题主要考察了对数组的遍历、元素的比较以及数学上的等差数列等知识点。

二、思路分析

  1. 暴力破解法:通过遍历数组,依次比较每个元素与其索引是否相等,若不相等则说明该索引位置缺少元素。
  2. 利用等差数列特性:由于数组是有序的,可以利用等差数列的特性,计算出缺失元素的位置,然后进行插入或赋值。

三、JavaScript 解答

  1. 暴力破解法:
function findMissingNumbers(arr) {
  for(let i = 0; i < arr.length; i++) {
    if(arr[i] !== i + 1) {
      return i + 1;
    }
  }
  return null;
}

const arr = [2, 3, 4, 5, 6, 7, 8, 9, 10];
console.log(findMissingNumbers(arr)); 
  1. 利用等差数列特性:
function findMissingNumbers(arr) {
  let n = arr.length;
  for(let i = 0; i < n; i++) {
    if(arr[i] - 1 !== i) {
      return arr[i] - 1;
    }
  }
  return n + 1;
}

const arr = [2, 3, 4, 5, 6, 7, 8, 9, 10];
console.log(findMissingNumbers(arr)); 

四、Java 解答

  1. 暴力破解法:
public class FindMissingNumbers {
 p

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

2024前端面试高频手撕题 文章被收录于专栏

2024前端面试高频手撕题的作用包括但不限于提升面试竞争力、检验基础知识掌握程度、提高问题解决能力等。本专栏从知识点,思路分析,JavaScript解答,Java解答,总结等五个方面全方面解答。适用于:准备前端开发岗位面试的求职者、希望提升前端开发技能和知识的学习者、准备升职或跳槽的前端开发人员。掌握面试高频手撕题都是非常有益的,它能够帮助你建立起扎实的前端基础知识和问题解决能力。

全部评论
666
点赞 回复 分享
发布于 2024-01-16 00:02 广东
暴力破解法适用于所有情况,但时间复杂度较高;利用等差数列特性的方法则具有更高的效率,但仅适用于有序数组
点赞 回复 分享
发布于 2024-01-14 16:53 北京
通过遍历数组,依次比较每个元素与其索引是否相等,若不相等则说明该索引位置缺少元素
点赞 回复 分享
发布于 2024-01-14 16:37 广东

相关推荐

评论
3
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务