【发布时间】:2016-11-22 21:30:25
【问题描述】:
这是我目前所拥有的,但我对如何跟踪索引感到困惑。我会更改方法的参数,但不允许。 我只能使用循环来制作另一个数组。这些是限制。
public class RecursiveFinder {
static int checkedIndex = 0;
static int largest = 0;
public static int largestElement(int[] start){
int length = start.length;
if(start[length-1] > largest){
largest = start[length-1];
int[] newArray = Arrays.copyOf(start, length-1);
largestElement(newArray);
}
else{
return largest;
}
}
/**
* @param args
*/
public static void main(String[] args) {
int[] array1 = {0,3,3643,25,252,25232,3534,25,25235,2523,2426548,765836,7475,35,547,636,367,364,355,2,5,5,5,535};
System.out.println(largestElement(array1));
int[] array2 = {1,2,3,4,5,6,7,8,9};
System.out.println(largestElement(array2));
}
}
【问题讨论】:
-
那么,maximumElement应该返回索引还是最大元素的值?
-
您可以保留一个计数器值来跟踪您的索引。
-
原来的问题是什么?您确定需要解决复制问题吗?
-
您能否发布更多有关递归问题限制的详细信息?以这种方式使用递归每次都进行复制是非常低效的。但是你使用它的方式意味着索引是数组的长度。
-
您不能更改方法的参数数量。但是,您能否再创建一种方法以在所需的方法中使用?