从 MAX_VALUE 中找到数组的最小值

Posted

技术标签:

【中文标题】从 MAX_VALUE 中找到数组的最小值【英文标题】:Finding the minimum of an array from MAX_VALUE 【发布时间】:2021-01-08 20:48:24 【问题描述】:

目前我正在尝试在数组中找到最小值。用户输入他们想要创建的数组,然后程序应该找到最小值。我尝试使用 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;
    

【参考方案1】:

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

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 接口,则可以使用one liner来解决此问题。

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

【讨论】:

【参考方案2】:

为什么不直接找最小值?

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

【讨论】:

以上是关于从 MAX_VALUE 中找到数组的最小值的主要内容,如果未能解决你的问题,请参考以下文章

在二维数组中找到最小值

如何在 VBA 中找到数组的最小值?

从具有 NaN 的多维数组中找出最小值

给定一个大小为 N 的数组,我需要找到在最小和最大范围内求和的最小值数

请从键盘输入10个数据 ,每轮循环找到数组中最小的那个删除,数组最后只剩一个?

使用聚合和查找 mongodb 从对象数组中获取最小值