34. 在排序数组中查找元素的第一个和最后一个位置
给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。
如果数组中不存在目标值 target,返回 [-1, -1]。
class Solution {
public int[] searchRange(int[] nums, int target) {
int p = 0;
int count = 0;
int start = 0;
if(nums.length==0){
return new int[]{-1,-1};
}
if(nums.length==1){
if(nums[0]==target){
return new int[]{0,0};
}
else{
return new int[]{-1,-1};
}
}
while (p <= nums.length&&p<nums.length) {
if (nums[p] == target) {
start = p;
break;
} else
p++;
}
for (int j = start + 1; j < nums.length; j++) {
if (nums[j] == target) {
count++;
} else
break;
}
if (count == 0) {
if(p<nums.length){
return new int[]{start,start};
}
else
return new int[]{-1,-1};
}
else {
return new int[]{start, start + count};
}
}
}
写的不好,请多指教。