gpt4 book ai didi

java - 使用递归反转子数组的顺序

转载 作者:行者123 更新时间:2023-12-01 13:08:36 24 4
gpt4 key购买 nike

我正在尝试严格使用递归来反转开始索引和结束索引之间的子数组的顺序。例如,如果子数组是 1,2,3,4 ,它将变成 4,3,2,1。

但是,我收到以下运行时错误:

java.lang.ArrayIndexOutOfBoundsException:-1

在finalExam.reverse(finalExam.java:13)

在finalExam.reverse(finalExam.java:17)

我不知道如何解决这个问题。

谢谢。

 double[] reverse (double[] a, int start, int end) {
if (start == end) {return a;}
else {
a[start] = a[end];
a[end] = a[start];}


return reverse (a, start+1, end-1);
}

最佳答案

(既然你提到考试已经结束了)。以下是您的代码存在的问题:

  • 您的检查应为start >= end
  • 您交换两个数字的代码不正确。

正确的解决方案是:

public static double[] reverse (double[] a, int start, int end) {
if (start >= end) {
return a;
}
else {
// this code will swap two elements
double temp = a[start];
a[start] = a[end];
a[end] = temp;
}
return reverse (a, start+1, end-1);
}

关于java - 使用递归反转子数组的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23073284/

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