首页 > 其他分享 >leetcode 35. 搜索插入位置 js 实现

leetcode 35. 搜索插入位置 js 实现

时间:2022-11-08 01:33:25浏览次数:93  
标签:target nums 初始值 示例 35 js let 数组 leetcode

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。

请必须使用时间复杂度为 O(log n) 的算法。

示例 1:

输入: nums = [1,3,5,6], target = 5
输出: 2
示例 2:

输入: nums = [1,3,5,6], target = 2
输出: 1
示例 3:

输入: nums = [1,3,5,6], target = 7
输出: 4

 

提示:

  • 1 <= nums.length <= 104
  • -104 <= nums[i] <= 104
  • nums 为 无重复元素 的 升序 排列数组
  • -104 <= target <= 104

https://leetcode.cn/problems/longest-palindromic-substring/?favorite=2cktkvj

/**
 * @param {number[]} nums
 * @param {number} target
 * @return {number}
 */
//  二分查找的条件:1.有序 2.有 index 
var searchInsert = function(nums, target) {
    let l = nums.length; // 获取 nums 的数组
    let left = 0; // 定义左指针初始值
    let right = l-1; // 定义右指针初始值
    let ans =  4; // 定义返回值初始值,避免 target 大于数组中的所有值,不会走到 while 循环中的 if 条件,如果这里不定义初始值 4,则需要在 else 里也重新赋值 ans = mid+1
    while(left<=right){
        let mid = left+(right-left>>1); // 定义二分中间值
        // 当目标元素小于等于中值,则返回当前中值的位置
        if(target<=nums[mid]){
            right = mid-1;
            ans = mid;
        }else{
            // 否则中值位置+1,这时候 ans=mid+1
            left = mid+1
        }
    }
    return ans
};

参考链接

标签:target,nums,初始值,示例,35,js,let,数组,leetcode
From: https://www.cnblogs.com/beileixinqing/p/16868025.html

相关文章

  • Long数据类型序列化Json后传递给前端,产生的精度丢失的问题解决
    问题产生的原因Long类型的数据,如果我们在后端将结果序列化为json,直接传给前端的话,在Long长度大于17位时会出现精度丢失的问题。java中的long能表示的范围比js中number大,......
  • [LeetCode] 1323. Maximum 69 Number
    Youaregivenapositiveinteger num consistingonlyofdigits 6 and 9.Return themaximumnumberyoucangetbychanging atmost onedigit(6 becomes......
  • leetcode 300. 最长递增子序列 js 动态规划实现
    给你一个整数数组nums,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7]是数组[0......
  • LeetCode刷题记录.Day8
    两个数组的交集链接349.两个数组的交集-力扣(LeetCode)classSolution{public:vector<int>intersection(vector<int>&nums1,vector<int>&nums2){......
  • vite配合element-plus并配置vite.config.js按需加载出现的问题
    一开始项目vite版本是1  然后创建vite.config.js出现模块““vite“”没有导出的成员“defineConfig”  后面就把vite升级到2  升级完之后跑项目出现这个问......
  • 离线安装和切换NodeJs版本
    第一步:下载好需要安装的node程序(不要用安装包,用压缩包,这是坑,安装包安装后面再说)nodejs下载地址下载好自己需要的版本   第二步:选择安装路径(建议安装之前卸载掉之前......
  • JS数据结构与算法-队列结构
    队列结构一.认识队列受限的线性结构:我们已经学习了一种受限的线性结构:栈结构.并且已经知道这种受限的数据结构对于解决某些特定问题,会有特别的效果.下面,我们再......
  • NodeJs版本管理工具
    有时候,不同的项目需要使用不同的node版本。我们可以使用nvm管理不同的node版本。下载安装nvm下载地址下载后解压直接下一步,下一步,安装完成即可注意:为避免出现bug,安装路......
  • 你对 Vue.js 的template 编译的理解?
    template是ES5新出的语法,template是不会被页面显示的,但是vue中会被翻译成dom结构; template编译的过程:parse解析生成ast抽象语法树--------- -......
  • 【Leetcode】 剑指offer:栈与队列 --Day01
    写在前面2023届秋招形势严峻,作为2024届本科生倍感压力。时间紧迫,需要加快脚步。计划之一是在未来的36天时间里通关Leetcode的剑指offer系列算法题。这一系列的学习周期为......