【Leetcode刷题Python】35. 搜索插入位置
2023-09-14 09:12:59 时间
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 解析
用二分查找法来插入,注意边界判断,插入的位置,如果插入的target比a大,则插在a的后面。这时候拿个例子来画一下,就能懂了。
比如 nums = [1,3,5,6], target=4和target=2
3 Python实现
def searchInsert(self, nums: List[int], target: int) -> int:
l, r = 0, len(nums)-1
result = len(nums)
while l <= r:
mid = int((l+r)/2)
if target<=nums[mid]:
r = mid-1
result = mid
else:
l = mid+1
return result
相关文章
- Python常用代码_python画图代码大全
- python语言变量命名规则有什么_Python变量命名规则(超级详细)
- python海龟绘图画圆_Python启蒙之海龟作图「建议收藏」
- Python+Django实现简单HelloWord网页
- Python保存json_python保存json文件
- python判断文件后缀_Python 判断文件后缀是否被篡改
- 数据结构与算法Python_数据结构与算法python语言实现
- python unicode编码转换utf-8编码_不成问题的问题人物解析
- Python-科学计算-pandas-09-df列字符串操作2
- python-Python与SQLite数据库-使用Python执行SQLite查询(一)
- python 通过ssh 连接Linux系统并发送指令详解程序员
- Python sort系列详解程序员
- python全栈开发-Day5 集合详解编程语言
- Python学习:1.快速搭建python环境详解编程语言
- python基础2之字符串、列表、字典、集合详解编程语言
- 掌握Python访问MySQL的新技能(python访问mysql)
- Python中is与==的使用区别详解编程语言
- 安装Python MySQL驱动之快速指南(python安装mysql驱动)
- 更深入的理解 Python 中的迭代
- Python程序员鲜为人知但你应该知道的17个问题