🧩Algo 二分查找
35. 搜索插入位置
难度:🟢 Easy | 标签:二分查找 | 状态:⬜ LeetCode 链接
思路
找第一个 >= target 的下标 = 答案。
左闭右开区间二分([l, r)),找下界模板。
代码
class Solution {
public:
int searchInsert(vector<int>& nums, int target) {
int l = 0, r = nums.size();
while (l < r) {
int m = l + (r - l) / 2;
if (nums[m] >= target) r = m;
else l = m + 1;
}
return l;
}
};
复杂度
- 时间 O(log n),空间 O(1)
易错 / 回顾
r = nums.size(),允许 l 走到末尾(插入到末尾)nums[m] >= target收右;<收左 + 1mid = l + (r - l) / 2防溢出
Related · 二分查找