当前位置: 代码迷 >> 综合 >> LeetCode: 35.搜索插入位置
  详细解决方案

LeetCode: 35.搜索插入位置

热度:76   发布时间:2023-10-20 18:52:17.0

这个题目算是比较简单的。我用的暴力法,最简单的思路。

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