旋转数组的最小数字

题目描述

把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。

输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。

NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。


思路:

由于旋转数组是排过序的数组,因此,遍历数组时,数组的一开始必然是递增的,只需要保证数组一直递增,或者不变,并一直记录这个递增数组中的最大值,一旦有数组小于这个数字,就证明,这是被调换位置的那几个数字,返回第一个数字就是整个数组的最小值。

import java.util.ArrayList;

public class Solution {

    public int minNumberInRotateArray(int [] array)

    {

        int i=0;

        int x=0;

        while(true)

        {

            if(array.length==0)

            {

                return 0;

            }

            if(array.length==1)

            {

                return array[0];

            }


            if(x<=array[i])

            {

              x=array[i];

              i++;


            }

            if(x>array[i])

            {

                return array[i];

            }

        }

    }

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容