public int search (int[] nums, int target) {
int left = 0;//设置左指针为初始位置
int right = nums.length - 1;//设置右指针为末尾位置
while(left <= right){//循环条件
int mid = left + (right - left) / 2;//中间值为
if(nums[mid] == target){//判断中间值是否等于目标值
return mid;
}
if(nums[mid] >= nums[left]){
if(nums[mid] > target&&target>=nums[left]){
right = mid - 1;
}
else{
left = mid + 1;
}
}
else{
if(nums[mid]<target&& target <= nums[right]){//目标值大于中间值且小于最右边的值
left = mid + 1;
}
else{
right = mid - 1;
}
}
}
return -1;
}
在旋转过的有序数组中寻找目标值
最新推荐文章于 2025-11-24 15:27:16 发布
本文详细讲解了如何使用二分查找法在整数数组中搜索目标值,通过不断缩小区间来提高查找效率。通过左右指针移动及比较策略,确保在已排序数组中找到目标值或返回-1。
283

被折叠的 条评论
为什么被折叠?



