200島嶼數量 並查集未寫

2021-10-03 12:01:57 字數 792 閱讀 5878

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

示例 1:

輸入:

輸出: 1

示例 2:

輸入:

輸出: 3

public

intnumislands

(char

grid)

int count =0;

for(

int i =

0; i < grid.length; i++)}

}return count;

}public

void

infect

(char

grid,

int row,

int i,

int col,

int j)

grid[i]

[j]=

'2';

infect

(grid, row, i +

1, col, j)

;infect

(grid, row, i -

1, col, j)

;infect

(grid, row, i, col, j +1)

;infect

(grid, row, i, col, j -1)

;}

200 島嶼數量(並查集 DFS)

200.島嶼數量 方法一 dfs或bfs 遍搜尋遍改變,訪問陣列也不需要 class solution,int r int c public intnumislands char grid return res public void dfs int i,int j,char grid return...

並查集 島嶼數量

解答參考 島嶼數量官方解答 問題描述 給你乙個由 1 陸地 和 0 水 組成的的二維網格,請你計算網格中島嶼的數量。島嶼總是被水包圍,並且每座島嶼只能由水平方向和 或豎直方向上相鄰的陸地連線形成。此外,你可以假設該網格的四條邊均被水包圍。示例 1 輸入 grid 1 1 1 1 0 1 1 0 1 ...

力扣305,島嶼數量,並查集。

島嶼數量 ii 主要的想法是用並查集,改一下並查集的 就好了。假設每個相鄰的兩個格仔之間有條邊。整體的 感覺還能再優化些。首先將建個m n長的陣列parent,表示每個格仔,m n長的陣列rankx用於路徑壓縮。尋根的函式若parent i i那麼就代表這個i位置就是乙個根節點。find root函...