其他分享
首页 > 其他分享> > Leetcode — 34. 查找有序数组中元素的第一个和最后一个位置

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

标签:半边,Python,位置,34,查找,Leetcode,target
来源: https://www.cnblogs.com/amboke/p/16654310.html