解法
class Solution {
public int search(int[] nums, int target) {
int i = nums[0];
if(i == target) return 0;
boolean bool = target > i; //true为左边区域,false为右边区域
int left = -1;
int right = nums.length;
int mid;
while (left + 1 != right){
mid = (left + right) / 2;
if(nums[mid] == target){
return mid;
}
//mid与target同区
if(bool == nums[mid] >= i){
if(nums[mid] < target ){
left = mid;
}else {
right = mid;
}
//mid与target不同区
}else {
if(nums[mid] >= i){ //mid在左区,让left往左
left = mid;
}else {
right = mid; //mid在右区,让right往右
}
}
}
return -1;
}
}
4/17/26Less than 1 minute