题目描述
Java解决方法
class Solution {
public int[] searchRange(int[] nums, int target) {
int[] ret = new int[2];
int pos = search(nums,0,nums.length - 1,target);
if(pos == -1 || (nums.length == 0))
{
ret[0] = -1;
ret[1] = -1;
return ret;
}
int st = pos;
int en = pos;
while(st >= 0 && nums[st] == target)
{
st--;
}
while(en <= nums.length - 1 && nums[en] == target)
{
en++;
}
ret[0] = ++st;
ret[1] = --en;
return ret;
}
private int search(int[] nums,int start,int end,int target)
{
if(start > end)
{
return -1;
}
int mid = (start + end) / 2;
if(nums[mid] == target)
{
return mid;
}
else if(nums[mid] < target)
{
return search(nums,mid + 1,end,target);
}
else
{
return search(nums,start,mid - 1,target);
}
}
}