算法
(二分查找) $O(logn)$
由于旋转数组中的两部分都是有序的,所以可以使用二分来实现。
Java 代码
class Solution {
public int minArray(int[] numbers) {
int start = 0, end = numbers.length - 1;
while (start + 1 < end) {
int mid = start + (end - start) / 2;
if (numbers[mid] > numbers[end]) {
start = mid;
}
else if (numbers[mid] < numbers[end]) {
end = mid;
}
else end--;
}
return Math.min(numbers[start], numbers[end]);
}
}
大佬加油!