← [ BACK_TO_NOTES ]

搜索插入位置

LeetCode 35:lower_bound 的直接应用。

#algorithm #snippet #evergreen #leetcode #binary-search #array

[!info] related notes 算法面试题型 MOC 二分查找

搜索插入位置

题目

35. 搜索插入位置 - 力扣(LeetCode)

思路

返回第一个 >= target 的下标,即 lower_bound(target)。若目标比所有元素大,返回 nums.length,表示末尾插入位置,不是有效元素下标。原题元素互异;该实现对非递减且有重复的数组也返回最左边界,对空数组返回 0。

搜索区间为 [l, r):l 左边都小于 target,r 及右边都大于等于 target,循环结束时 l = r。时间 O(log n),空间 O(1)。

代码(JavaScript)

function lowerBound(nums, target) {
  let l = 0, r = nums.length; // [l, r)
  while (l < r) {
    const mid = Math.floor((l + r) / 2);
    if (nums[mid] >= target) r = mid;
    else l = mid + 1;
  }
  return l;
}

var searchInsert = function(nums, target) {
  return lowerBound(nums, target);
};
创建于 2026/3/16 更新于 2026/10/7
Digital Biome
Access

键盘导航

j / k / ↑ / ↓
选择对象
Enter / o
打开选择
/ 或 Ctrl+K
全站搜索
i / f / 1–4
筛选当前列表
g → h / l / p / t / a
首页 / 笔记 / 项目 / 工具 / About
r → 1–9
打开所选对象的关联
u
返回上一页
Esc
关闭浮层 / 取消命令;输入框内清空文本