34. Encuentra la primera y última posición de un elemento en una matriz ordenada
ideas para resolver problemas
- usar búsqueda binaria
- Después de encontrar el índice del elemento de destino
- Luego busque el elemento de destino a la izquierda y a la derecha, luego registre la posición del intervalo y guárdelo
class Solution {
public int[] searchRange(int[] nums, int target) {
int left = 0;
int right = nums.length - 1;
int[] result = new int[2];
while(left <= right){
int mid = left + (right - left) / 2;
if(nums[mid] > target){
right = mid -1;
}else if(nums[mid] < target){
left = mid + 1;
}else{
int i = mid;
int j = mid;
while(j <= nums.length - 1 && nums[j] == target){
j++;
}
while(i >= 0 && nums[i] == target){
i--;
}
result[0] = ++i;
result[1] = --j;
return result;
}
}
result[0] = -1;
result[1] = -1;
return result;
}
}