搜索插入位置
2023-12-13 23:15:24
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
请必须使用时间复杂度为?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
提示:
1 <= nums.length <= 104
-104 <= nums[i] <= 104
nums
?为?无重复元素?的?升序?排列数组-104 <= target <= 104
class Solution:
def searchInsert(self, nums: List[int], target: int) -> int:
# 法一:暴力求解
for i in range(len(nums)):
if nums[i]==target:#如果目标值在数组
return i
elif nums[i-1] < target and target < nums[i] and i<len(nums):#如果目标值不在数组
return i
elif target>nums[-1]:
return len(nums)
elif target<nums[0]:
return 0
# 法二:二分查找
left,right=0,len(nums)-1
while left<=right:
mid=(left+right)//2
if target==nums[mid]:
return mid
elif target<nums[mid]:
right=mid-1
else:
left=mid+1
return left
文章来源:https://blog.csdn.net/hdnbnsnbns/article/details/134983300
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!