每天一道LeetCode-----给定二维数组代表海域和岛屿,计算有多少个孤岛
Number of Islands
原题链接Number of Islands
给定一个二位数组,其中’0’代表水,’1’代表土地,判断有多少个孤岛被水隔开。假定二位数组四周都是’0’
思路:
遇到一个’1’就代表肯定有孤岛,然后从这个位置开始将所有相邻的’1’都变为’0’
代码如下
class Solution {
public:int numIslands(vector<vector<char>>& grid) {int n = 0;for(int i = 0; i < grid.size(); ++i){for(int j = 0; j < grid[i].size(); ++j){if(grid[i][j] == '1'){++n;convert_to_zero(grid, i, j);}}}return n;}
private:void convert_to_zero(vector<vector<char>>& grid, int i, int j){if(grid[i][j] == '0')return;grid[i][j] = '0';for(auto& dir : dirs){int row = i + dir[0];int col = j + dir[1];if(row < 0 || row >= grid.size() || col < 0 || col >= grid[row].size())continue;convert_to_zero(grid, row, col);}}static vector<vector<char>> dirs;
};vector<vector<char>> Solution::dirs = { {0, 1}, {1, 0}, {0, -1}, {-1, 0} };
每天一道LeetCode-----给定二维数组代表海域和岛屿,计算有多少个孤岛相关推荐
- c#给定二维数组按升序排序_在数组中按升序对数字进行排序| 8086微处理器
c#给定二维数组按升序排序 Problem: Write a program in 8086 microprocessor to sort numbers in ascending order in ...
- C语言求二维数组平均数,一道JavaScript的二维数组求平均数的题
JavaScript中只支持一维数组,但是可以在数组中嵌套数组来创建二维以至于多维的数组.今天下午在看书时候,发现一道感觉比较有意思的题,就是js中如何求二维数组的列之和和行之和,现在就给大家分享下, ...
- 【剑指offer-Java版】03二维数组中的查找
给定二维数组,和一个整数,二维数组的行从左到右递增,列从上到下递增. 查找该二维数组,看是否有和给定整数相等的值 技巧就是找到一个位于[i][j]的值,通过该值判断给定值可能存在于数组的哪一独立部分 ...
- java二维数组的赋值_java二维数组三种初始化方法(实例)
初始化方法: 1.使用大括号直接赋值,适合已经确定知道数组元素的情况 2.给定二维数组的大小 3.数组第二维的长度可变化,未改变 代码举例如下: public class NewArray { pub ...
- java二维数组三种初始化方法(实例)
初始化方法: 1.使用大括号直接赋值,适合已经确定知道数组元素的情况 2.给定二维数组的大小 3.数组第二维的长度可变化,未改变 代码举例如下: public class NewArray {publ ...
- 如何用二维数组输出一个矩形,并求矩形的外围元素之和,主对角线元素之和,副对角线元素之和
给定二维数组a[4][4] 4行4列#include<stdio.h>const int i=4;const int y =4;int main() {int b;int c;int r ...
- 笔试题之反转二维数组
要求: 输入:[[1,2,3],[4,5,6],[7,8,9]] 输出:[[7,8,9],[4,5,6],[1,2,3]] 给定二维数组反转方法: public int[][] convert (in ...
- java二维数组初始化值_Java二维数组初始化的方法
对于一个新使用的工具,我们会进行初步的初始化工具,目的是为了加上一些使用的配置.在学过了一维数组后,那么二维数组是加了一层维度的一维数组.在初始化方面,二维数组有三种方法,相信很多人只是掌握了其中的一 ...
- Java中的二维数组和递归
文章目录 二维数组 数组初始化以及匿名数组 数组拷贝 Java中数组作为参数传递 递归 二维数组 前面已经学习过数组了,了解到数组就是一种容器,用来存储同一类型值的集合,通过下标 / 索引可以访问数组 ...
最新文章
- verilog中如何拆分一个数
- 如何在SQL Management Studio中指定其他端口号?
- halcon旋转后坐标_基于FPGA的图像旋转设计
- Updatepanel与Jquery合用时的问题解决
- MPU6050开发 -- 在 C52 单片机上测试
- 企业环境中UM的规划设计和配置
- 跟我一起考PMP---项目范围管理
- ViewPager+Fragment 组合的预加载和懒加载
- 如何运用领域驱动设计 - 存储库
- Struts2.3.5+Hibernate3+Spring3.1基于注解实现的多文件上传,下载
- 怎么彻底移除虚拟机_Parallels Desktop虚拟机怎么完全卸载? PD虚拟机完全卸载方法...
- linux的文件系统简单介绍
- ecshop Touch笔记
- UNIX环境高级编程(中文第三版)
- 图片base64解码转换
- Matplotlib绘制半圆形
- QQ认证空间已升级QQ公众空间,申请地址是?
- 【第二章 语言及文法】形式语言与自动机第二章个人总结复习笔记分享!(含文件、持续更新...)
- laravel中公共子视图继承实现
- 开闭原则、迪米特法则、合成复用原则
热门文章
- call和apply和bind的区别
- S5P4418/S5P6818核心板EMMC已由原来的4.5版本升级到5.1版本
- 数位dp模板 [dp][数位dp]
- 爸爸我爱您(之十二)
- 开始复习下sql,常用SQL语句示例(一)
- VC6++ output :error executing c:\windows\system32\cmd.exe.
- ffmpeg 0.8.11 VC编译的SDK已经发布
- SqlConnetction类
- [Python人工智能] 三.theano实现分类神经网络及机器学习基础
- HarmonyOS之常用组件TextField的功能和使用