/*
* 二分查找
*/
public class Solution {
public int[] searchRange(int[] nums, int target) {
int[]res = {-1,-1};
if(nums==null||nums.length==0) return res;
int len = nums.length;
int x = 0, y = len -1;
int r = -1;
int middle = -1;
while(x<=y){
r = x + (y - x)/2;
if(nums[r]==target){
middle = r;
break;
}else if(nums[r] > target){
y = r - 1;
}else{
x = r + 1;
}
}
if(middle==-1){
return res;
}
int left = middle - 1;
while(left>=0&&nums[left]==target){
--left;
}
int right = middle + 1;
while(right<=len-1&&nums[right]==target){
++right;
}
res[0] = left + 1;
res[1] = right - 1;
return res;
}
}
34 Search for a Range
最新推荐文章于 2022-03-08 23:18:06 发布
