代码
public class Main {
public static void main(String[] args) {
int[] arr = {1,2,3,4,5,5,5,5,6,7,8};
int left = 0;
int right = arr.length - 1;
int target = 5;
// 寻找左侧边界
while (left < right) {
int mid = left + right >> 1;
if (arr[mid] >= target) {
right = mid;
} else {
left = mid + 1;
}
}
int l = left;
// 寻找右侧边界
left = 0;
right = arr.length - 1;
while (left < right) {
int mid = left + right + 1 >> 1;
if (arr[mid] <= target) {
left = mid;
} else {
right = mid - 1;
}
}
System.out.println(l + " " + right);
}
}