public class Solution{
public int rotateMin(int[] arr){
if(arr.length<=0) return -1;
if(arr.length==1) return arr[0];
int start=0,end=arr.length-1;
while(start<end){
if(end-start==1)return arr[end];
int mid=(start+end)/2;
if(arr[mid]>arr[start]){
start=mid;
}
else if(arr[mid]<arr[start]){
end=mid;
}
else{
return minInorder(arr,start,end);
}
}
return arr[start];
}
public int minInorder(int[] arr,int start,int end){
int ret=arr[start];
for(int i=start+1;i<=end;i++){
if(arr[i]<ret){
ret=arr[i];
}
}
return ret;
}
public static void main(String args[]){
int[] arr={3,4,5,1,2};
Solution sl=new Solution();
System.out.println(sl.rotateMin(arr));
}
}
8、旋转数组的最小数字
最新推荐文章于 2021-06-13 10:13:40 发布