2
public int search(int[] nums, int target) {3
int pivot = findPivot(nums);4
int ans = binarySearch(nums, target, 0, pivot);8
return binarySearch(nums, target, pivot + 1, nums.length - 1);11
public int findPivot(int[] arr) {12
int start = 0, end = arr.length - 1;13
while (start <= end) {14
int mid = start + (end - start) / 2;15
if (mid < end && arr[mid] > arr[mid + 1]) {18
if (mid > start && arr[mid - 1] > arr[mid]) {21
if (arr[mid] <= arr[start]) {30
public int binarySearch(int[] arr, int target, int start, int end) {32
while (start <= end) {33
int mid = start + (end - start) / 2;35
if (target < arr[mid]) {37
} else if (target > arr[mid]) {