classSolution:"""
@param: A: an integer sorted array
@param: target: an integer to be inserted
@return: An integer
"""defsearchInsert(self, A, target):# write your code here# O(n) 1131msifnot A or target <= A[0]:
return0for i in range(len(A) - 1):
if A[i] < target <= A[i+1]:
return i + 1return len(A)
classSolution:"""
@param: A: an integer sorted array
@param: target: an integer to be inserted
@return: An integer
"""defsearchInsert(self, A, target):# write your code here# 二分查找 O(logn) 556msifnot A or target <= A[0]:
return0
n = len(A)
# 其余情况,反向遍历列表,找到第一个小于等于target的数for i in range(-1,-n,-1):
if A[i] > target: # 大于target,继续循环continueelif A[i] == target: # 等于,返回n+i;因为i是负数,反向循环return n+i
else:
return n+i+1# 小于target,在n+i位置之后插入元素,返回n+i+1