35.搜索插入位置

题目描述

题目描述

题解(二分查找)

思路

思路

代码

java 复制代码
class Solution {
    public int searchInsert(int[] nums, int target) {
        int left = 0;
        int right = nums.length - 1;
        
        // 当 left <= right 时,搜索区间是有效的
        while (left <= right) {
            // 计算中间索引,防溢出写法
            int mid = left + (right - left) / 2;
            
            if (nums[mid] == target) {
                // 找到了目标值,直接返回索引
                return mid;
            } else if (nums[mid] < target) {
                // 目标值偏大,在右半区间寻找
                left = mid + 1;
            } else {
                // 目标值偏小,在左半区间寻找
                right = mid - 1;
            }
        }
        
        // 如果没找到,left 的位置就是目标值应该插入的位置
        return left;
    }
}

复杂度分析

  • 时间复杂度:O(log⁡n)O(\log n)O(logn)。每次循环将搜索范围缩小一半,完全符合题目要求
  • 空间复杂度:O(1)O(1)O(1)。只使用了几个额外的变量 left、right 和 mid,不需要额外的存储空间
相关推荐
罗湖老棍子11 小时前
【例 1】Sightseeing Trip(信息学奥赛一本通- P1494)(洛谷-P10927)
数据结构·算法·图论·最短路·floyd·最小环
文丑颜不良啊11 小时前
LeetCode201~225题目解析
java·leetcode
SL_staff13 小时前
4G设备掉线三层归因指南:SIM卡、模组、JVS-IOT网关配置精准锁定
java·物联网·产品
stsdddd13 小时前
YOLO算法建筑工地安全帽目标检测数据集16881张:标注核对笔记
算法·yolo·目标检测
Wang's Blog13 小时前
Java 项目实战: 交友项目 - 黑名单:取消黑名单
java·windows·交友
CV爱数码14 小时前
论文精读|Learned Primal-Dual:把原始–对偶算法展开成网络
图像处理·算法·计算机视觉·ct·重建·断层扫描
杨杨杨大侠14 小时前
DeepSeek Harness:连 Agent Loop 都能替换的插件架构
java·人工智能·agent
SL_staff14 小时前
私有化低代码运维三重雷区:JVS开源栈中的Kafka/ES/RabbitMQ治理实践
java·低代码·全栈
yuniko-n14 小时前
【算法】约瑟夫环问题
java·算法
郝亚军14 小时前
manifest 中 `sha256` 与 `signValue` 的作用
java·开发语言·数据结构