个人主页:兜里有颗棉花糖
欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创
🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程,希望对大家有所帮助
🍓希望我们一起努力、成长,共同进步。
原题链接:点击直接跳转到该题目
目录
1️⃣题目描述
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
请必须使用时间复杂度为 O(log n)
的算法。
示例1:
输入: nums = [1,3,5,6], target = 5
输出: 2
示例2:
输入: nums = [1,3,5,6], target = 2
输出: 1
实例3:
输入: nums = [1,3,5,6], target = 7
输出: 4
2️⃣代码编写
cpp
class Solution {
public:
int searchInsert(vector<int>& nums, int target) {
int l = 0,r = nums.size() - 1;
while(l < r)
{
int mid = l + (r - l) / 2;
if(nums[mid] < target) l = mid + 1;
else r = mid;
}
if(nums[l] < target) return l + 1;
return l;
}
};