LintCode 433. 岛屿的个数 JavaScript算法
描述
给一个 01 矩阵,求不同的岛屿的个数。
0 代表海,1 代表岛,如果两个 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- 样例 2:输入:
[[1,1]
]
输出:1
解析
const numIslands = grid => {if(!grid || grid.length === 0){return 0;}let len = grid.length;let size = grid[0].length;let island = 0;// 方向向量let dx = [-1,1,0,0];let dy = [0,0,-1,1];// dfs 推平function sink(i,j){// terminatorif(grid[i][j] == '0'){return 0;}// processgrid[i][j] = '0';// drill downfor(var k = 0;k< dx.length;k++){var x = i + dx[k];var y = j + dy[k];if(x >= 0 && x < grid.length && y >=0 && y<grid[i].length){if(grid[x][y] == '1'){sink(x,y)}}}return 1;}for(var i = 0;i<len;i++){for(var r = 0;r<grid[i].length;r++){if(grid[i][r] == 1){island += sink(i,r);}}}return island;
}
运行结果
LintCode 433. 岛屿的个数 JavaScript算法相关推荐
- LintCode 434. 岛屿的个数II(并查集)
文章目录 1. 题目 2. 解题 1. 题目 给定 n, m, 分别代表一个二维矩阵的行数和列数, 并给定一个大小为 k 的二元数组A. 初始二维矩阵全0. 二元数组A内的k个元素代表k次操作, 设第 ...
- LintCode 1228. 可怜的猪 JavaScript算法
描述 有1000个桶,有且仅有一个桶里面装了毒药,其他的都装了水.这些桶从外面看上去完全相同.如果一只猪喝了毒药,它将在15分钟内死去.在一个小时内,至少需要多少只猪才能判断出哪一个桶里装的是毒药呢? ...
- lintcode:Number of Islands 岛屿的个数
题目: 岛屿的个数 给一个01矩阵,求不同的岛屿的个数. 0代表海,1代表岛,如果两个1相邻,那么这两个1属于同一个岛.我们只考虑上下左右为相邻. 样例 在矩阵: [[1, 1, 0, 0, 0],[ ...
- LintCode 岛屿的个数
题目: 给一个01矩阵,求不同的岛屿的个数. 0代表海,1代表岛,如果两个1相邻,那么这两个1属于同一个岛.我们只考虑上下左右为相邻. 样例 在矩阵: [[1, 1, 0, 0, 0],[0, 1, ...
- JavaScript算法与数据结构——字典详解
字典是一种以键-值对的形式存储数据的数据结构,接下来我们将使用JavaScript实现字典数据结构. 1.定义字典类 由于比较字典数据结构比较简单,就直接上代码好了. class Dictionary ...
- JavaScript算法相关
1. 排序 1.1.冒泡排序 每一轮比较,从左至右交换相邻,每轮结束,最后一个为最大 下一轮,需要比较的个数 - 1 j < len - i (范围动态缩小) 共 len - 1 轮比较 fun ...
- 九章算法面试题81 岛屿的个数
原文网址: www.jiuzhang.com 问题详情 给一个01矩阵,求不同的岛屿的个数. 0代表海,1代表岛,如果两个1相邻,那么这两个1属于同一个岛.我们只考虑上下左右为相邻. 在线评测本题: ...
- 岛屿的个数java_LeetCode 200:岛屿数量 Number of Islands
题目: 给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量.一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的.你可以假设网格的四个边均被水包围. Given ...
- 岛屿的个数number-of-islands
给一个01矩阵,求不同的岛屿的个数. 0代表海,1代表岛,如果两个1相邻,那么这两个1属于同一个岛.我们只考虑上下左右为相邻. 样例 在矩阵: [[1, 1, 0, 0, 0],[0, 1, 0, 0 ...
最新文章
- 白话经典算法系列之七 堆与堆排序
- 拥抱开源,Office 365开发迎来新时代
- 简单的正则表达式过滤网址
- 2020年高等数学方法与提高(上海理工大学)学习笔记:向量代数与空间解析几何
- GMIS 2017大会漆远演讲:AI 驱动金融生活
- 王建然之欲望和理想的对话
- 区块链行业级应用服务商识数信科获千万元天使轮融资...
- 计算机网络基础:局域网协议相关知识
- python真是最烂的语言_在大型项目上,Python 是个烂语言吗?
- python审计运用_用Python来分析审计行业的这10年
- vmtools 安装不上的方法 我这里介绍下vm14 Ubuntu的系统
- 3DMAX零基础图文教程学习
- 每日单词20110605
- Ant实现自动打包部署
- 微信小程序:经典语录大全微信小程序源码
- NO.35——qq音乐全站分布式爬虫(一)
- 阿里巴巴高级技术专家 至简 聊工程师思维(配音版)
- 2022年海南最新消防设施操作员模拟试题题库及答案
- python调用系统软键盘_python库 pywinio虚拟键盘使用
- IP-guard 双机热备使用说明