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 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/11956/38170409

posted @   哈哈哈来了啊啊啊  阅读(26)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示