旋转数组的最小数字
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。
输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。
例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。
NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。
代码如下:
1 import java.util.ArrayList; 2 public class Solution { 3 public int minNumberInRotateArray(int [] array) { 4 if(array.length==0){ 5 return 0; 6 }else if(array.length==1){ 7 return array[0]; 8 } 9 else{ 10 int left = 0; 11 int right = array.length-1; 12 int mid = (left+right)/2; 13 int temp = array[0]; 14 while(array[mid]>=temp){//折半查找 15 left = mid+1; 16 mid = (left+right)/2; 17 } 18 while(array[mid]>=array[mid-1]){//每次循环向前移动一格 19 mid--; 20 } 21 return array[mid]; 22 } 23 } 24 }
感觉折半查找用的越来越顺🐶记录自己的变(chui)强(niu)过程
继续!!!