(M)DFS:200. Number of Islands
来源:互联网 发布:林殊是很宠霓凰的知乎 编辑:程序博客网 时间:2024/05/16 14:14
这个题的意思是求岛屿的个数。给出一个由0和1构成的表格,一个岛屿是一个1和他们相邻的1构成,并且一个岛屿周围都是0,问岛屿的个数。
我的做法是新开辟了一个同样大小的表格记录这个位置是否已经查看过。如果一个位置没有被查看过并且在给出的表格里值为1,那么对这个位置上下左右的相邻位置上进行dfs递归查找。
class Solution {public: int numIslands(vector<vector<char>>& grid) { if(grid.empty()) return 0; int m = grid.size(), n = grid[0].size(); vector<vector<int>> visited(m, vector<int>(n, 0)); int cnt = 0; for(int i = 0; i < m; ++i) { for(int j = 0; j < n; ++j) { if(visited[i][j] == 0) { if(grid[i][j] == '1') { dfs(grid, visited, i, j); cnt++; } } } } return cnt; } void dfs(vector<vector<char>>& grid, vector<vector<int>>& visited, int i, int j) { if(i < 0 || i >= grid.size() || j < 0 || j >= grid[0].size()) return; if(visited[i][j] == 1) return; visited[i][j] = 1; if(grid[i][j] == '1') { dfs(grid, visited, i+1, j); dfs(grid, visited, i, j + 1); dfs(grid, visited, i-1, j); dfs(grid, visited, i, j - 1); } }};
阅读全文
0 0
- (M)DFS:200. Number of Islands
- DFS---Number of Islands
- LeetCode:M-200. Number of Islands
- LeetCode 200. Number of Islands (DFS)
- leetcode 200. Number of Islands DFS
- LeetCode Number of Islands DFS
- 200. Number of Islands
- 200. Number of Islands
- 200. Number of Islands
- 200. Number of Islands
- 200. Number of Islands
- 200. Number of Islands
- 200. Number of Islands
- 200. Number of Islands
- 200. Number of Islands
- 200. Number of Islands
- 200. Number of Islands
- 200. Number of Islands
- 【Linux】常用命令总结
- 旅行商问题
- Map的迭代
- 英文好文:项目经理应该把30%的时间用在编程上
- 服务器开发必读书籍
- (M)DFS:200. Number of Islands
- 约瑟夫问题c++
- 【BigHereo 25】---L3---C++函数模板
- 【Linux文件目录命令】cat命令
- python 爬小说
- Tp5使用date函数突然报错
- 练习题L1-002. 打印沙漏
- 【Linux文件目录命令】nl命令
- 【java基础】java中异常的分类、区别、表现形式、原则及注意事项!