小景哥哥

世界很大,而我们还需要再成长!

您现在的位置是:首页>爱编程>详细内容

旋转数组的最小数字

发布时间:2018-08-10 00:00:00编辑:Jason浏览(215)评论(0)

    6.旋转数组的最小数字

    题目描述
    把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。
     
     
    import java.util.ArrayList;
    public class Solution {
        public int minNumberInRotateArray(int[] array) {
           if(array.length <= 0)
                return 0;
           int index1 = 0;
           int index2 = array.length - 1;
           int indexMid = index1;
           while(array[index1] >= array[index2]){
               if(index2 - index1 == 1){
                   indexMid = index2;
                   break;
               }
               indexMid = (index1 + index2) / 2;
               if(array[indexMid] >= array[index1])
                   index1 = indexMid;
               else if(array[indexMid] <= array[index2])
                   index2 = indexMid;
           }
           return array[indexMid];
       }
    }

关键字词:offer