class Solution {
public int[] searchRange(int[] nums, int x) {
if (nums == null || nums.length == 0) return new int[]{-1,-1};
int l = 0,r = nums.length - 1;
while (l < r) {
int mid = l + r >> 1;
if (nums[mid] >= x) r = mid;
else l = mid + 1;
}
int ans1 = l;
if (nums[l] != x) return new int[]{-1,-1};
else {
l = 0;
r = nums.length - 1;
while (l < r) {
int mid = l + r + 1 >> 1;
if (nums[mid] <= x) l = mid;
else r = mid - 1;
}
}
return new int[]{ans1,l};
}
}
(二分法)力扣34.在排序数组中查找元素的第一个和最后一个位置
于 2021-11-08 15:56:05 首次发布