题目:
解体思路:像这种全局有序(或者分成一半有序的),尝试查找某一个元素,可以通过二分来解决。
二分每次都可以确定一部分序列,这样可以通过在这部分符合条件的序列中再次查找对应的数据。
代码如下:
class Solution {
public int minArray(int[] numbers) {
//二分
int len = numbers.length;
int left = 0;
int right = len-1;
while(left<right){
int mid = left + (right-left)/2;
if(numbers[mid]>=numbers[left] && numbers[mid]>numbers[right]){
left=mid+1;
}else if(numbers[mid] < numbers[left] && numbers[mid]<numbers[right]){
right=mid;
}else{
right = right-1;
}
}
return numbers[left];
}
}