从 MAX_VALUE 中查找数组的最小值

Finding the minimum of an array from 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();
}

为什么不只找到 min?

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();
}