自己开始写的代码,不过因为要多判断一次第一个数字,所以感觉不是很整洁,不过也通过了。
class Solution(object):
def searchInsert(self, nums, target):
start=0
end=len(nums)
if target<=nums[0]:
return 0
else:
while start!=end-1:
mid = (start + end) / 2
if nums[mid] == target:
return mid
elif nums[mid]<target:
start=mid
else:
end=mid
return end
又查了下别人的思路,重新写了下,最后start会停留在target值稍大的位置处,end会停留在target值稍小的位置处
class Solution(object):
def searchInsert(self, nums, target):
start=0
end=len(nums)-1
while start<=end:
mid = (start + end) / 2
if nums[mid] == target:
return mid
elif nums[mid]<target:
start=mid+1
else:
end=mid-1
return start