【发布时间】:2019-07-25 00:49:54
【问题描述】:
我正在尝试编写一个递归方法,它接收一个整数数组并简单地向后返回该数组。这是我到目前为止所拥有的。
private static int[] reverseArray(int arr[]) {
int arrDup[] = arr.clone();
int x = 0, y = arrDup.length - 1;
if (arrDup[0] == arr[arr.length - 1]) {
return arrDup;
}
else {
// System.out.println(Arrays.toString(arrDup));
arrDup[y--] = arr[x++];
return reverseArray(arrDup);
}
}
public static void main(String[] args) {
int arrPass[] = {1, 2, 3, 4, 5};
System.out.println(Arrays.toString(reverseArray(arrPass)));
}
我该如何解决这个方法,以便它可以正确地反转它?当我运行它时,我只有[1, 2, 3, 4, 1]。假设数组中没有元素重复。我理解递归,只是想在这里实现它。
【问题讨论】:
-
要实现递归(或调试递归函数),第一步是用文字说明您要用于解决问题的递归解决方案。我无法通过查看该代码来判断它正在尝试实施什么解决方案。您可以从解释您尝试实现的递归解决方案开始,但我认为一旦您这样做了,您就会很清楚如何实现它。