python leetcode 35. Search Insert Position

二分查找的变种,注意循环退出的条件:

  1. 找到此数,返回下标
  2. 此数可能位于两个数字之间,所以while left<right-1:
class Solution:
    def searchInsert(self, nums, target):
        """
        :type nums: List[int]
        :type target: int
        :rtype: int
        """
        n=len(nums)
        left,right=0,n
        if target<=nums[0]:return 0
        if target>nums[-1]:return n
        while left<right-1:
            mid=left+(right-left)//2
            if nums[mid]==target: return mid 
            elif nums[mid]>target: right=mid
            else: left=mid
        if nums[left]<target:
            return left+1
        else:
            return left

猜你喜欢

转载自blog.csdn.net/Neekity/article/details/84869301