class Solution { public int search(int[] nums, int target) { if (nums.length == 0) { return -1; } int start = 0; int end = nums.length - 1; while (start <= end) { int mid = (start + end) / 2; if (nums[mid] == target) { return mid; } if ((nums[mid] >= nums[start] && nums[start] <= target && nums[mid] > target) || (nums[mid] < nums[start] && (nums[mid] > target || nums[end] < target))) { end = mid - 1; } else { start = mid + 1; } } return -1; } }