## Interview Question

Country: United States

Comment hidden because of low score. Click to expand.
0
of 0 vote

Here .
[ geeksforgeeks.org/search-an-element-in-a-sorted-and-pivoted-array/ ]

Comment hidden because of low score. Click to expand.
0
of 0 vote

This is my solution -

``````class SortedArrayElementPivot {

static int search(int[] array, int elementToSearch) {
if (array == null || array.length == 0) {
return -1;
}

return search(array, elementToSearch, 0, array.length - 1);
}

private static int search(int[] array, int elementToSearch, int start, int end) {
if (array == null || array.length == 0 || start < 0 || start > end || end > array.length - 1) {
return -1;
}

int mid = (start + end) / 2;
if (array[mid] == elementToSearch) {
return mid;
}

if (
// mid is pivot
(mid > 0 && array[mid - 1] > array[mid])

// next to mid is pivot
|| (mid + 1 <= end) && array[mid] > array[mid + 1]) {

int leftSearchResult = binarySearch(array, elementToSearch, start, mid - 1);
return leftSearchResult != -1 ? leftSearchResult : binarySearch(array, elementToSearch, mid + 1, end);
} else {
int leftSearchResult = search(array, elementToSearch, start, mid - 1);
return leftSearchResult != -1 ? leftSearchResult : search(array, elementToSearch, mid + 1, end);
}
}

private static int binarySearch(int[] array, int elementToSearch, int start, int end) {
if (array == null || array.length == 0 || start < 0 || start > end || end > array.length - 1) {
return -1;
}
int mid = (start + end) / 2;
if (array[mid] == elementToSearch) {
return mid;
} else if (array[mid] < elementToSearch) {
return binarySearch(array, elementToSearch, mid + 1, end);
} else {
return binarySearch(array, elementToSearch, start, mid - 1);
}
}
}``````

Name:

Writing Code? Surround your code with {{{ and }}} to preserve whitespace.

### Books

is a comprehensive book on getting a job at a top tech company, while focuses on dev interviews and does this for PMs.

### Videos

CareerCup's interview videos give you a real-life look at technical interviews. In these unscripted videos, watch how other candidates handle tough questions and how the interviewer thinks about their performance.