83 島嶼的個數

2021-09-19 17:21:41 字數 1356 閱讀 9320

題目描述:

給定乙個由 『1』(陸地)和 『0』(水)組成的的二維網格,計算島嶼的數量。乙個島被水包圍,並且它是通過水平方向或垂直方向上相鄰的陸地連線而成的。你可以假設網格的四個邊均被水包圍。

示例 1:

輸入:11110

11010

11000

00000

輸出: 1

示例 2:

輸入:11000

11000

00100

00011

輸出: 3

使用bfs演算法,當然也可以使用lru

**:

class solution 

int result = 0;

int x = ;

int y = ;

for (int i = 0; i < grid.length; i++) );

while (!tem.isempty()) );

grid[temx][temy] = '0';}}

}}

} }

} return result;

}}

dfs就是比bfs快

class solution 

int result = 0;

int x = ;

int y = ;

for (int i = 0; i < grid.length; i++)

}}

return result;

}public void dfs(char grid,int row,int col)

if(grid[row][col] == '1')

}}

lru演算法實現

class solution 

int x = ;

int y = ;

int m = grid.length;

int n = grid[0].length;

int root = new int[m * n];

// 初始化

for (int i = 0; i < m; i++)

}} system.out.println(result);

// 進行合併操作

for (int i = 0; i < m; i++) }}

}}

return result;

}public void unio(int root,int date1,int date2)

root[x1] = x2;

} public int find(int root,int date)

}

島嶼的個數

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

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...