Given a sorted array of integers, find the starting and ending position of a given target value.
Your algorithm's runtime complexity must be in the order of O(log n).
If the target is not found in the array, return [-1, -1]
.
For example,
Given [5, 7, 7, 8, 8, 10]
and target value 8,
return [3, 4]
.
public class Solution_34 {
public static int[] searchRange(int[] nums, int target) {
int len = nums.length;
int start=-1,end=-1;
if(nums == null || len ==0 ){
//start=-1;
//end=-1;
}
else if(target<nums[0] || target>nums[len-1]){
start=-1;
end=-1;
}
else {
int i;
for(i=0;i<len;i++){
if (nums[i]==target){
start = i;
break;
}
}
for(i=0;i<len;i++){
if (nums[len-i-1]==target){
end = len-i-1;
break;
}
}
}
int[] range = new int[]{start,end};
return range;
}
public static void main(String[] args){
//int[] nums = new int[]{1,4,4,5,5,5,5,5,5,6};
int[] nums = new int[]{1,5};
int[] range = searchRange(nums,4);
System.out.println("["+range[0]+","+range[1]+"]");
}
}
Runtime:2ms
击败了3.7% 恩 明儿再看看别人的代码好了