示例 1:
输入: nums = [5,7,7,8,8,10], target = 8
输出: [3,4]
示例 2:
输入: nums = [5,7,7,8,8,10], target = 6
输出: [-1,-1]
思路:定义两个变量start和end,分别指向数组首元素和末尾元素,当start<end时,我们从下标start开始查找与target值相等的,找到退出循环,用相同的方法从后给前找,找到退出循环,并且返回[start,end],没有找到返回[-1,-1];
代码如下:
public static int[] searchRange(int[] nums,int target) {
int start = 0;
int end = nums.length - 1;
while(start <= end) {
if(nums[start] == target) {
break;
}
start++;
}
while(start <= end) {
if(nums[end] == target) {
return new int[] {start,end};
}
end--;
}
return new int[] {-1,-1};
}