leetcode35. 搜索插入位置

题目描述:

 leetcode35. 搜索插入位置_第1张图片

 题解:

根据时间复杂度要求采用二分法

1.初始left=0 right=len(nums)-1

2.因为要确定target是否存在在nums,若存在则返回其下标,否则返回插入位置。nums为有序序列,若targetnums[right],则target插入位置为最后一个。

3.while left<=right: 判断target是否与nums[left] nums[right]相等,若相等返回对应下标,否则mid=(left+right)//2,判断target与nums[mid]大小,若target>nums[mid],left=mid+1,否则right=mid-1,若while结束,没有找到target,则判断target与最终位置数字的大小关系,若target更大,则返回mid+1

class Solution(object):
    def searchInsert(self, nums, target):
        left = 0
        right = len(nums)-1
        if targetnums[right]:
            return len(nums)
        while left<=right:
            mid = (left+right)//2
            if target==nums[left]:
                return left
            if target==nums[right]:
                return right
            if target==nums[mid]:
                return mid
            if targetnums[mid]:
                left=mid+1
        if nums[mid] 
  

 结果

leetcode35. 搜索插入位置_第2张图片

 

 

你可能感兴趣的:(leetcode二分法,leetcode,python,二分法)