Problem: 35. 搜索插入位置
思路 & 解题方法
二分查找,可以手写一下,也可以直接用bisect。
复杂度
时间复杂度:
添加时间复杂度, 示例: O ( l o g n ) O(logn) O(logn)
空间复杂度:
添加空间复杂度, 示例: O ( 1 ) O(1) O(1)
调用函数
class Solution:
def searchInsert(self, nums: List[int], target: int) -> int:
return bisect.bisect_left(nums, target)
手写
class Solution:
def searchInsert(self, nums: List[int], target: int) -> int:
left, right = 0, len(nums)
while left < right:
mid = (left + right) // 2
if nums[mid] >= target:
right = mid
elif nums[mid] < target:
left = mid + 1
return right