剑指Offer——II.0~n-1中缺失的数字(JS实现)

简介: 剑指Offer——II.0~n-1中缺失的数字(JS实现)

题目描述

image.png

解题思路

  • 本题采用的二分的思想
  • 本题关键是使用二分查找找出中位数的下标和元素值的关系

解题代码

var missingNumber = function(nums) {
    // !本题采用二分法的思想
    // 定义左指针
    let left = 0;
    // 定义右指针
    let right = nums.length - 1;
    if (nums[right] !== nums.length) return nums.length;
    if (nums[0] !== 0) return 0;
    // 进入循环
    while (left < right) {
        // 找出中位数的下标
        let mid = Math.floor((left + right) / 2);
        if (nums[mid] === mid) {
            // 如果中位数下标和元素值相同,说明缺失的值在中位数右边
            // 让左指针移动到中位数右边
            left = mid + 1
        } else if (nums[mid] > mid) {
            // 说明缺失的在中位数的左边
            right = mid;
        } 
    }
    return left;
};

总结(本题给我们的启示思路)

  • 启示一:学会使用二分查找
相关文章
|
12月前
|
存储 JSON JavaScript
「offer来了」保姆级巩固你的js知识体系(4.0w字)
该文章提供了JavaScript知识体系的全面复习资料,覆盖了从基础语法到高级特性如闭包、原型链、异步编程等多个方面,并通过大量的面试题和实例代码帮助巩固理解。
「offer来了」保姆级巩固你的js知识体系(4.0w字)
|
JavaScript 前端开发
剑指 Offer 31. 栈的压入、弹出序列 (javascript实现)
剑指 Offer 31. 栈的压入、弹出序列 (javascript实现)
|
JavaScript 前端开发
JavaScript题解剑指offer : 09. 用两个栈实现队列
JavaScript题解剑指offer : 09. 用两个栈实现队列
90 0
|
JavaScript 前端开发 程序员
《剑指 Offer(第 2 版)》树部分JavaScript题解
《剑指 Offer(第 2 版)》树部分JavaScript题解
《剑指 Offer(第 2 版)》树部分JavaScript题解
|
存储 JavaScript 前端开发
《剑指 Offer (第 2 版)》链表部分 JavaScript 题解
《剑指 Offer (第 2 版)》链表部分 JavaScript 题解
《剑指 Offer (第 2 版)》链表部分 JavaScript 题解
|
JavaScript 算法 前端开发
【前端算法】JS实现数字千分位格式化
JS实现数字千分位格式化的几种思路,以及它们之间的性能比较
443 1
|
存储 前端开发 算法
一行代码解决LeetCode实现 strStr()使用JavaScript解题|前端学算法
一行代码解决LeetCode实现 strStr()使用JavaScript解题|前端学算法
273 0
一行代码解决LeetCode实现 strStr()使用JavaScript解题|前端学算法
|
存储 JavaScript 前端开发
《剑指 Offer(第 2 版)》队列部分 JavaScript 题解
《剑指 Offer(第 2 版)》队列部分 JavaScript 题解
|
JavaScript 前端开发
利用JavaScript实现二级联动
利用JavaScript实现二级联动 要实现JavaScript二级联动效果,首先要确定需要哪些技术: 二维数组 for in循环 new Option(text,value,true,true) add(option,null) onchange() 表单事件 HTML代码: &lt;!-- &lt;input type=&quot;text&quot; id=&quot;text&quot;&gt; --&gt; 请选择省份: &lt;select name=&quot;&quot; id=&quot;provinces&quot;&gt; &lt;!-- &lt;option value=&quot;江苏省&quot;&gt;江苏省&lt;/option&gt;
|
JavaScript 前端开发
JavaScript函数柯里化的实现原理,进来教你完成一个自己的自动实现柯里化方法
JavaScript函数柯里化的实现原理,进来教你完成一个自己的自动实现柯里化方法
237 0