二分查找的变种,注意循环退出的条件:
- 找到此数,返回下标
- 此数可能位于两个数字之间,所以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

本文深入探讨了二分查找算法的一种变种实现,重点讲解了循环退出条件的设定及目标值位于数组两个元素之间的特殊情况处理。通过具体代码示例,帮助读者理解如何在Python中实现这一算法,适用于面试准备和技术提升。
494

被折叠的 条评论
为什么被折叠?



