ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Leetcode — 34. 查找有序数组中元素的第一个和最后一个位置

2022-09-04 10:03:19  阅读:188  来源: 互联网

标签:半边 Python 位置 34 查找 Leetcode target


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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有