栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Leetcode刷题二分查找javascript写法

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Leetcode刷题二分查找javascript写法

【题目】

给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。

示例 :

输入: nums = [-1,0,3,5,9,12], target = 9

输出: 4

解释: 9 出现在 nums 中并且下标为 4

【解题思路】

  • 定义查找的范围 [left,right],初始查找范围是整个数组。
  • 每次取查找范围的中点 mid,比较 nums[mid] 和 target的大小,如果相等则 mid即为要寻找的下标。

  • 如果不相等则根据 nums[mid]和 target的大小关系将查找范围缩小一半

    【代码】

    var search = function(nums, target) {
        // 在区间[left,right]中查找元素,左闭右闭
        let left = 0;
        let right = nums.length - 1;
        while (left <= right) {
          // 计算中间点
          let mid = parseInt(left + (right-left)/2);
          if (target == nums[mid]) {
            return mid;
            // 如果target < nums[mid],表示目标值可能在左半边
          } else if (target < nums[mid]){
            right = mid - 1;
            // 如果target > nums[mid],表示目标值可能在右半边
          } else if (target > nums[mid]){
            left = mid + 1;
          }
        }
        // 未找到返回-1
        return -1;
    };

    常见的算法题解析,大部分都是使用java,python或者C语言编写的,对前端程序员非常不友好

    为了更好的学习算法与数据结构,我特意总结了一些基础算法的解题思路和具体代码,并且编写了一个文档,正在持续更新中...

    如果大家有兴趣,公众号后台回复 bbbb01 获取文档,我们可以一块探讨学习......

     

  • 转载请注明:文章转载自 www.mshxw.com
    本文地址:https://www.mshxw.com/it/700949.html
    我们一直用心在做
    关于我们 文章归档 网站地图 联系我们

    版权所有 (c)2021-2022 MSHXW.COM

    ICP备案号:晋ICP备2021003244-6号