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

【leetcode100】搜索插入位置

1、题目描述

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

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

示例 1:

输入: nums = [1,3,5,6], target = 5
输出: 2

示例 2:

输入: nums = [1,3,5,6], target = 2
输出: 1

2、初始思路

2.1 思路

使用二分查找法,左闭右闭

2.2 代码

class Solution:
    def searchInsert(self, nums: List[int], target: int) -> int:
        n = len(nums)-1
        def search(l,r,target):
            mid = (l+r) // 2
            if l>r:
                return l
            if nums[mid] == target:
                return mid
            elif nums[mid] < target:
                return search(mid+1, r,target)
            else:
                return search(l,mid-1,target)
        return search(0,n,target)

或 

class Solution:
    def searchInsert(self, nums: List[int], target: int) -> int:
        l, r = 0, len(nums)-1
        while (l<=r):
            mid = (l + r) // 2
            if nums[mid] > target:
                r = mid -1
            elif nums[mid] < target:
                l = mid + 1
            else:
                return mid
        return l

相关文章:

  • 【OpenCV C++】如何快速 高效的计算出图像中大于值的像素个数? 遍历比较吗? No,效率太低!那么如何更高效?
  • Java中的消息中间件对比与解析:RocketMQ vs RabbitMQ
  • C++实现rabbitmq生产者消费者
  • 蓝桥杯2023年第十四届省赛真题-子矩阵
  • Windows 图形显示驱动开发-WDDM 3.0功能- 硬件翻转队列(五)
  • C语言每日一练——day_7
  • ASP3605抗辐照加固同步降压调节器——商业航天电源芯片解决方案新选择
  • 鸿蒙下载文件保存到手机本地公共文件夹下、将本地的沙箱目录文件,保存到公共目录,鸿蒙picker save保存文件为空(0字节)的问题
  • windows命令:创建和打开文件
  • React + Node.js实践 仿B站评论
  • JavaScript 编程:从基础到高级应用的全面探索
  • 嵌入式开发之STM32学习笔记day08
  • ffmpeg库视频硬编码使用流程
  • Redis哨兵模式-黑马学习笔记
  • STM32F429单片机FMC接口驱动TFT LCD和SDRAM
  • Flutter Dart 泛型详解
  • OpenCV图像拼接(4)图像拼接模块的一个匹配器类cv::detail::BestOf2NearestRangeMatcher
  • 【论文阅读】CARES:医学视觉语言模型可信度的综合基准
  • 2025-03-17 学习记录--C/C++-PTA 习题4-7 最大公约数和最小公倍数
  • 汇编移位指令
  • 人社部:对个人加大就业补贴支持,对企业加大扩岗支持
  • 中日友好医院通报“医师肖某被举报”:基本属实,开除党籍并解聘
  • 5月动漫|“爱死机”即将回归,《明末》或是下一个大IP?
  • 张家界乒乓球公开赛设干部职级门槛引关注,回应:仅限嘉宾组
  • 又一名90后干部被查,已有多人倒在乡镇领导岗位上
  • 4500万失能人员如何养老?没参保是否能享受长护师服务?