LeetCode第三十四题-寻找数组中对应目标值的首尾索引

Posted lalalaczq

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode第三十四题-寻找数组中对应目标值的首尾索引相关的知识,希望对你有一定的参考价值。

Find First and Last Position of Element in Sorted Array

问题简介:给定按升序排序的整数数组,找到给定目标值的起始位置和结束位置.

注:

1.算法的运行时复杂度必须为O(log n)

2.如果在数组中找不到目标,则返回[-1,-1]

举例:

1:

输入: nums = [5,7,7,8,8,10], target = 8

输出: [3,4]

2:

输入: nums = [5,7,7,8,8,10], target = 6

输出: [-1,-1]

解法一:

可以从头遍历,第一次找到目标值的即第一个索引,再倒序遍历,寻找目标值

技术图片

解法二:

我们也可以用改进的二进制来做,定义一个方法来分别求数组中第一个和最后一个与target相同值的索引,其中left是状态值,当left=true时,代表这个方法时寻找第一个索引值,false即最后一个索引值

技术图片

复杂度分析:

时间复杂度:o(log10(n))

空间复杂度:o(1)

小白刷题之路,请多指教— — 要么大器晚成,要么石沉大海

技术图片

以上是关于LeetCode第三十四题-寻找数组中对应目标值的首尾索引的主要内容,如果未能解决你的问题,请参考以下文章

每日一题 为了工作 2020 0405 第三十四题

全国计算机等级考试二级Python(2021年9月)备考笔记 第十四天

C#三十六道简单填空题

全国计算机等级考试二级Python(2021年9月)备考笔记 第十二天

leetcode 简单第三十七题 两数之和 II - 输入有序数组

leetcode 简单 第八十四题 两个数组的交集