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)

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

猜你喜欢

转载自www.cnblogs.com/lalalaczq/p/10837699.html