連通分爲3中算法
1.直連。.net
分爲兩種狀況,一種二者之間相鄰。另外一種是二者之間已經沒有有效的Block遞歸
2.一個折點rem
將兩個點視爲一個矩形的對角頂點,另一對對角頂點只要有一個符合直連的狀況,則符合一個折點的連通條件get
3.兩個折點源碼
從圖中所示,能夠將兩個折點的問題變成一個折點的問題。import
即:搜索
將第一個選擇點做爲種子點,而後沿着4個方向,在棋盤中分別搜索。下載
沿着一個方向,每次前進一步,判斷是否爲一個折點連通。若是是,則代表兩個折點連通成立。固然在前進方向上若是遇到一個有效的Block,則該方向上搜索失敗。im
而若是沿着一個方向一直到了邊界,則越過邊界,找到對應的另外一個折點,判斷折點和兩一個選擇點是否水平直通便可。
該算法其實最重要的思路是,將複雜的問題,遞歸簡化爲簡單的問題解答。
總的來講,判斷是否連通: