gpt4 book ai didi

java - 使用递归查找数组中的最大值

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:28:11 25 4
gpt4 key购买 nike

对于我被要求解决的其中一个问题,我使用 for 循环找到了数组的最大值,所以我尝试使用递归找到它,这就是我想出的:

public static int findMax(int[] a, int head, int last) {

int max = 0;
if (head == last) {
return a[head];
} else if (a[head] < a[last]) {
return findMax(a, head + 1, last);
} else {
return a[head];
}
}

所以它工作正常并获得最大值,但我的问题是:对于基本情况返回 a[head] 以及当头部的值大于最后的值的情况是否可以?

最佳答案

你可以只用一个计数器轻松做到这一点,只是这次你要比较的值的索引:

public static int findMax(int[] a, int index) {
if (index > 0) {
return Math.max(a[index], findMax(a, index-1))
} else {
return a[0];
}
}

这更好地显示了正在发生的事情,并使用默认的“递归”布局,例如有一个共同的基本步骤。初始调用是通过执行 findMax(a, a.length-1)

关于java - 使用递归查找数组中的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19590242/

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