35. 搜索插入位置
题目
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
你可以假设数组中无重复元素。
示例 1:
输入: [1,3,5,6], 5 输出: 2
解决方案
1、由于该题的标签就是二分查找,根据二分查找的定义,我的思路是首先将数组排序,然后再根据二分查找。
代码
方案一:
class Solution:
def searchInsert(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: int
"""
left =0
right = len(nums)-1
while left < right:
mid = int((left + right)/2)
if nums[mid] > target:
right = mid - 1
elif nums[mid] < target:
left = mid + 1
else:
return mid
if nums[left] < target:
return left + 1
else:
return left