代碼如下:
@tail_call_optimized
def dfs(idx, imsize, lbl):
if not inarea(idx, imsize):
return False
if hydro_band[idx[0], idx[1]] != lbl:
return False
hydro_band[idx[0], idx[1]] = 0
mark(idx, imsize, lbl)
dfs([idx[0] - 1, idx[1]], imsize, lbl)
dfs([idx[0], idx[1] + 1], imsize, lbl)
dfs([idx[0] + 1, idx[1]], imsize, lbl)
dfs([idx[0], idx[1] - 1], imsize, lbl)
return True

圖只是一個示意圖,第一次遇到超出范圍的格子或者值不為1的格子,return會結束整個遞回,而不是回到上一層,也就是4個dfs,下面3個根本不會執行。這是為什么呢?
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/285147.html
上一篇:亮度與色階
下一篇:如何把阿里這樣的系統給黑
