

→ djshen: 你先把走的路徑印出來看跟你想的一不一樣 04/28 12:04
→ djshen: 然後先從小一點的試試看 04/28 12:05
推 a0919610611: 你i,j都沒終止條件阿walk(ret,i,j+1) j會加到無限大 04/28 16:01
推 s9041200: 沒設邊界條件。 04/29 13:52
→ s9041200: 如果設了還是爆掉,就用dp或單源最短路徑試試。 04/29 13:52
推 froce: 最後一招就是改sys.setrecursionlimit() 04/29 19:27
感謝各位 我加入了邊界條件之後還是爆掉
我加入 if i<0 or i>100 or j<0 or j>100:
return False
目前是想到還能用DFS 但也是需要用到遞迴
※ 編輯: ar0n77777 (140.112.25.47), 04/30/2018 14:16:31
推 Yshuan: 你把size先改成30以內看是否有結果 04/30 16:14
→ Yshuan: DFS可以用迴圈寫的 和BFS差別在容器是stack而非queue 04/30 16:15
推 Yshuan: 文章中的寫法 一個點會被重複拜訪阿 2x2也會overflow 04/30 16:20
推 Yshuan: 漏看line 7, 那麼就是改小size先確定這會動 再優化吧 04/30 16:24
推 handsomeLin: 因為你遞迴寫的方式會把整個MATRIX走滿 也就是100*10 05/04 17:43
→ handsomeLin: 0 在建立boundary情形下 先往j + 1走到底 j == 100 05/04 17:45
→ handsomeLin: 時又往下 i + 1下走 總而言之八成會繞完整個matrix 05/04 17:46
→ handsomeLin: 然後你not只用在一個條件下 估計走一走都是True 05/04 17:54
→ handsomeLin: 應該八成原本標記的1都會又會變成0 05/04 17:57