题目描述
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。
输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。
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];
}
}
}
}