从MAX_VALUE查找数组的最小值

问题描述

当前,我正在尝试在数组中找到最小值。用户输入要创建的数组,然后程序应查找最小值。我尝试使用max_int值找到他的最小值,但是我没有任何成功。如何在数组中找到最小值?

public class Recursion {

    public static int findMin(int[] array,int index,int min) {
        int smallest = Integer.MAX_VALUE;
        for (int i = 0; i < array.length; i++) {
            if (array[i] < smallest) {
                smallest = array[i];
            }
            return findMin(array,index,min);
        }
        return smallest;
    }
}

解决方法

根据您的描述,您只需要在数组中找到最小值,因此您无需对此问题使用递归。以下是对完成此工作的原始代码的改编。

public static int findMin(int[] array) {
    int smallest = Integer.MAX_VALUE;
    for (int i = 0; i < array.length; i++) {
        if (array[i] < smallest) {
            smallest = array[i];
        }
    }
    return smallest;
}

如果您可以使用Stream界面,则可以使用一个衬纸来解决此问题。

 public static int findMin(int[] array) {
  return Arrays.stream(array).min().getAsInt();
}
,

为什么不只找到分钟?

public static int findMin(int[] arr) {
    int min = Integer.MAX_VALUE;
    
    for (int a : arr)
        min = Math.min(min,a);

    return min;
}

甚至:

public static int findMin(int[] arr) {
    return Arrays.stream(arr).min().getAsInt();
}