旋转数组中的最小数字 java

版权声明:博客内容为本人自己所写,请勿转载。 https://blog.csdn.net/weixin_42805929/article/details/82969973

旋转数组中的最小数字 java

题目描述
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{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;
        }
        int min = array[0];
        for(int i = 1; i < array.length; i++){
            if(min > array[i]){
                min = array[i];
            }
        }
        return min;
    }
}

代码2:

public class Solution {
    public int minNumberInRotateArray(int [] array) {
        if(array.length == 0){
            return 0;
        }
        if(array.length == 1){
            return array[0];
        }
        for(int i = 0; i < array.length - 1; i++){
            if(array[i + 1] < array[i]){
                return array[i + 1];
            }else{
                if(i == array.length - 2){
                    return array[0];
                }
            }
        }
        return 0;
    }
}

代码3:使用API中的方法

public class Solution {
    public int minNumberInRotateArray(int [] array) {
        if(array.length == 0){
            return 0;
        }
        Arrays.sort(array);
        return array[0];
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_42805929/article/details/82969973