搜索插入位置 ---- 二分查找

题目链接

题目:

分析:

  • 因为数排序数组, 所以具有**"二段性"**, 可以使用二分查找
  • 题目中, 我们如果找到目标值 , 则返回下标, 如果没找到目标值, 应该返回的是>target的第一个位置, 所以应该将数组分成< target 和 >= target
  • 当<target时, 应该移动left, left = mid + 1;
  • 当>=target 时, 应该移动right, 让right = mid
  • 此时看出对应的是二分查找算法的模版二, mid = left + (right - left) /2

代码:

java 复制代码
class Solution {
    public int searchInsert(int[] nums, int target) {
        int left = 0;
        int right = nums.length-1;
        while(left < right){
            int mid = left + (right - left) /2;
            if(nums[mid] >= target) right = mid;
            else left = mid + 1;
        }
        if(nums[left] < target) return left + 1;//处理细节, 如果应该插入到数组的最后
        return left;

    }
}
相关推荐
淡海水9 小时前
12-02-性能-数据结构性能调查案例1-5
数据结构·性能优化·c#
一起努力啊~9 小时前
算法题打卡力扣第1658题:将 x 减到 0 的最小操作数(mid)
学习·leetcode
OKkankan9 小时前
Python常用容器与导入语法详解(二)
数据结构·python
和裕9 小时前
平口开槽箱 vs 飞机盒 vs 扣底盒:自动化、展示效果与成本核心区别
大数据·运维·网络·人工智能·算法·自动化
AgentMaster9 小时前
从售前到售后全链路覆盖:智能客服在企业 5 大场景的落地实践与工具选型
大数据·人工智能·算法
Cccp.1239 小时前
【leetcode】(六) 图和贪心算法
数据结构·算法·leetcode
y1su9 小时前
【Leetcode】1477. 找两个和为目标值且不重叠的子数组
数据结构·后端·算法·leetcode·职场和发展
空空潍9 小时前
2026年软考中级软件设计师(二):数据结构
数据结构·软考·软件设计师·软设
不会就选b17 小时前
算法日常・每日刷题--<贪心>14
算法
mmmmath_320 小时前
LeetCode.541.反转字符串II
数据结构·算法·leetcode