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

题目链接

题目:

分析:

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

    }
}
相关推荐
言乐613 小时前
Python实现建造微服务商城后台
开发语言·python·算法·微服务·架构
凉云生烟14 小时前
机器学习 02- KNN算法
人工智能·算法·机器学习
wabs66614 小时前
关于动态规划【力扣583.两个字符串的删除操作的思考】
算法·leetcode·动态规划
可编程芯片开发14 小时前
空气流量和空气压力参数解耦系统simulink建模与仿真
算法
小小龙学IT14 小时前
C++ 并发编程深度解析:从内存模型到无锁数据结构
数据结构·c++
_Doubletful14 小时前
妙用位运算:解构汉明距离至100%(提供分析与多解)
c语言·算法·leetcode
凯瑟琳.奥古斯特14 小时前
力扣1013三等分解法与C++实现
开发语言·c++·算法·leetcode·职场和发展
Keven_1114 小时前
AcWing算法提高课思路速查:搜索
算法·搜索
沙蒿同学15 小时前
当古诗词遇上 AI:从 38 万句诗词中取一个好名字
python·算法·架构
变量未定义~15 小时前
单调栈、单调队列(模板)、子矩阵(模板)
数据结构·算法·蓝桥杯