mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4mobile wallpaper 5mobile wallpaper 6mobile wallpaper 7mobile wallpaper 8mobile wallpaper 9mobile wallpaper 10mobile wallpaper 11mobile wallpaper 12mobile wallpaper 13mobile wallpaper 14mobile wallpaper 15
29 字
1 分钟
算法题
2026-03-16

二分算法#

第一题 34. 在排序数组中查找元素的第一个和最后一个位置

class Solution {
public int[] searchRange(int[] nums, int target) {
int left = -1;
int right = -1;
int start = 0;
int end = nums.length - 1;
//寻找第一个出现
while(start <= end){//因为闭区间 等于时也符合
int mid = (start + end)/2;
if(nums[mid] == target){
left = mid;
end = mid - 1;//继续向左寻找
}
else if(nums[mid] > target){
end = mid - 1;
}
else start = mid + 1;
}
start = 0;
end = nums.length - 1;
//寻找最后一个
while(start <= end){//因为闭区间 等于时也符合
int mid = (start + end)/2;
if(nums[mid] == target){
right = mid;
start = mid + 1;//继续向右寻找
}
else if(nums[mid] > target){
end = mid - 1;
}
else start = mid + 1;
}
if(left == -1 || right == -1){
int[] res={-1,-1};
return res;
}
int[] res={left,right};
return res;
}
}//感谢大佬题解 时间复杂度O(log n)