#MF0002. 在排序数组中查找元素的第一个和最后一个位置
在排序数组中查找元素的第一个和最后一个位置
【题目描述】
给你一个从小到大排好序的整数数组 nums,还有一个目标数 target。
请你找出这个目标数在数组里第一次出现的位置,和最后一次出现的位置。
如果数组里根本没有这个目标数,就返回 [-1, -1]。
注意:你写的代码必须满足时间复杂度 O (log n)(简单说就是要用二分查找,不能挨个遍历)。
【输入说明】
- 一个从小到大排好序的整数数组 nums(数组可能为空)
- 一个整数 target(要找的目标数)
【输出说明】
返回一个包含两个数的数组:
第一个数是目标数第一次出现的位置,第二个数是最后一次出现的位置;
如果没找到目标数,就返回 [-1, -1]。
【输入输出样例】
输入:
5 7 7 8 8 10
8
输出:
3 4
【提示】
- 数组长度可以是 0(空数组),也可以最多有 10 万个数字
- 数组里的数字和目标数的范围:-10 亿~10 亿
- 数组里的数字只会从小到大排,不会乱序(比如不会出现 [5,3,7] 这种情况)