LeetCode刷题-34.在排序数组中查找元素的第一个和最后一个位置
¶题解:
同样是二分!
¶题目简述:
给定一个有序数组,找到目标值出现的开始和结束位置!
¶题解:
同样是二分:目的在于找到两个端点,如下图:
使用 x >= target
可以找到满足该条件的最后一个数,即左端点!
使用x <= target
可以找到满足该条件的最后一个数, 即右端点!
具体情况:
- 若数组为空,直接返回-1
- 若左端点不存在,即不存在
target
直接返回-1 - 否则,重新二分该数组找到右端点,最后返回。
注意: 二分左端点时,r
的选取可以是nums.size() - 1
,也可以是上次二分的结果。复杂度不影响!
¶AC代码:
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小牛博客!
评论