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,不需要额外的存储空间
相关推荐
没落之王7 小时前
AI在文言文——论文脉复苏对AI的意义
大数据·人工智能·算法
涉密IT资质笔记7 小时前
涉密人员脱密期管理规范:期限分级模型、就业限制边界与违规认定标准
java·服务器·前端·网络·数据库
mmsx7 小时前
Android Dialog 插槽模式:用一套壳统一全应用的弹窗风格
android·java·dialog·开发语言
u0111026757 小时前
工具页案例图如何编写 alt让图片说明与处理场景对应
java·前端·javascript·图像处理·人工智能·算法·ai作画
阿狗童鞋7 小时前
数据结构与算法实战指南
数据结构·算法
码上有光7 小时前
Linux:进程间通信——匿名管道通信、命名管道通信
android·java·linux·linux通信·匿名通信·命名通信
落魄实习生7 小时前
Agent Scope Java 2.x 系列【11】AgentState 与状态存储
java·开发语言·ai
Navigator_Z8 小时前
LeetCode //C - 1275. Find Winner on a Tic Tac Toe Game
c语言·算法·leetcode
未来之窗软件服务8 小时前
递归时间复杂度演算T (n)=aT (n/b)+f (n)-东方仙盟
算法·仙盟创梦ide·东方仙盟
Ivanqhz8 小时前
干涉图着色
java·服务器·网络·数据库·人工智能·深度学习