leetcode 島嶼的個數

2021-09-12 10:52:51 字數 1117 閱讀 3178

給定乙個由 『1』(陸地)和 『0』(水)組成的的二維網格,計算島嶼的數量。乙個島被水包圍,並且它是通過水平方向或垂直

方向上相鄰的陸地連線而成的。你可以假設網格的四個邊均被水包圍。

示例 1:

輸入:11110

11010

11000

00000

輸出: 1

示例 2:

輸入:11000

11000

00100

00011

輸出: 3

我們設定:當第一次遇見值為1的時候,就對周邊上下左右的1都進行感染,那麼屬於這個島的1就會被一次感染完。如果遇到其他島嶼的1的話,重複以上操作。我們可以根據幾次感染的次數對島嶼的個數進行估計,最後就可以得到我們需要統計的島嶼的個數。

package codingtest6;

public class numislands

int n = grid.length;

int m = grid[0].length;

int res = 0;

for(int i = 0; i < n; i++)

}}

return res;

}public static void infect(int m, int i, int j, int n, int m)

m[i][j] = 2;

infect(m, i+1, j, n, m);//感染它的上乙個數

infect(m, i-1, j, n, m);//感染它的下乙個數

infect(m, i, j+1, n, m);//感染它的左乙個數

infect(m, i, j-1, n, m);//感染它的右乙個數 }

public static void main(string args) ,,,

,};int m2 = ,,,

,};int m3 = ,,,

,};system.out.println(numislands(m1));

system.out.println(numislands(m2));

system.out.println(numislands(m3));

}}

leetcode島嶼的個數

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

leetcode 200島嶼的個數

主要考察圖搜尋 方法一 染色法,時間o mn 遍歷一遍,再通過bfs或dfs將所有臨近島嶼染色,使用dfs時將numislands中的bfs換成dfs即可 遍歷所有的點 只要遇見陸地 1 投放1枚原子彈,衝擊波以bfs或dfs的形式向外擴散,使得自身及所有相鄰區域全部夷為平地 最終遍歷結束,原子彈使...

LeetCode 200 島嶼的個數

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