[Link] https://leetcode.com/problems/find-first-and-last-position-of-element-in-sorted-array/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
class Solution {
public int[] searchRange(int[] nums, int target) {
int lb = -1, hb = -1, len = nums.length, l = 0, r = len - 1, mid;
while(l <= r) {
mid = (l + r) / 2;
if(nums[mid] >= target) {
r = mid - 1;
if(nums[mid] == target) lb = r + 1;
}
else l = mid + 1;
}
l = 0;
r = len - 1;
while(l <= r) {
mid = (l + r) / 2;
if(nums[mid] <= target) {
l = mid + 1;
if(nums[mid] == target) hb = l - 1;
}
else r = mid - 1;
}
if(lb != -1 && hb != -1) return new int[]{ lb, hb };
else return new int[] {-1, -1};
}
}