gpt4 book ai didi

java - 使用递归来填充数组,而不实现方法重载?

转载 作者:行者123 更新时间:2023-12-01 14:10:20 24 4
gpt4 key购买 nike

有没有一种方法可以使用递归来填充数组,而不实现方法重载?我想构建一个只接受 int 作为参数并返回一个数组的方法。我想到的唯一解决方案是使用方法重载;以 int 作为参数的函数构建数组,并将数组和 int 传递给第二个函数,第二个函数以 int 和数组作为参数并实现实际的递归。

这是一个例子:

public static int[] recursiveBuilder(int depth, int[] anArray){
// Base case:
if (depth < 0){
return anArray;
}
// Recursion:
else{
anArray[depth] = depth;
depth--;
return recursiveBuilder(depth, anArray);
}
}

public static int[] recursiveBuilder(int depth){
return recursiveBuilder(depth, new int[depth + 1]);
}

如果我在重载的递归部分声明数组,则每次调用递归时都会初始化数组,因此我使用了第二个函数来声明数组。

这种方法被认为是好的吗?高效的?有没有办法只用一种方法来实现这种动态?

最佳答案

通常,递归解决方案需要两种方法。使用外部有意义的参数调用 top 方法,执行任何所需的设置,并调用递归方法。递归方法需要额外的参数。

例如,递归二分搜索可能有一个 top 方法,该方法仅将探针和对数组的引用作为参数。递归方法还需要一个开始和结束索引,以便它可以将自己限制为数组的一个切片。

Java 程序通常有很多小方法,Java 实现就是为了处理这些小方法而设计的。如果您可以使代码清晰并使用两种方法,请使用两种方法并继续下一步。

关于java - 使用递归来填充数组,而不实现方法重载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18564737/

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