首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >搜索插入位置(C++)

搜索插入位置(C++)

作者头像
GeekLiHua
发布2025-01-21 11:14:32
发布2025-01-21 11:14:32
2470
举报
文章被收录于专栏:JavaJava
搜索插入位置

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。

请必须使用时间复杂度为 O(log n) 的算法。

示例 1:

代码语言:javascript
复制
输入: nums = [1,3,5,6], target = 5
输出: 2

示例 2:

代码语言:javascript
复制
输入: nums = [1,3,5,6], target = 2
输出: 1

示例 3:

代码语言:javascript
复制
输入: nums = [1,3,5,6], target = 7
输出: 4

提示:

  • 1 <= nums.length <= 104
  • -104 <= nums[i] <= 104
  • nums无重复元素升序 排列数组
  • -104 <= target <= 104

我的代码:

代码语言:javascript
复制
class Solution {
// 二分查找
public:
    int searchInsert(vector<int>& nums, int target) {
        int n = nums.size();
        if (n == 0) return 0;
        if (nums[n - 1] < target) return n; // 不存在会被插入这里
        int i = 0;
        int j = n - 1;
        // 二分查找模板
        while(i < j)
        {
            int mid = i + (j - i) / 2;
            if (nums[mid] < target) i = mid + 1;
            else j = mid;
        }
        return i;
    }
};

对应我的掘金文章:https://juejin.cn/post/7147338625976369189

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-10-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 搜索插入位置
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档