Rotated Array
Suppose a sorted array A is rotated at some pivot unknown to you beforehand.
(i.e., 0 1 2 4 5 6 7
might become 4 5 6 7 0 1 2
).
Find the minimum element.
The array will not contain duplicates.
public class Solution {
public int findMin(final List<Integer> a) {
int start = 0;
int end = a.size() - 1;
while (start < end) {
int mid = (start + end) / 2;
if (a.get(start) < a.get(end))
return a.get(start);
if (a.get(mid) >= a.get(start))
start = mid + 1;
else
end = mid;
}
return a.get(start);
}
}
Last updated