岛屿的个数
来源:互联网 发布:php字符替换函数 编辑:程序博客网 时间:2024/04/30 07:45
描述
给一个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
个岛.
解题思路:深度遍历 dfs
代码:
class Solution {public: /** * @param grid a boolean 2D matrix * @return an integer */ int step[4][2] = {{-1,0},{1,0},{0,-1},{0,1}}; int numIslands(vector<vector<bool>>& grid) { // Write your code here int n = grid.size(); if(n < 1) return 0; int m = grid[0].size(); int count = 0; for(int i = 0; i < n; i++){ for(int j = 0; j < m; j++){ if(grid[i][j] == true){ dfs(grid,i,j); count++; } } } return count; } void dfs(vector<vector<bool>>& grid, int i, int j){ grid[i][j] = false; for(int k = 0; k < 4; k++){ int x = step[k][0] + i; int y = step[k][1] + j; if(x >= 0 && x < grid.size() && y >= 0 && y < grid[0].size() && grid[x][y] == true){ dfs(grid,x,y); } } return; }};
0 0
- 题目:岛屿的个数
- LintCode 岛屿的个数
- LinkCode-岛屿的个数
- 岛屿的个数
- 岛屿的个数
- 岛屿的个数-lintcode
- 岛屿的个数
- 岛屿的个数
- LintCode:岛屿的个数
- 433-岛屿的个数
- 岛屿的个数
- 岛屿的个数-LintCode
- 岛屿的个数(LintCode)
- LintCode 433. 岛屿的个数
- Java实现-岛屿的个数
- 岛屿个数
- Lintcode解题笔记 - 岛屿的个数
- LintCode——岛屿的个数
- [BASIC-28]-Huffuman树(java)
- nyoj12 喷水装置(二)
- Oracle数据库学习笔记
- 一名程序员老司机在工作中的一点总结
- 阿里字体库的运用(网站上面的购物车或者一些小图标 箭头)
- 岛屿的个数
- C++资源
- ubuntu16.04使用vundle安装YouCompleteMe
- 反射1——Class类与Java反射
- MTK Android 编译命令【转】
- 太阳公司
- 小飞鱼 通达OA二次开发网络课程 系列视频课程在CSDN发布
- 换个思路脱360APP壳
- 聚类算法K-means与K-mediod(PMA)原理