面试高频手撕题 | 10.返回一个数组中缺失的数字
一、知识点
该问题主要考察了对数组的遍历、元素的比较以及数学上的等差数列等知识点。
二、思路分析
- 暴力破解法:通过遍历数组,依次比较每个元素与其索引是否相等,若不相等则说明该索引位置缺少元素。
- 利用等差数列特性:由于数组是有序的,可以利用等差数列的特性,计算出缺失元素的位置,然后进行插入或赋值。
三、JavaScript 解答
- 暴力破解法:
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));
- 利用等差数列特性:
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 解答
- 暴力破解法:
public class FindMissingNumbers {
p
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
2024前端面试高频手撕题 文章被收录于专栏
2024前端面试高频手撕题的作用包括但不限于提升面试竞争力、检验基础知识掌握程度、提高问题解决能力等。本专栏从知识点,思路分析,JavaScript解答,Java解答,总结等五个方面全方面解答。适用于:准备前端开发岗位面试的求职者、希望提升前端开发技能和知识的学习者、准备升职或跳槽的前端开发人员。掌握面试高频手撕题都是非常有益的,它能够帮助你建立起扎实的前端基础知识和问题解决能力。
