题目描述
Java解决方法
class Solution {
public int search(int[] nums, int target) {
int start = 0;
int end = nums.length - 1;
int ret = bisearch(nums,start,end,target);
return ret;
}
private int bisearch(int[] nums, int low, int high, int target) {
if (low > high)
return -1;
int mid = (low + high) / 2;
if (nums[mid] == target)
return mid;
if (nums[mid] < nums[high]) {
if (nums[mid] < target && target <= nums[high])
return bisearch(nums, mid + 1, high, target);
else
return bisearch(nums, low, mid - 1, target);
} else {
if (nums[low] <= target && target < nums[mid])
return bisearch(nums, low, mid - 1, target);
else
return bisearch(nums, mid + 1, high, target);
}
}
}