LeetCode LCR 068. 搜索插入位置

题目描述

LCR 068. 搜索插入位置

思路分析

解法一:二分查找(推荐)

核心思路

  • 维护有序区间 [left, right]
  • nums[mid] 小于目标,则插入位置在右侧,否则在左侧。
  • 循环结束时 left 即为插入位置。

复杂度分析

  • 时间复杂度:O(log n),其中 n 表示数组长度。
  • 空间复杂度:O(1),仅使用常数额外空间。
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) {
                left = mid + 1;
            } else if (nums[mid] > target) {
                right = mid - 1;
            } else {
                return mid;
            }
        }

        return left;
    }
}
func searchInsert(nums []int, target int) int {
    left, right := 0, len(nums)-1

    for left <= right {
        mid := left + (right-left)/2

        if nums[mid] < target {
            left = mid + 1
        } else if nums[mid] > target {
            right = mid - 1
        } else {
            return mid
        }
    }

    return left
}

相似题目

题目 难度 考察点
704. 二分查找 简单 二分查找
69. x 的平方根 简单 二分查找
35. 搜索插入位置 简单 二分查找
33. 搜索旋转排序数组 中等 二分查找
162. 寻找峰值 中等 二分查找
本文作者:
本文链接: https://hgnulb.github.io/blog/2026/15547755
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处!