丢失的数字使用JavaScript解决问题

简介: 丢失的数字使用JavaScript解决问题

丢失的数字


给定一个包含 [0, n]n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。

示例 1:

输入: nums = [3,0,1]
输出: 2
解释: n = 3,因为有 3 个数字,所以所有的数字都在范围 [0,3] 内。2 是丢失的数字,因为它没有出现在 nums 中。

示例 2:

输入: nums = [0,1]
输出: 2
解释: n = 2,因为有 2 个数字,所以所有的数字都在范围 [0,2] 内。2 是丢失的数字,因为它没有出现在 nums 中。

示例 3:

输入: nums = [9,6,4,2,3,5,7,0,1]
输出: 8
解释: n = 9,因为有 9 个数字,所以所有的数字都在范围 [0,9] 内。8 是丢失的数字,因为它没有出现在 nums 中。

示例 4:

输入: nums = [0]
输出: 1
解释: n = 1,因为有 1 个数字,所以所有的数字都在范围 [0,1] 内。1 是丢失的数字,因为它没有出现在 nums 中。


解题思路


将数组排序之后,即可根据数组中每个下标处的元素是否和下标相等,如果不相等,就说明此下标就是缺失的数字

具体步骤如下:

  • 第一步:将数组进行排序
  • 第二步:遍历数组,判断当前值与索引是否相等
  • 第三步:如果相等说明是正确的,如果不相等,那就说明当前值缺失了
var missingNumber = function(nums) {
    nums.sort((a, b) => a - b);
    const n = nums.length;
    for (let i = 0; i < n; i++) {
        if (nums[i] !== i) {
            return i;
        }
    }
    return n
};


知识点


  • sort()方法对数组的项目进行排序。排序顺序可以是按字母或数字,也可以是升序(向上)或降序(向下)。

默认情况下,sort() 方法将按字母和升序将值作为字符串进行排序。


目录
相关文章
|
JavaScript
利用JS求1-100之间所有能被3整除的数字之和
利用JS求1-100之间所有能被3整除的数字之和
利用JS求1-100之间所有能被3整除的数字之和
|
存储 前端开发 算法
LeetCode只出现一次的数字使用JavaScript解题|前端学算法
LeetCode只出现一次的数字使用JavaScript解题|前端学算法
110 0
|
JavaScript
JS 实现给数字加三位一逗号间隔的两种方法
JS 实现给数字加三位一逗号间隔的两种方法
|
JSON JavaScript 数据格式
js将 一串数字1403149534转换为日期格式
js将 一串数字1403149534转换为日期格式
281 0
|
JavaScript 前端开发
JavaScript中数字常用方法
JavaScript中数字常用方法
|
JavaScript 前端开发 Shell
JavaScript题解剑指offer : 03. 数组中重复的数字
JavaScript题解剑指offer : 03. 数组中重复的数字
116 0
|
存储 JavaScript 前端开发
每日一学—JavaScript数字
JavaScript数字的学习
88 0
每日一学—JavaScript数字
|
JavaScript 前端开发
JavaScript 数字
JavaScript 数字
63 0
|
JavaScript 前端开发 算法
剑指 Offer 03. 数组中重复的数字:JavaScript 的两种哈希解法
剑指 Offer 03. 数组中重复的数字:JavaScript 的两种哈希解法
58 0
剑指 Offer 03. 数组中重复的数字:JavaScript 的两种哈希解法
|
JavaScript 前端开发
Javascript之为数字添加货币(千位分隔符)格式同时保留小数点后两位
Javascript之为数字添加货币(千位分隔符)格式同时保留小数点后两位
201 0
Javascript之为数字添加货币(千位分隔符)格式同时保留小数点后两位