要求:给定一个按照升序排列的整数数组 nums 和一个目标值 target,找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target返回 [-1, -1] 。
具体代码如下:
import java.util.Arrays;
public class Test1_26 {
public static int[] searchRange(int[] nums, int target) {
int[] res = new int[2];
if(nums == null || nums.length == 0){
res[0] = res[1] = -1;
return res;
}
int start = 0, end = 0, i = 0, flag = 0;
for (; i < nums.length; i++) {
if(nums[i] == target) {
start = end = i;
flag = 1;
while (i < nums.length && nums[i] == target)
end = i++;
break;
}
}
if(i == nums.length && flag == 0){
res[0] = res[1] = -1;
return res;
}
res[0] = start;
res[1] = end;
return res;
}
public static void main(String[] args) {
int[] nums = {1};
System.out.println(Arrays.toString(searchRange(nums,1)));
}
}
运行结果示例: