二分查找,递归
import java.util.*;
public class Solution {
public int minNumberInRotateArray(int [] array) {
if (array == null || array.length <= 0) {
return -1;
}
if(array.length == 1){
return array[0];
}
if (array[0] < array[array.length - 1]) {
return array[0];
}
int[] subLeft = Arrays.copyOfRange(array, 0, array.length / 2);
int left = minNumberInRotateArray(subLeft);
int right = -1;
if (array.length > 1) {
int[] subRight = Arrays.copyOfRange(array, array.length / 2, array.length);
right = minNumberInRotateArray(subRight);
}
if (left == -1) {
return right;
} else if (right == -1) {
return left;
}
return Math.min(left, right);
}
}