0
点赞
收藏
分享

微信扫一扫

LeetCode: #33搜索旋转排列数组

MaxWen 2022-02-07 阅读 57

Code:

class Solution {
public int search(int[] nums, int target) {

int l = 0;
int r = nums.length -1;
int mid;

while (l + 1 < r) {
mid = l + (r - l) / 2;
if (nums[mid] == target) {
return mid;
}
if (nums[mid] > nums[l]) {
//上半段 是递增的
if ((target >= nums[l]) && (target <= nums[mid])) {
//说明再前半段
r = mid;
} else {
//再后半段
l = mid;
}
} else {
//下半段
if ((target <= nums[r]) && (target >= nums[mid])) {
l = mid;
} else {
r = mid;
}
}
}
//判断下边界
if (nums[l] == target) {
return l;
}
if (nums[r] == target) {
return r;
}
return -1;
}

}

 

举报

相关推荐

0 条评论