簡體   English   中英

遞歸溢出

[英]Recursive 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 linear(array, num, indice + 1);

但是,我不認為Java會進行尾遞歸優化( 什么是尾遞歸? ),因此您必須為大型數組適當增加堆棧大小;)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM