python检索地址_35.leetcode题目讲解(Python): 搜索插入位置

题目如下:

image.png

这道题使用双指针折半查找比较容易解,指的注意的是,如果出现插入元素与输入数组里的元素相同,需要插入到相同元素的位置,比如: [8,5,3],5 应该返回1,而不是2。

参考代码如下:

class Solution:

def searchInsert(self, nums, target):

"""

:type nums: List[int]

:type target: int

:rtype: int

"""

le = len(nums)

if le == 0:

return 0

if target > nums[-1]:

return le

elif target < nums[0]:

return 0

elif target = nums[-1]:

return le - 1

elif target = nums[0]:

return 0

lo = 0

hi = le - 1

while lo < hi:

if (hi - lo) // 2 > 0:

mid = lo + (hi - lo) // 2

if nums[mid] < target:

lo = mid

elif nums[mid] > target:

hi = mid

elif nums[mid] == target:

return mid

else:

return hi

return hi

其它题目:[leetcode题目答案讲解汇总(Python版 持续更新)]

(https://www.jianshu.com/p/60b5241ca28e)

ps:如果您有好的建议,欢迎交流 :-D,

也欢迎访问我的个人博客 苔原带 (www.tundrazone.com)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值