给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
你可以假设数组中无重复元素。
nums = [1, 3, 5, 7]
target =6
def searchInsert(nums, target):
if len(nums) == 0: return 0
if target < nums[0]: return 0
if target > nums[-1]: return len(nums)
left = 0
right = len(nums) - 1
while (left <= right):
mid = left + (right - left) // 2
if target > nums[mid]:
left = mid + 1
elif target < nums[mid]:
right = mid - 1
else:
return mid
return left
print(searchInsert(nums, target))
class Solution:
def searchInsert(self, nums: List[int], target: int) -> int:
if len(nums) == 0: return 0
if target < nums[0]: return 0
if target > nums[-1]: return len(nums)
left = 0
right = len(nums) - 1
while (left <= right):
mid = left + (right - left) // 2
if target > nums[mid]:
left = mid + 1
elif target < nums[mid]:
right = mid - 1
else:
return mid
return left