首页 > 其他 > 详细

35. 搜索插入位置 今天就是二分法专场

时间:2020-05-14 14:38:54      阅读:38      评论:0      收藏:0      [点我收藏+]

技术分享图片

 

 

思路:

  1. 题目前半句 ’给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引‘  就是最普通的二分法

  2. 主要是后半句 ’如果目标值不存在于数组中,返回它将会被按顺序插入的位置‘,不存在目标值的时候,返回值存在两种情况

    返回值是4时,目标值可能是 3 或者 5

    1) 目标值是3的时候: 会替代4的 index,此时直接返回4的Index

    2)    目标值是5的时候: 会插入在4的后面,返回 index + 1

代码:

  

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

 

35. 搜索插入位置 今天就是二分法专场

原文:https://www.cnblogs.com/ChevisZhang/p/12888199.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!