演算法題 島嶼數量 深度優先搜尋

2021-10-01 21:42:59 字數 738 閱讀 9111

昨天在leetcode做的一道題,記錄下:

給定乙個由 『1』(陸地)和 『0』(水)組成的的二維網格,計算島嶼的數量。乙個島被水包圍,並且它是通過水平方向或垂直方向上相鄰的陸地連線而成的。你可以假設網格的四個邊均被水包圍。

示例 1:

輸入:11110

11010

11000

00000

輸出: 1

示例 2:

輸入:11000

11000

00100

00011

輸出: 3

我的**

public

class

dfsfor

(i=0

;i}return count;

}public

static

void

dfs(

char

grid,

int i,

int j)

else

return;}

else

return;}

public

static

void

main

(string[

] args),,

,}; system.out.

println

(numislands

(grid));

}}

廣度優先搜尋,島嶼數量

當找到初始 1 的時候,將其座標入隊,依據佇列的fifo特性,從佇列中取出座標,對其座標的上下左右元素進行訪問。遞迴形式簡潔易懂 class solution object defnumislands self,grid int iflen grid 0 return 0else self.rows...

島嶼數量(BFS廣度優先搜尋 佇列)

題目 給定乙個由 1 陸地 和 0 水 組成的的二維網格,計算島嶼的數量。乙個島被水包圍,並且它是通過水平方向或垂直方向上相鄰的陸地連線而成的。你可以假設網格的四個邊均被水包圍。示例 1 輸入 11110 11010 11000 00000 輸出 1 示例 2 輸入 11000 11000 0010...

通過求島嶼的數量,學習深度優先搜尋和廣度優先搜尋

示例 2 輸入 11000 11000 00100 00011 輸出 3 廣度優先搜尋 也稱寬度優先搜尋,縮寫bfs,以下採用廣度來描述 是連通圖的一種遍歷演算法這一演算法也是很多重要的圖的演算法的原型。dijkstra單源最短路徑演算法和prim最小生成樹演算法都採用了和寬度優先搜尋類似的思想。其...