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

题目链接

题目:

分析:

  • 因为数排序数组, 所以具有**"二段性"**, 可以使用二分查找
  • 题目中, 我们如果找到目标值 , 则返回下标, 如果没找到目标值, 应该返回的是>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;

    }
}
相关推荐
D_C_tyu6 分钟前
HTML | 结合Canvas开发具有智能寻路功能的贪吃蛇小游戏实战详解
javascript·算法·游戏·html·bfs
小王不爱笑13211 分钟前
HashMap 扩容全流程
java·数据结构·算法
历程里程碑11 分钟前
链表--LRU缓存
大数据·数据结构·elasticsearch·链表·搜索引擎·缓存
代码探秘者13 分钟前
【算法篇】4.前缀和
java·数据库·后端·python·算法·spring
计算机安禾13 分钟前
【数据结构与算法】第4篇:算法效率衡量:时间复杂度和空间复杂度
java·c语言·开发语言·数据结构·c++·算法·visual studio
Oueii19 分钟前
嵌入式LinuxC++开发
开发语言·c++·算法
sw12138919 分钟前
嵌入式C++驱动开发
开发语言·c++·算法
2501_9249526921 分钟前
C++中的适配器模式
开发语言·c++·算法
智驱力人工智能27 分钟前
馆藏文物预防性保护依赖的图像分析技术 文物损害检测 文物破损检测 文物损害识别误报率优化方案 文物安全巡查AI系统案例 智慧文保AI监测
人工智能·算法·安全·yolo·边缘计算
wuguan_27 分钟前
Halcon中值滤波,均值滤波,高斯滤波
算法·halcon