這一個月以來,都在學習平面上的地圖搜索,主要涉及到深度優(yōu)先搜索(DFS)和廣度優(yōu)先搜索(BFS)。這兩個算法和相關數(shù)據(jù)結構我整整學習了一個月,中間經(jīng)歷了很多對自己畏難情緒的克服,現(xiàn)在終于搞懂了,不過并沒有掌握得很好。要想掌握得很好,需要后期編碼來鞏固加強了。

先從這道leetcode上面的題目作為引子:

Number of islands(200)

Given a 2d grid map of ‘1’s (land) and ‘0’s (water), count the number of islands.An island is surrounded by water and is formed by connecting adjacent lands horizontally or vertically.You may assume all four edges of the grid are all surrounded by water.

   大數(shù)據(jù)培訓,云培訓,數(shù)據(jù)挖掘培訓,云計算培訓,高端軟件開發(fā)培訓,項目經(jīng)理培訓

  開始看到這道題目時,我的內(nèi)心是崩潰的。因為我完全是連題目都看不懂,什么是islands?

  islands定義

(1)被water包圍;

(2)被水平或者垂直lands相連。

(3)一個只包含0和1的二維數(shù)組,找到里面不相鄰的只包含1的塊的個數(shù)。

 

然后看到答案,說解決這道題既可以用到DFS,又可以用到BFS。之前對DFS還有一點點接觸,然后BFS就非常頭大了。只要遍歷一遍,碰到一個1,就把他周圍相鄰的1都標記為非1,這樣整個遍歷過程中碰到的1的個數(shù)就是所求解。 

 

延伸閱讀

學習是年輕人改變自己的最好方式-Java培訓,做最負責任的教育,學習改變命運,軟件學習,再就業(yè),大學生如何就業(yè),幫大學生找到好工作,lphotoshop培訓,電腦培訓,電腦維修培訓,移動軟件開發(fā)培訓,網(wǎng)站設計培訓,網(wǎng)站建設培訓學習是年輕人改變自己的最好方式