LC200. 岛屿数量
DFS不修改原数组
class Solution(object):def numIslands(self, grid):""":type grid: List[List[str]]:rtype: int"""count = 0row,col = len(grid),len(grid[0])vsd = [[0 for i in range(col)] for j in range(row)]def backtrack(vsd,x,y):vsd[x][y] = 1for nx,ny in [(x+1,y),(x-1,y),(x,y+1),(x,y-1)]:if 0<= nx <row and 0<= ny < col and grid[nx][ny] == "1" and vsd[nx][ny] == 0:backtrack(vsd,nx,ny)for a in range(row):for b in range(col):if grid[a][b] == "1" and vsd[a][b] != 1:count +=1backtrack(vsd,a,b)return count
BFS
class Solution(object):def numIslands(self, grid):""":type grid: List[List[str]]:rtype: int"""count = 0row,col = len(grid),len(grid[0])def bfs(x,y):que = [[x,y]]while que:[x,y]= que.pop(0)if 0 <= x <row and 0 <= y < col and grid[x][y] == "1":grid[x][y] = "0"que += [[x + 1, y], [x - 1, y], [x, y - 1], [x, y + 1]]for i in range(row):for j in range(col):if grid[i][j] == "1":count+=1bfs(i,j)return count
LC200. 岛屿数量相关推荐
- [JS]题解 | #岛屿数量#
题解 | #岛屿数量# 题目链接 岛屿数量 题目描述 时间限制:1秒 空间限制:256M 描述 给一个01矩阵,1代表是陆地,0代表海洋, 如果两个1相邻,那么这两个1属于同一个岛.我们只考虑上下左右 ...
- Leetcode 200. 岛屿数量 解题思路及C++实现
解题思路: 典型的深度优先搜索问题,跟第130题 被围绕的区域 有点像,只不过这里不仅要找出被水包围的岛屿,还要计算这些岛屿的总数. 使用深度优先搜索的方法,大循环是遍历整个grid数组(两个for循 ...
- 岛屿类-网格类问题-DFS | 力扣200. 岛屿数量
本文讲解200. 岛屿数量问题,属于常见的岛屿类-网格类问题 本题使用DFS的思想 1 题目 给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量. 岛屿总是被水包围, ...
- 牛客题霸 [ 岛屿数量] C++题解/答案
牛客题霸 [ 岛屿数量] C++题解/答案 题目描述 给一个01矩阵,1代表是陆地,0代表海洋, 如果两个1相邻,那么这两个1属于同一个岛.我们只考虑上下左右为相邻. 岛屿: 相邻陆地可以组成一个岛屿 ...
- [Leedcode][JAVA][第200题][岛屿数量][DFS][BFS][并查集]
[问题描述] 第200题 岛屿数量 给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量.岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成 ...
- 广度优先搜索——岛屿数量(Leetcode 200)
题目选自Leetcode 200. 岛屿数量 经典的搜索题,求岛屿数量 这里我用的是广度优先搜索BFS 最朴素的方法, 虽然效率不高,但是简单易懂 主要的问题在于:如何确定有多少个岛屿? 每次对一个& ...
- Leetcode 200.岛屿数量
Time: 20190902 Type: Medium 题目描述 给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量.一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地 ...
- 刷题笔记 | 朋友圈、岛屿的最大面积、岛屿数量
1. 朋友圈 班上有 N 名学生.其中有些人是朋友,有些则不是.他们的友谊具有是传递性.如果已知 A 是 B 的朋友,B 是 C 的朋友,那么我们可以认为 A 也是 C 的朋友.所谓的朋友圈,是指所有 ...
- 岛屿数量vs最大正方形
岛屿数量 给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量. 岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成. 此外,你可以假设该网 ...
最新文章
- PHP autoload 函数
- 9大项目实战!tensorflow2.0框架实战(免费资料+干货合集)
- 大数据中台之Kafka,到底好在哪里?
- python做小程序-抖音最火的整蛊表白小程序如何做出来的?教你用python做出
- 【Android 逆向】ELF 文件格式 ( ELF 文件当前版本号 | 操作系统 ABI 信息 | ABI 版本 | 文件头校验 | 文件头长度信息 )
- 【Android 逆向】Android 系统文件分析 ( /system/ 系统命令和系统应用数据目录 | /system/app/ 系统应用目录 | sys Linux 系统内核文件目录 )
- CCAI 2017 中国人工智能大会 6.4 折抢票倒计时!
- Data Structure Problem
- LeetCode 72. 编辑距离(DP)
- 每天进步一点点《SVD学习》
- python local global_Python 关键字global全局变量详解
- proe虚拟服务器,ProE安装以及虚拟网卡的配置
- java websocket 后台服务器_Unity3D与Java后台TomCat服务器传递数据和文件(1)建立Java服务器...
- ajax 将输入框内容清空_Robot Framework清空输入框文本内容
- Error:java: Compilation failed: internal java compiler error or source 1.5 提升版本
- idea配置tomcat热部署
- 利用PLC1200和elmo驱动器对maxon RE40电机的两种控制方式(PWM(PTO)或者模拟量控制)
- 对比线程,一个VCPU是什么
- 计算机替换字体怎么操作,字体管家怎么换字体 电脑更换字体的教程介绍
- 14年第五届蓝桥杯C/C++大学B组真题———史丰收算法