6-旋转数组的最小数字
1. 题目要求
2. 题解
--------------------------------------------【2021-08-07】更新-------------------------------------------------------
import java.util.ArrayList; import java.util.Arrays; public class Solution { public int minNumberInRotateArray(int [] array) { if(array.length==0) return 0; if(array.length==1) return array[0]; if(array.length==2) { if(array[0]<=array[1]) return array[0]; else return array[1]; } int left=0; int right=array.length-1; int mid=(left+right)>>1; /* 要比较中点与右端点的值的大小 反例:[1,2,3,4,5] */ if(array[mid]>array[right]) { return minNumberInRotateArray(Arrays.copyOfRange(array,mid+1,right+1)); } else if(array[mid]<array[right]) { return minNumberInRotateArray(Arrays.copyOfRange(array,left,mid+1)); }else { return minNumberInRotateArray(Arrays.copyOfRange(array,left,right)); } } }