首页 > 其他分享 >35. 搜索插入位置

35. 搜索插入位置

时间:2023-01-10 23:14:14浏览次数:23  
标签:target nums 位置 mid 35 插入 搜索 left

问题链接

https://leetcode.cn/problems/search-insert-position/description/

解题思路

搜索插入位置,是一个常见的二分算法。

二分是有固定模板的。这个题目是搜索插入位置,和最简单的二分不同。

不同之处在于,它在查找失败时不返回False,而是返回插入位置,这就要求我们能够优雅的查找到插入位置。

首先我们按照二分的一般思路写好代码。然后我们去想,如果此时left == right ,即这是最后一轮比较的话,如果target < mid,那代表target应该插入mid当前的位置上,此时指向mid的是left和mid。

如果target > mid , 此时target应该插入在mid后,此时指向mid+1的只有left。所以我们直接返回left即可。

代码

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

 

标签:target,nums,位置,mid,35,插入,搜索,left
From: https://www.cnblogs.com/bjfu-vth/p/17041636.html

相关文章

  • 公司的JDBC框架 的save方法和saveSet方法有先查找是否更新还是插入
    一.公司的JDBC框架的save方法和saveSet方法执行操作:1.按下ctrl键,然后鼠标点击对应的方法,进去源码就能看到底层源码是先将数据去数据库查看主键,根据主键查看数据库有没有该......
  • 二叉搜索树的最近公共祖先
    题目描述给定一个二叉搜索树,找到该树中两个指定节点的最近公共祖先。1.对于该题的最近的公共祖先定义:对于有根树T的两个节点p、q,最近公共祖先LCA(T,p,q)表示一个节点x......
  • 一条sql语句循环插入N条不同记录
    SETNOCOUNTONIF(OBJECT_ID('TB')ISNOTNULL)DROPTABLETBGOCREATETABLETB(IDINTIDENTITY(1,1),NAMEVARCHAR(40))GOINSERTINTOTB(NAME)......
  • Google黑语法搜索
    site:搜索指定域名site:edu.cninurl:xxx搜索url中包含的内容inurl:login.jspintext:xxx文本中包含的内容intext:中国filetype:pdf"入党申请"filetype:pdfintitl......
  • Mac 下 PyCharm 全局搜索(查找)快捷键
    Mac下PyCharm全局搜索(查找)快捷键如下。1快捷键快捷键command⌘ + shift + F如果是当前文件范围内的搜索,那快捷键如下:command⌘ + F......
  • P3521 题解
    非线段树合并做法。复杂度多一只log,但是好写。跳过不重要的部分,直达核心——如何在递归时计算两棵子树互相的贡献?题解区清一色线段树合并从值域角度考虑。但是显然倍......
  • PowerShell 读取 Goldengate 进程转为数组插入到sql server中
    在使用oracle Goldengate同步时,有时会忽略了ogg进程的启动。若安装Goldengatemonitor只监控着一两个同步又没必要,所以使用脚本来进行监控查看。为便于可视化,先将ogg......
  • Linux 搜索所有文件内容截取所需记录
    由于一些需求需要,遍历某目录先所有文件,找出某行的关键信息。如:搜索所有 jsp 文件的内容,找出"spring:message"所在行,并取引号内的字符串。(如下图,取粉色框中的字符串)第一步,......
  • SSIS_控制流(大容量插入任务)
    大容量插入任务为将大量的数据复制到SQLServer表或视图提供了有效的方法。例如,假定贵公司在大型主机系统上存储了数百万行的产品列表,但公司的电子商务系统却使用SQLSer......
  • P8935 [JRKSJ R7] 茎 解题报告
    Description你有一棵$n$个点的根节点为$1$的有根树,现在你要对这棵树进行剪枝,每次你可以选择一个还未被剪掉的节点$u$进行操作,然后剪掉$u$的子树所有点(包括$u$)。......