給定乙個由 『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...