剑指offer 6.旋转数组的最小数字

时间限制:3秒 空间限制:32768K 本题知识点: 查找

题目描述
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。

思路1: 直接最简单的数组遍历,因为是有序的,所以,一旦数组中后面的那个数比前面的小,说明,它是数组反转的最小头部,直接返回即可,假如数组元素全都相同,那么随意返回一个数(此方法速度不占优势)

import java.util.ArrayList;
public class Solution {
    public int minNumberInRotateArray(int [] array) {
        if(array.length == 0) {
            return 0;
        }
        for (int i = 0; i < array.length; i++) {
            if(array[i] > array[i + 1]) {
                return array[i + 1];
            }
        }
        return array[0];
    }
}

思路2: 用二分法进行搜索最小值(待补)

全部评论

相关推荐

霁华Tel:秋招结束了,好累。我自编了一篇对话,语言别人看不懂,我觉得有某种力量在控制我的身体,我明明觉得有些东西就在眼前,但身边的人却说啥也没有,有神秘人通过电视,手机等在暗暗的给我发信号,我有时候会突然觉得身体的某一部分不属于我了。面对不同的人或场合,我表现出不一样的自己,以至于都不知道自己到底是什么样子的人。我觉得我已经做的很好,不需要其他人的建议和批评,我有些时候难以控制的兴奋,但是呼吸都让人开心。
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务