力扣34
算法学习推荐网站:代码随想录
给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。
如果数组中不存在目标值 target,返回 [-1, -1]
这道题可以使用二分法,比较复杂,我这里使用简单的方法来实现
解法如下:
class Solution {
public int[] searchRange(int[] nums, int target) {
//定义初始位置,如果没有修改,直接返回即可
int start=-1;
int end=-1;
for(int i=0;i<nums.length;i++){
if(target==nums[i]){
//如果是第一次遇到这个数字这个start下标肯定为-1
if(start==-1){
start=i;
end=i;
}else{
//不是第一次遇到,不需要更新start下标,直接更新end下标
end=i;
}
}
}
int[] arr=new int[2];
arr[0]=start;
arr[1]=end;
return arr;
}
}