gpt4 book ai didi

Java Range 查找最大和最小 int 之间的差异

转载 作者:行者123 更新时间:2023-12-01 06:53:30 26 4
gpt4 key购买 nike

我无法弄清楚如何准确地找到数组中的最大数字和最小数字。

编写一个方法 range,它接受整数 ArrayList 作为参数,并返回列表中包含的值的范围,该范围定义为比最大元素和最小元素之间的差值大 1。例如,如果名为 list 的变量存储以下值:

[18、14、29、12、7、25]

调用 range(list) 应返回 23,因为这比任何一对值之间的最大差值 (29 - 7 + 1 = 23) 大 1。空列表的范围被定义为 0。

到目前为止我有这个:

public static int range(ArrayList<Integer> list)
{
int min = 0;
int max = 0;
int range = 0;
for (int i: list)
{
if (list.size() > 0)
{
range = max - min + 1;
}
}
return range;
}

非常感谢!

最佳答案

您有多种方法来实现这一目标。

使用集合(更紧凑但昂贵,因为它在列表上迭代两次,一次查找最大值,一次查找最小值):

public static int range(final ArrayList<Integer> list) {
if (list.isEmpty()) {
return 0;
} else {
return (Collections.max(list) - Collections.min(list)) + 1;
}
}

或者使用您自己的算法,如下所示(更多代码,但只需一个循环即可找到最小值和最大值):

public static int range(final ArrayList<Integer> list) {
if (list.isEmpty()) {
return 0;
} else {
int max = list.get(0);
int min = list.get(0);
for (final int i : list) {
if (i > max) {
max = i;
} else if (i < min) {
min = i;
}
}
return (max - min) + 1;
}
}

关于Java Range 查找最大和最小 int 之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18992276/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com