/**
* @author xienl
* @description 在旋转过的有序数组中寻找目标值
* @date 2022/7/6
*/
public class Solution {
public static void main(String[] args) {
Solution solution = new Solution();
}
public int search (int[] nums, int target) {
// write code here
int left = 0, right = nums.length - 1;
while (left <= right){
int mid = left + right >> 1;
if (nums[mid] == target){
return mid;
}
// 前半段有序
if (nums[left] <= nums[mid]){
// 在左区间内
if (nums[left] <= target && target < nums[mid]){
right = mid - 1;
} else{
left = mid + 1;
}
} else{ // 后半段有序
if (nums[right] >= target && target >= nums[mid]){
left = mid + 1;
} else{
right = mid - 1;
}
}
}
return -1;
}
}
牛客网:NC48 在旋转过的有序数组中寻找目标值
最新推荐文章于 2022-10-02 21:32:09 发布