難度 中等
這道題不久前做過舟肉,知道大概的算法,所以迅速通過黄琼。如果操作是遍歷數(shù)組整慎,對(duì)于等于1的位置脏款,將與其關(guān)聯(lián)的1修改為其它值裤园,最終1的數(shù)量就是島嶼數(shù)量。
執(zhí)行用時(shí) :2 ms, 在所有 Java 提交中擊敗了96.16%的用戶
內(nèi)存消耗 :42.2 MB, 在所有 Java 提交中擊敗了6.25%的用戶
public int numIslands(char[][] grid) {
int count = 0;
for(int i = 0; i < grid.length; i++){
for(int j = 0; j < grid[0].length; j++){
if(grid[i][j] == 49){
count++;
merge(grid, i, j);
}
}
}
return count;
}
public void merge(char[][] grid, int x, int y){
if(x < 0 || x > grid.length-1 || y < 0 || y > grid[0].length-1 || grid[x][y] != 49){
return;
}
grid[x][y] = 50;
merge(grid, x-1, y);
merge(grid, x+1, y);
merge(grid, x, y-1);
merge(grid, x, y+1);
}