假设数组0,1,2,3,4
则其旋转之后可能是
4,0,1,2,3
3,4,0,1,2
2,3,4,0,1
1,2,3,4,0
0,1,2,3,4
观察可得对于(low+high)/2的位置的数组元素,如果其大于high则最小值必在其右边(不包含自身),如果其小于high的值则最小值必在其左边(包含自身)
public class Solution {
public static int findMin(int[] num) {
int low =0;
int high = num.length-1;
while(low<high){
if(num[(low+high)/2]>num[high]){
low = (low+high)/2+1;
}
else{
high = (low+high)/2;
}
}
return num[(low+high)/2];
}
}