二分法找到目标值后,将两指针一个前移一个后移即可。
class Solution {
public int[] searchRange(int[] nums, int target) {
int[] a = {-1, -1};
if(nums.length==0){
return a;
}else if(nums.length==1){
if(nums[0]==target){
a[0]=0;
a[1]=0;
return a;
}else{
return a;
}
}
int length = nums.length;
int left = 0;
int right = length-1;
while(left<=right){
int mid =(left+right)/2;
if(nums[mid] == target){
left=mid;
right=mid;
if(mid!=0){
}
while(left>=0&&nums[left]==target){
left --;
}
while(right<length&&nums[right]==target){
right ++;
}
a[0]=++left;
a[1]=--right;
return a;
}else if(nums[mid] < target){
left = mid+1;
}else if(nums[mid]>target){
right = mid-1;
}
}
return a;
}
}