python搜索插入位置

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。

请必须使用时间复杂度为 O(log n) 的算法。

nums = [1,3,5,6]
target = 5

#方法一目标库在列表里:
position=nums.index(target)
nums[position]=target
print(position)
print(nums)

#方法二目标库不在列表里:
nums.append(target)
nums.sort()
position=nums.index(target)
print(position)

#方法三
nums=sorted(nums)
for i in range(1,len(nums)):
    if nums[i]==target:
        print(i)
    elif i<target:
        print(i)
    elif i>target:
        print(len(nums)+1)
#方法四 二分法
nums_len=len(nums)
left=0
right=nums_len-1
while left<right:
    mid=(left+right)//2
    if nums[mid] < target:
        print(mid+1)
    elif nums[mid]> target:
        print(mid-1)
    else:
        print(mid)

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/search-insert-position
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

posted @ 2021-10-05 18:46  呆呆蒙蒙  阅读(167)  评论(0编辑  收藏  举报