[LintCode 433] 岛屿的个数(Python)
来源:互联网 发布:淘宝店怎样设置客服 编辑:程序博客网 时间:2024/05/17 01:28
题目描述
给一个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个岛。
思路
深度优先思想。遍历矩阵的每个元素,如果为1则计数加一,同时把自己和周围的元素都置0。
代码
class Solution: # @param {boolean[][]} grid a boolean 2D matrix # @return {int} an integer def numIslands(self, grid): # Write your code here if grid is None: return None m = len(grid) if m == 0: return 0 n = len(grid[0]) if n == 0: return 0 res = 0 for i in range(m): for j in range(n): if grid[i][j]: res += 1 self.dfs(grid, i, j) return res def dfs(self, grid, i, j): if i < 0 or j < 0 or i >= len(grid) or j >= len(grid[0]): return if grid[i][j]: grid[i][j] = 0 self.dfs(grid, i + 1, j) self.dfs(grid, i - 1, j) self.dfs(grid, i, j - 1) self.dfs(grid, i, j + 1)
阅读全文
0 0
- [LintCode 433] 岛屿的个数(Python)
- lintcode python代码 433岛屿个数
- LintCode 岛屿的个数
- 岛屿的个数-lintcode
- LintCode:岛屿的个数
- 岛屿的个数-LintCode
- 岛屿的个数(LintCode)
- LintCode 433. 岛屿的个数
- Lintcode解题笔记 - 岛屿的个数
- LintCode——岛屿的个数
- 433-岛屿的个数
- 题目:岛屿的个数
- LinkCode-岛屿的个数
- 岛屿的个数
- 岛屿的个数
- 岛屿的个数
- 岛屿的个数
- 岛屿的个数
- setFocusable与setFocusableInTouchMode差异以及clickable
- 链表--稀疏矩阵
- Palindrome Number判断回文数
- js注入实现分析
- 2017.8.22学习日志——php添加datepicker并对比大小
- [LintCode 433] 岛屿的个数(Python)
- lintcode Range Sum Query 2D
- vue嵌套路由-query传递参数(三)
- 关闭软键盘的方法
- centos安装python3
- 【物联网云端对接-3】通过MQTT协议与微软Azure IoT Hub进行云端通信
- typeof检测到的数据类型有哪些?
- 代理模式
- POJ