classSolution { publicintsearch(int[] nums, int target) { intleft=0, right = nums.length - 1;
while (left <= right) { intmid= left + (right - left) / 2;
if (nums[mid] == target) return mid;
// check which side is sorted if (nums[left] <= nums[mid]) { // left side sorted if (nums[left] <= target && target < nums[mid]) { right = mid - 1; // search in left half } else { left = mid + 1; // search in right half } } else { // right side sorted if (nums[mid] < target && target <= nums[right]) { left = mid + 1; // search in right half } else { right = mid - 1; // search in left half } } }