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)
小白刷题之路,请多指教— — 要么大器晚成,要么石沉大海
原文地址:https://www.cnblogs.com/lalalaczq/p/10837699.html
时间: 2024-11-01 16:34:06