【发布时间】:2014-11-07 01:28:37
【问题描述】:
我需要帮助来创建一个在向量中找到最大值的递归方法。该方法应具有以下签名:
public int max(int[] v)
并使用私人帮助方法。
这是我尝试使用的方法:
private int biggest(int a, int b){
if(a > b){
return a;
}
else{
return b;
}
}
public int maxRecursive(int[] v){
if(v.length > 1){
return biggest(v[0], maxRecursive(Arrays.copyOfRange(v, 1, v.length - 1)));
}
else{
return v[0];
}
}
然而,这一切似乎只是返回一个数组的中间值。 例如:如果数组是`{1,2,3,5,6,7,8} 该方法返回 5。
【问题讨论】:
-
您说它必须在向量中找到,但您的代码显示您搜索原始数组。它是哪一个?另外,为什么要递归执行此操作,这没有任何意义。直接做直线跑。
-
我正在上编程课,这是其中一项任务。设法创建了一个迭代,但我坚持使用递归方法。
-
你应该如何处理零大小的数组?
-
@PontusBrink 仍然没有解释您正在使用哪种数据结构。它是一个向量,还是一个普通的旧 int 数组? (请编辑问题,不要提及您未使用的问题)