自己写的 效率比较低。
class Solution:
def searchInsert(self, nums: List[int], target: int) -> int:
if target in nums:
return nums.index(target)
else:
nums.append(target)
nums.sort()
return nums.index(target)
答案中的优秀解法:(利用数组有序的特性,依次对比 更新索引值)
class Solution:
def searchInsert(self, nums: List[int], target: int) -> int:
if nums == [] :
return 0
for i in range(len(nums)):
if nums[i] >= target:
return i
if nums[-1] < target:
return len(nums)
二分查找:
class Solution(object):
def searchInsert(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: int
"""
low = 0
high = len(nums)
while low < high:
mid = low + (high - low)/2
if nums[mid] > target:
high = mid
elif nums[mid] < target:
low = mid +1
else:
return mid
return low