题解 | #旋转数组的最小数字#
旋转数组的最小数字
http://www.nowcoder.com/practice/9f3231a991af4f55b95579b44b7a01ba
import java.util.ArrayList;
public class Solution {
public int minNumberInRotateArray(int [] array) {
l = mid+1;
}
}
return array[l];
}
}
public class Solution {
public int minNumberInRotateArray(int [] array) {
int l = 0,r = array.length-1;
//数组只包含一个值,最小值肯定是这个值
if(array.length==1) return array[0];
//二分查找
while(l <= r){
int mid = l+(r-l)/2;
//范围左移
if(array[mid]<array[r]){
r = mid;
//不知道最小值在那个范围,缩小范围
}else if(array[mid]==array[r]){
r--;
//右移动
}else{l = mid+1;
}
}
return array[l];
}
}