力扣-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 分钟前
leetcode hot100 42 接雨水 hard 双指针
leetcode
net3m3311 分钟前
单片机屏幕多级菜单系统之当前屏幕号+屏幕菜单当前深度 机制
c语言·c++·算法
mmz120711 分钟前
二分查找(c++)
开发语言·c++·算法
Insight24 分钟前
拒绝手动 Copy!一文吃透 PyTorch/NumPy 中的广播机制 (Broadcasting)
算法
CoovallyAIHub1 小时前
工业视觉检测:多模态大模型的诱惑
深度学习·算法·计算机视觉
Jayden_Ruan1 小时前
C++分解质因数
数据结构·c++·算法
bubiyoushang8881 小时前
MATLAB实现雷达恒虚警检测
数据结构·算法·matlab
wu_asia1 小时前
编程技巧:如何高效输出特定倍数数列
c语言·数据结构·算法
AlenTech1 小时前
207. 课程表 - 力扣(LeetCode)
算法·leetcode·职场和发展
星火开发设计2 小时前
C++ queue 全面解析与实战指南
java·开发语言·数据结构·c++·学习·知识·队列