python 二分查找
二分查找
整体思路:
先设定左侧下标 low 和右侧下标 height,再计算中间下标 mid
每次根据 nums[mid] 和 target 之间的大小进行判断,相等则直接返回下标,nums[mid] < target 则 low右移,nums[mid] > target 则 height左移
查找结束如果没有相等值则返回 low,该值为插入位置
时间复杂度:O(logn)
class Solution(object):
def searchInsert(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: int
"""
low = 0
height = len(nums) - 1
res = -1
while low <= height:
mid = (low + height)//2
if nums[mid] == target:
return mid
if nums[mid] > target:
height = mid - 1
else:
low = mid + 1
res = low
return res

浙公网安备 33010602011771号