力扣-35.搜索插入位置

题目描述

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。

请必须使用时间复杂度为 O(log n) 的算法。

java 复制代码
class Solution {
    public int searchInsert(int[] nums, int target) {
        int low = 0, high = nums.length - 1;
        while (low <= high){
            int mid = (low+high)/2;
            if(target > nums[mid]){
                low = mid+1;
            }else if(target<nums[mid]){
                high = mid-1;
            }else{
                return mid;
            }
        }
        return low;
    }
}

小结:第一个注意low=high要进循环,第二个注意找不到返回low,至于为什么我也想了很久,经过多次尝试,当循环结束时,low正好移动到了第一个大于等于target的位置。

相关推荐
小猫咪怎么会有坏心思呢3 分钟前
华为OD机试-猴子爬山-dp(JAVA 2025A卷)
java·算法·华为od
酷爱码5 分钟前
Python虚拟环境与Conda的使用方式详解
开发语言·python·算法
-qOVOp-20 分钟前
408第一季 - 数据结构 - 栈与队列
数据结构
Epiphany.55624 分钟前
堆排序code
数据结构·c++·算法
秋山落叶万岭花开ღ27 分钟前
树的基本概念与操作:构建数据结构的层级世界
数据结构·python·算法
追烽少年x1 小时前
数据结构---红黑树
数据结构
金融小师妹1 小时前
解码美元-黄金负相关:LSTM-Attention因果发现与黄金反弹推演
大数据·人工智能·算法
1nv1s1ble1 小时前
记录rust滥用lazy_static导致的一个bug
算法·rust·bug
青山是哪个青山1 小时前
动态规划DP
算法·动态规划
水水沝淼㵘2 小时前
嵌入式开发学习日志(数据库II && 网页制作)Day38
服务器·c语言·网络·数据结构·数据库·学习