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

题目链接

题目:

分析:

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

    }
}
相关推荐
奶人五毛拉人一块13 小时前
二分算法以及习题讲解
数据结构·算法·二分
Zachery Pole14 小时前
CCF-CSP备战NO.6【栈】
算法·深度优先
LJHclasstore_luo14 小时前
【C++题解】112354.平行时空
数据结构·c++·算法
手写码匠15 小时前
MCP协议从零实现:手写一个完整的 Model Context Protocol 服务器与客户端
开发语言·数据结构
小陈phd15 小时前
QAnything 阅读优化策略03——查询转换
算法
良木生香16 小时前
【C++初阶】STL—— Stack & Queue 从入门到精通:容器适配器、迭代器与经典面试题
java·开发语言·c++·算法·zookeeper
小小晓.16 小时前
C++小白记:vector
开发语言·c++·算法
雪的季节16 小时前
Python 垃圾回收触发完整机制
java·jvm·算法
tkevinjd16 小时前
力扣72-编辑距离
算法·leetcode·职场和发展
小刘学技术16 小时前
AI人工智能决策树分类器:原理、实现与应用
开发语言·人工智能·python·算法·决策树·机器学习·数据挖掘