岛屿的个数-lintcode
来源:互联网 发布:qq暴力强制视频软件 编辑:程序博客网 时间:2024/04/30 04:32
此题用到了深度搜索的思想,在depth_search()中,首先判断边界条件和是否为0的点,然后对该点的上下左右进行depth_search():
class Solution: # @param {boolean[][]} grid a boolean 2D matrix # @return {int} an integer def numIslands(self, grid): if len(grid) == 0 or len(grid[0]) == 0: return 0 self.rows = len(grid) self.clos = len(grid[0]) self.count = 0 for i in range(self.rows): for j in range(self.clos): if grid[i][j] == 1: self.depth_search(grid, i, j) self.count += 1 return self.count def depth_search(self, grid, i, j): if i < 0 or i >= self.rows or j < 0 or j >= self.clos: return if grid[i][j] == 0: return grid[i][j] = 0 if i < self.rows-1: self.depth_search(grid, i+1, j) if j < self.clos - 1: self.depth_search(grid, i, j+1) if i > 0: self.depth_search(grid, i-1, j) if j > 0: self.depth_search(grid, i, j-1)
C++代码:
class Solution {public: /** * @param grid a boolean 2D matrix * @return an integer */ int numIslands(vector<vector<bool>>& grid) { if (grid.size() == 0 || grid[0].size() == 0) { return 0; } int count = 0; int rows = grid.size(); int clos = grid[0].size(); for (int i =0; i<rows; i++){ for (int j =0; j<clos; j++) { if (grid[i][j] == true) { depth_search(grid, i, j); count++; } } } return count; } void depth_search(vector<vector<bool>>& grid, int i, int j) { if(i<0 || i>grid.size()-1 || j>grid[0].size()-1 || j<0 ) return; if (grid[i][j] == false) return; grid[i][j] = false; if (i>0) depth_search(grid, i-1, j); if (i<grid.size()-1) depth_search(grid, i+1, j); if (j>0) depth_search(grid, i, j-1); if (j<grid[0].size()-1) depth_search(grid, i, j+1); }};
0 0
- LintCode 岛屿的个数
- 岛屿的个数-lintcode
- LintCode:岛屿的个数
- 岛屿的个数-LintCode
- 岛屿的个数(LintCode)
- LintCode 433. 岛屿的个数
- Lintcode解题笔记 - 岛屿的个数
- LintCode——岛屿的个数
- [LintCode 433] 岛屿的个数(Python)
- lintcode python代码 433岛屿个数
- 题目:岛屿的个数
- LinkCode-岛屿的个数
- 岛屿的个数
- 岛屿的个数
- 岛屿的个数
- 岛屿的个数
- 433-岛屿的个数
- 岛屿的个数
- S5PV210-看门狗(watchdog)
- spring 多数据源
- Android Java到OMX 调用流程(未完待续...)
- ListView的优化与刷新
- Android6.0 不同方式安装apk copy lib流程
- 岛屿的个数-lintcode
- GlassFish4 J2EE7 linux 服务器配置 快速入门
- 01自串
- Android开发基础
- lintcode,翻转字符串
- 基于模型融合的推荐系统实现(1):基于SGD的PMF
- 百度机器学习实习面试经历
- 基础练习 字母图形
- test