当前位置: 首页 > article >正文

力扣35. 搜索插入位置

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

请必须使用时间复杂度为 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

提示:

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

代码:

class Solution {
public:
    int search(vector<int>& nums, int left, int right, int target){
        
        if(left > right){
            return left;
        }

        int mid = (left+right)/2;

        if(nums[mid] == target){
            return mid;
        }
        if(nums[mid] > target){
            return search(nums, left, mid-1, target);
        }
        else{
            return search(nums, mid+1, right, target);
        }

        return 0;
    }

    int searchInsert(vector<int>& nums, int target) {
        return search(nums, 0, nums.size()-1, target);
    }
};

解题思路:

(1)使用二分查找方法。

(2)使用二分法找到目标值。

(3)若没有目标值,则最后 left 所在的位置即插入位置。


http://www.kler.cn/a/422233.html

相关文章:

  • Linux 权限管理:用户分类、权限解读与常见问题剖析
  • 嵌入式 C 编程:const 关键字 —— 打造稳定的常量空间
  • 互联网 Java 面试八股文汇总(2025 最新整理)
  • Meta-Llama-3-8B-Instruct 模型的混合精度训练显存需求:AdamW优化器(中英双语)
  • JS querySelector方法的优点
  • 安装MySQL 5.7 亲测有效
  • Web API基本认知
  • 系统--线程互斥
  • CTF-PWN: WEB_and_PWN [第一届“吾杯”网络安全技能大赛 Calculator] 赛后学习(不会)
  • 瑞芯微方案主板Linux修改系统串口波特率教程,触觉智能RK3562开发板演示
  • yarn install遇到问题处理
  • 【html网页页面007】html+css制作旅游主题内蒙古网页制作含注册表单(4页面附效果及源码)
  • Python入门(7)--高级函数特性详解
  • GPT vs Claude到底如何选?
  • 跑一下pyapp
  • 基于springboot在线租房和招聘平台源码和论文
  • GNU/Linux - make 60s介绍
  • vue引入并调用electron插件在网页报错Dynamic require of “electron“ is not supported
  • H3C OSPF实验
  • 大疆T100大载重吊运植保无人机技术详解
  • 怎么升级node版本
  • html+css网页设计 旅游 马林旅行社5个页面 兼容响应式
  • PyQt 中的无限循环后台任务
  • 统计Nginx的客户端IP,可以通过分析Nginx的访问日志文件来实现
  • Linux中的常用基本指令(下)
  • 【NLP高频面题 - LLM架构篇】大模型使用SwiGLU相对于ReLU有什么好处?