地方门户网站模板,怎么样做购物网站,东莞公司注册地址变更流程,做公司网站主要需要什么科目1 问题
给定一个排序数组和一个目标值#xff0c;在数组中找到目标值#xff0c;并返回其索引。如果目标值不存在于数组中#xff0c;返回它将会被按顺序插入的位置。
请必须使用时间复杂度为 O(log n) 的算法。
示例 1:
输入: nums [1,3,5,6], target 5 输出: 2
示例…1 问题
给定一个排序数组和一个目标值在数组中找到目标值并返回其索引。如果目标值不存在于数组中返回它将会被按顺序插入的位置。
请必须使用时间复杂度为 O(log n) 的算法。
示例 1:
输入: nums [1,3,5,6], target 5 输出: 2
示例 2:
输入: nums [1,3,5,6], target 2 输出: 1
示例 3:
输入: nums [1,3,5,6], target 7 输出: 4
2 答案
自己写的采用蓝红二分法套模板简单方便
class Solution:def searchInsert(self, nums: List[int], target: int) - int:l -1r len(nums)while l1 r:mid l(r-l)//2if nums[mid] target: l midelse:r midif nums[l] target:return lelse:return r官方解将三种情况 nums[middle] targe, nums[middle] target, nums[middle] target也比较好理解
class Solution:def searchInsert(self, nums: List[int], target: int) - int:left, right 0, len(nums) - 1while left right:middle (left right) // 2if nums[middle] target:left middle 1elif nums[middle] target:right middle - 1else:return middlereturn right 1 # 没有相等的则插入并返回索引 right 1