力扣刷题Days23-35.搜索插入的位置(js)

1,题目

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。

2,代码

javascript 复制代码
/**
 * @param {number[]} nums
 * @param {number} target
 * @return {number}
 */
var searchInsert = function(nums, target) {
    let left = 0;
    let right = nums.length - 1;

    while (left <= right) {
        let mid = left + Math.floor((right - left) / 2);

        if (nums[mid] === target) {
            return mid;
        } else if (nums[mid] < target) {
            left = mid + 1;
        } else {
            right = mid - 1;
        }
    }

    // 如果循环结束了还没有找到目标值,那么 left 指针的位置就是目标值应该被插入的位置
    return left;
};

3,学习与总结

学习与积累

javascript 复制代码
 let mid = left + Math.floor((right - left) / 2);

勉励自己:贵在坚持

这题做的时候个人比较疲惫,二刷重点巩固。---重点是 理解left和right关系。

相关推荐
进击的荆棘5 小时前
优选算法——BFS
c++·算法·leetcode·宽度优先
南境十里·墨染春水13 小时前
C++ 工厂模式:从入门到进阶,彻底掌握对象创建的艺术
开发语言·c++·算法
yuanyxh13 小时前
Mac 软件推荐
前端·javascript·程序员
万少13 小时前
AtomCode开发微信小程序《谁去呀》 全流程
前端·javascript·后端
@insist12314 小时前
系统架构设计师-实时性评价、调度算法与内核架构选型
算法·架构·系统架构·软考·系统架构设计师·软件水平考试
学Linux的语莫16 小时前
Vue 3 入门教程
前端·javascript·vue.js
怕浪猫17 小时前
第一章、Chrome DevTools Protocol (CDP) 详解
前端·javascript·chrome
一只齐刘海的猫19 小时前
【Leetcode】找到字符串中所有字母异位词
算法·leetcode·职场和发展
Yeats_Liao19 小时前
Feed流系统设计(三):数据模型与存储设计,从表结构到Redis收件箱
java·javascript·redis