java - 递归溢出

标签 java stack-overflow

我的代码出现堆栈溢出错误的问题。我试图在一个数组中查找一个数字,但我必须在递归函数中执行此操作,并给出该错误。

public static int linear(int[] array, int num, int indice) {
    if (indice < array.length-1) {
        if (array[indice] == num) {
            return indice;
        } else {
            ocurrencias++;
            linear(array, num, indice + 1);
        }
    }
    return -1;
}

如果您能帮助我,我将不胜感激。我的英语有点生疏,抱歉。

最佳答案

在递归调用 Linear 之前你错过了 return,不是吗?

return linear(array, num, indice + 1);

但是,我不认为 Java 会进行尾递归优化 (What is tail recursion?), 因此,对于大型数组,您必须适当增加堆栈大小;)

关于java - 递归溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20383479/

相关文章:

gdb - 调试由 pwntools 打开的程序

java - 寻找跨平台移动数据库选项

java - : import one by one or . * 哪个更好?

java - 对象未添加到列表中,列表返回空

ViewGroup.resetResolvedTextDirection 中的 Android StackOverflowError

java - 堆栈无法使用 pop 会出现错误

java - 通过设计模式重构交换机机壳的旧实例

java - 如何设置InputStreamReader的超时时间?

stack-overflow - Elixir无限递归是否曾经使堆栈溢出?

java - 为矩阵生成随机 X 和 Y 坐标,检查该槽中的内容并决定要做什么