島嶼的個數

2021-07-12 05:59:41 字數 894 閱讀 4706

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