您的位置:首页 > 编程语言 > Java开发

旋转数组的最小数字

2016-07-20 11:15 267 查看
题目描述:

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

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

例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。

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

解题思路:

1.部分旋转时,即数组{1,2,3,4,5}旋转后为数组{3,4,5,1,2}的情况,出现array[i]>array[i+1]时,array[i+1]为数组最小值

2.完全旋转时,数组{1,2,3,4,5}仍为数组{1,2,3,4,5}。arra。y[0]为最小值。

实际操作:

public int minNumberInRotateArray(int [] array) {
//数组长度为0
if (array.length==0) return 0;
//部分旋转
for (int i = 0; i < array.length-1; i++) {
if (array[i] > array[i+1]) return array[i+1];
}
//完全旋转,即数组不发生变化
return array[0];
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java