1536 字
约 5 分钟
6
LeetCode刷题Java版035.搜索插入位置
无标签

LeetCode刷题Java版035.搜索插入位置

作者:沉默王二
发布时间:2022-09-01T09:25:56.877+0800


035.搜索插入位置

题意

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

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

难度

简单

示例

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

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

分析

我们学习过 插入排序 ,要求每次都要找到大于等于 target 的第一个位置,其实就和 034.在排序数组中查找元素的第一个位置和最后一个位置 的目的差不多。

还是用二分查找,查找小于等于target的,最接近target的,从而找出mid的位置,判断当前位置是否大于target,大于的话则调整上界right,让下次的mid更小,小于等于的话,则更新下界left,让下次的mid更大,并且同时记录答案为mid即可解决。

class Solution {

        while (lef < rig) {            int mid = lef + (rig - lef) / 2;            if (target > nums[mid])                lef = mid + 1;            else                rig = mid;        }        return lef;    }    public int searchInsert(int[] nums, int target) {        return lowerBound(nums,0,nums.length,target);    }}

总结

本题作为简单题,考察大家对于 二分查找 的基本使用,以及对插入排序的理解。

力扣地址:https://leetcode.cn/problems/search-insert-position/

一步一个脚印

不积跬步无以至千里,不积小流无以成江海。LeetCode - 100天从算法小白到卷王正式启动了,我们计划周一到周五至少每天更新一篇,周六周日更新一篇,目标 300 道 LeetCode 经典题。

PDF 版本目前只针对**二哥编程星球 的球友开放,如果你也想一起打卡学习算法的话,戳链接 **加入我们吧。

一个人可以走得很快,但一群人才能走得更远。二哥编程星球 (目前已有 740 多名球友加入)里面的每个球友都非常的友善,除了鼓励你,还会给你提出合理的建议,一起冲!

035.搜索插入位置

题意

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

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

难度

简单

示例

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

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

分析

我们学习过 插入排序 ,要求每次都要找到大于等于 target 的第一个位置,其实就和 034.在排序数组中查找元素的第一个位置和最后一个位置 的目的差不多。

还是用二分查找,查找小于等于target的,最接近target的,从而找出mid的位置,判断当前位置是否大于target,大于的话则调整上界right,让下次的mid更小,小于等于的话,则更新下界left,让下次的mid更大,并且同时记录答案为mid即可解决。

class Solution {

        while (lef < rig) {            int mid = lef + (rig - lef) / 2;            if (target > nums[mid])                lef = mid + 1;            else                rig = mid;        }        return lef;    }    public int searchInsert(int[] nums, int target) {        return lowerBound(nums,0,nums.length,target);    }}

总结

本题作为简单题,考察大家对于 二分查找 的基本使用,以及对插入排序的理解。

力扣地址:https://leetcode.cn/problems/search-insert-position/

一步一个脚印

不积跬步无以至千里,不积小流无以成江海。LeetCode - 100天从算法小白到卷王正式启动了,我们计划周一到周五至少每天更新一篇,周六周日更新一篇,目标 300 道 LeetCode 经典题。

PDF 版本目前只针对**二哥编程星球 的球友开放,如果你也想一起打卡学习算法的话,戳链接 **加入我们吧。

一个人可以走得很快,但一群人才能走得更远。二哥编程星球 (目前已有 740 多名球友加入)里面的每个球友都非常的友善,除了鼓励你,还会给你提出合理的建议,一起冲!

035.搜索插入位置

题意

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

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

难度

简单

示例

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

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

分析

我们学习过 插入排序 ,要求每次都要找到大于等于 target 的第一个位置,其实就和 034.在排序数组中查找元素的第一个位置和最后一个位置 的目的差不多。

还是用二分查找,查找小于等于target的,最接近target的,从而找出mid的位置,判断当前位置是否大于target,大于的话则调整上界right,让下次的mid更小,小于等于的话,则更新下界left,让下次的mid更大,并且同时记录答案为mid即可解决。

class Solution {

        while (lef < rig) {            int mid = lef + (rig - lef) / 2;            if (target > nums[mid])                lef = mid + 1;            else                rig = mid;        }        return lef;    }    public int searchInsert(int[] nums, int target) {        return lowerBound(nums,0,nums.length,target);    }}

总结

本题作为简单题,考察大家对于 二分查找 的基本使用,以及对插入排序的理解。

力扣地址:https://leetcode.cn/problems/search-insert-position/

一步一个脚印

不积跬步无以至千里,不积小流无以成江海。LeetCode - 100天从算法小白到卷王正式启动了,我们计划周一到周五至少每天更新一篇,周六周日更新一篇,目标 300 道 LeetCode 经典题。

PDF 版本目前只针对**二哥编程星球 的球友开放,如果你也想一起打卡学习算法的话,戳链接 **加入我们吧。

一个人可以走得很快,但一群人才能走得更远。二哥编程星球 (目前已有 740 多名球友加入)里面的每个球友都非常的友善,除了鼓励你,还会给你提出合理的建议,一起冲!

            知识星球
            
    
    
        
        扫码加入星球
        查看更多优质内容
    
    https://wx.zsxq.com/mweb/views/joingroup/join_group.html?group_id=15522885221412
LeetCode刷题Java版035.搜索插入位置
https://clxhxhhr.top/posts/2499/
作者
clxstart
发布于
2026-09-19
许可协议
CC BY-NC-SA 4.0
评论
0 条
还没有评论,先写一条吧。