gpt4 book ai didi

Java,递归反转一个数组

转载 作者:搜寻专家 更新时间:2023-10-30 21:02:04 32 4
gpt4 key购买 nike

我还没有找到任何符合我的功能的特定需求来执行此操作,是的,它是为了作业。

所以我有:

public void reverseArray(int[] x) {

}

前提条件:x.length > 0

事实上我不能让函数返回任何东西,唯一的参数是一个数组,这让我很困惑。

我尝试过将循环与递归一起使用,但我尝试过的一切似乎都以正在创建的函数的无限实例结束。

我有一个想法/建议与这个函数一起使用另一个函数,但是,如何递归地使用原始函数目前超出了我的范围。

感谢任何帮助。

最佳答案

void reverseArray(int[] x){
reverse(x, 0, x.length -1);
}

void reverse(int[] x, int i, int j){
if(i<j){//Swap
int tmp = x[i];
x[i] = x[j];
x[j] = tmp;
reverse(x, ++i, --j);//Recursive
}
}

测试:

int[] s = new int[]{1,2,3,4,5};
reverseArray(s);
System.out.println(Arrays.toString(s));//"5,4,3,2,1"

递归,O(n),不需要临时数组。

关于Java,递归反转一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13150131/

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