You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

26 lines
959 B

8 months ago
'''
给定一个排序数组和一个目标值在数组中找到目标值并返回其索引如果目标值不存在于数组中返回它将会被按顺序插入的位置你可以假设数组中无重复元素
示例 1输入[1,3,5,6], 5 输出2
示例 2输入[1,3,5,6], 2 输出1
示例 3输入[1,3,5,6], 7 输出4
示例 4输入[1,3,5,6], 0 输出0
'''
class Solution(object):
def searchInsert(self, nums, target): # 二分法
"""
:type nums: List[int]
:type target: int
:rtype: int
"""
lo = 0
hi = len(nums)
while lo < hi:
mid = lo + (hi - lo)/2 # 可以用右移1位代替mid=(left+right)>>1位移运算的效率更高
if nums[mid] > target:
hi = mid
elif nums[mid] < target:
lo = mid + 1
else:
return mid
return lo