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

题目链接

题目:

分析:

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

    }
}
相关推荐
程序员老陆19 小时前
使用Qt+大华设备SDK预览大华摄像机视频
qt·算法·音视频·视频监控
罗超驿19 小时前
9.优先级队列与堆:从底层原理到实战应用的完整指南
数据结构·算法
AI科技星20 小时前
光速螺旋时空曲率挠率拓扑统一场论——四大力全域闭环求导、精算验证与第一性原理完备证明
线性代数·算法·决策树·机器学习·常温超导·ai科技星
牧以南歌〆20 小时前
数据结构<三>单循环链表
c语言·数据结构·算法·链表
liuzhijie-061420 小时前
Codeforces 2245 D2 / E / F 题解
算法
薛定e的猫咪20 小时前
在 vibe coding开发项目过程中使用过的命令和概念整理
人工智能·学习·算法·开源
Tisfy20 小时前
LeetCode 1979.找出数组的最大公约数:模拟(附手动gcd)
java·数学·算法·leetcode·题解·最大公约数
圣光SG21 小时前
Excel 函数大全
算法·excel
Java技术实战21 小时前
一文通解:数据结构之 栈
java·jvm·数据结构·
To_OC21 小时前
LC 79 单词搜索:都说这是回溯入门题,我却连错三回
javascript·算法·leetcode