剑指offer
1.剑指 Offer 11. 旋转数组的最小数字
public int minArray(int[] numbers) {
if(numbers == null || numbers.length == 0) return -1;
for(int i = 0;i < numbers.length - 1;i ++){
if(numbers[i] > numbers[i + 1]){
return numbers[i + 1];
}
}
return numbers[0];
}
public int minArray2(int[] numbers) {
int left = 0,right = numbers.length - 1;
while(left < right){
int mid = left + (right - left) / 2;
if(numbers[mid] > numbers[right]){
left = mid + 1;
}else if(numbers[mid] < numbers[right]){
right = mid;
}else{
right = right - 1;
}
}
return numbers[left];
}