看板 Programming 關於我們 聯絡資訊
Recursive 改寫的部份如下: private static int length(int [] s, int x) { //WRITE CODE HERE int len; int tmp; if (s[x] == x) { return 0; } tmp = s[x]; s[x] = s[tmp]; len = length(s, x) + 1; s[x] = tmp; return len; } ※ 引述《kasey ( )》之銘言: : 大家好,我初學Java沒多久,最近遇到一個問題。假設有一個 array 裡面的數字不重複 : ,任意給定一個數字,在不用迴圈跟 array.length() 的情形下要怎麼算此 array 的長 : 度呢?我目前是想到用 recursion ,可是我寫的結果都沒有成功 orz,麻煩各位大大解 : 惑 : 用迴圈的程式如下: : int length(int [] s, int x) : int l; : int y = x; : while (true) { : if (s[x] == y) { : return l; : } : x = s[x]; : ++l; : } : } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 210.61.233.210 ※ 文章網址: https://www.ptt.cc/bbs/Programming/M.1500363462.A.815.html
kasey: Wow~ 謝謝你。 174.62.87.50 07/19 00:14
cutekid: 只不過 n = 5000 時, recursive 不會爆嗎 111.83.155.115 07/19 09:42