給乙個01矩陣,求不同的島嶼的個數。0代表海,1代表島,如果兩個1相鄰,那麼這兩個1屬於同乙個島。我們只考慮上下左右為相鄰。樣例
在矩陣:
[
[1, 1, 0, 0, 0],
[0, 1, 0, 0, 1],
[0, 0, 0, 1, 1],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 1]
]
中有3
個島.【借鑑網上**整理得】
public class solution ,並不是null所以不能用grid==null來判斷是否為空
if (row == 0 )
//當為空陣列時 col賦值會報錯 陣列越界
int col = grid[0].length;
int count = 0;
/*或者設定乙個陣列 標記該位置是否判斷過 節省時間
boolean visited = new boolean[row][col];
for (int i = 0; i < row; i++)
}*///採用遞迴 深度搜尋 搜尋之後的位置重置為0
for (int i = 0; i < row; i++)}}
return count;
}public void dfs(boolean grid, int x, int y)
// if (visited[x][y])
grid[x][y] = false;//訪問過得位置置為0 節省時間
dfs(grid, x - 1, y);
dfs(grid, x + 1, y);
dfs(grid, x, y - 1);
dfs(grid, x, y + 1);}}
433 島嶼的個數
4.11 陣列統一賦值的函式arrays.fill 感覺自己的想法很野啊,用總的點的個數去減。就是要注意邊界值,陣列是從下標0開始的,一定要注意。public class solution 行數 int m grid 0 length if m 0 列數 int count m n boolean ...
島嶼的個數 LintCode
給乙個01矩陣,求不同的島嶼的個數。0代表海,1代表島,如果兩個1相鄰,那麼這兩個1屬於同乙個島。我們只考慮上下左右為相鄰。樣例 在矩陣 1,1,0,0,0 0,1,0,0,1 0,0,0,1,1 0,0,0,0,0 0,0,0,0,1 中有 3 個島.思路 利用遞迴,將與當前島嶼相接壤的島存入ma...
200 島嶼的個數
題目描述 給定乙個由 1 陸地 和 0 水 組成的的二維網格,計算島嶼的數量。乙個島被水包圍,並且它是通過水平方向或垂直方向上相鄰的陸地連線而成的。你可以假設網格的四個邊均被水包圍。示例 1 輸入 11110 11010 11000 00000 輸出 1示例 2 輸入 11000 11000 001...