Leetcode — 34. 查找有序数组中元素的第一个和最后一个位置
Leetcode — 34. 查找有序数组中元素的第一个和最后一个位置
题目: 查找排序数组中元素的第一个和最后一个位置
难度:medium
语言:Python
中文题意:给一串以递增排序的整数list,找到和target这个值一样的所有数值,并回传第一次和最后一次出现的位置;如果没有和target一样的值,即回传[-1,-1]。此外, 请在O(log n)的复杂度之内完成 。
解法: 这题的重点就是落在复杂度必须要限制在O(log n)之内,如果用暴力法的话,会有 超时 问题!
所以我是采用二元搜寻的方法,先把整个list分割成左半边和右半边,寻找和target相同的值,之后再从左半边和右半边各自再进行二元搜寻,朝向mid逼近,寻找第一次出现target的位置,和最后一个出现target的位置!
运行时间:97 毫秒,比 Python 在线提交的 Find First and Last Position of Element in Sorted Array 快 53.30%。
内存使用:14.6 MB,不到 63.27% 的 Python 在线提交的 Find First and Last Position of Element in Sorted Array。
这边的题目是收录在Leetcode - Top Interview Questions之中,在准备面试白板题的同学可以参考看看喔!
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通