給定乙個由'1'
(陸地)和'0'
(水)組成的的二維網格,計算島嶼的數量。乙個島被水包圍,並且它是通過水平方向或垂直方向上相鄰的陸地連線而成的。你可以假設網格的四個邊均被水包圍。
示例 1:
輸入:
11110
11010
11000
00000
輸出: 1
示例 2:
輸入:
11000
11000
00100
00011
輸出: 3
解題思路:另外建立乙個二維陣列將土地以及它的邊界記錄,則當遇到乙個在原二維陣列為1(土地),而在新的二維陣列中為0(沒有訪問過)。則為乙個新的島嶼。
**如下:
class solution
char visit=new char[grid.length][grid[0].length];
for(int i=0;igrid.length-1||j<0||j>grid[0].length-1)else if(grid[i][j]=='0')else if(visit[i][j]=='1')else
}}public class main,,};
solution solve=new solution();
int num=solve.numislands(grid);
system.out.println(num);
}}
感謝下面參考鏈結的博主。 leetcode 島嶼的個數
給定乙個由 1 陸地 和 0 水 組成的的二維網格,計算島嶼的數量。乙個島被水包圍,並且它是通過水平方向或垂直 方向上相鄰的陸地連線而成的。你可以假設網格的四個邊均被水包圍。示例 1 輸入 11110 11010 11000 00000 輸出 1 示例 2 輸入 11000 11000 00100 ...
leetcode島嶼的個數
給定乙個由 1 陸地 和 0 水 組成的的二維網格,計算島嶼的數量。乙個島被水包圍,並且它是通過水平方向或垂直方向上相鄰的陸地連線而成的。你可以假設網格的四個邊均被水包圍。示例 1 輸入 11110 11010 11000 00000 輸出 1示例 2 輸入 11000 11000 00100 00...
200 島嶼數量 leetcode
思路 深度遍歷 1.第一層main函式裡 兩層迴圈找 grid x y 1 的點 res 1 2.遞迴函式裡,把與該點四個方向相鄰的,值為 1 的點全部標0 標0方法 對座標 x,y 四個方向中 值 1 的賦0 再遞迴。注意 1.對於二維陣列,判空要用 if len grid 0 return 0 ...