从 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 中找到数组的最小值的主要内容,如果未能解决你的问题,请参考以下文章
给定一个大小为 N 的数组,我需要找到在最小和最大范围内求和的最小值数