这个题目算是比较简单的。我用的暴力法,最简单的思路。
class Solution:def searchInsert(self, nums: List[int], target: int) -> int:index = 0for i, n in enumerate(nums):if target == n:index = ibreakif target < n:continueif target > n:if i+1 <len(nums):if target < nums[i+1]:index = i+1breakelse:index = i+1breakreturn index
然而更优秀的方案是二分法.
class Solution:def searchInsert(self, nums: List[int], target: int) -> int:t = targetsize = len(nums)if size == 0:return 0if t > nums[-1]:return sizeleft = 0right = sizewhile left < right:mid = left + (right - left) //2 if nums[mid] < t:left = mid +1else:right = midreturn left