34. 在排序数组中查找元素的第一个和最后一个位置

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/find-first-and-last-position-of-element-in-sorted-array
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
给定了指定的值,使用left <= right;
public int[] searchRange(int[] nums, int target) {
int left = searchLeftRange(nums, target);
if(left >= nums.length || nums[left] != target) {
return new int[]{-1,-1};
}
int right = searchLeftRange(nums, target+1);
return new int[]{left,right-1};
}
// 找target的左边界,如果没有就返回插入位置。
public int searchLeftRange(int[] nums, int target) {
int l = 0;
int r = nums.length-1;
while(l<=r) {
int mid = l+(r-l)/2;
if(nums[mid] == target) {
r= mid-1;
} else if(nums[mid] > target) {
r= mid-1;
} else {
l = mid+1;
}
}
return l;
}
浙公网安备 33010602011771号