34. Trouver la première et la dernière position d'un élément dans un tableau trié
idées de résolution de problèmes
- utiliser la recherche binaire
- Après avoir trouvé l'index de l'élément cible
- Recherchez ensuite l'élément cible à gauche et à droite, puis enregistrez la position de l'intervalle et enregistrez-la
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;
}
}