LeetCode 200. Number of Islands


LeetCode题解专栏:LeetCode题解
LeetCode 所有题目总结:LeetCode 所有题目总结
大部分题目C++,Python,Java的解法都有。


题目地址:


Given a 2d grid map of '1’s (land) and '0’s (water), count the number of islands. An island is surrounded by water and is formed by connecting adjacent lands horizontally or vertically. You may assume all four edges of the grid are all surrounded by water.

Example 1:

Input:
11110
11010
11000
00000Output: 1

Example 2:

Input:
11000
11000
00100
00011Output: 3

c++ dfs解法

class Solution {public:int numIslands(vector<vector<char>>& grid){int nr = grid.size();if(nr <= 0){return 0;}int nc = grid[0].size();int num_islands = 0;for(int r = 0; r < nr; r++){for(int c = 0; c < nc; c++){if(grid[r][c] == '1'){num_islands++;dfs(grid,r,c);  }}}return num_islands;}private:void dfs(vector<vector<char>>& grid, int r, int c){int nr = grid.size();int nc = grid[0].size();grid[r][c] = '0';//Apply Depth first search coming from all directionsif(r-1 >=0 && grid[r-1][c] == '1'){dfs(grid,r-1,c);}if(r+1 < nr && grid[r+1][c] == '1'){dfs(grid,r+1,c);}if(c-1 >= 0 && grid[r][c-1] == '1'){dfs(grid,r,c-1);}if(c+1 < nc && grid[r][c+1] == '1'){dfs(grid,r,c+1);}}
};

LeetCode 200. Number of Islands--c++ dfs解法相关推荐

  1. LeetCode 200. Number of Islands

    Given a 2d grid map of '1's (land) and '0's (water), count the number of islands. An island is surro ...

  2. [LeetCode.200]Number of Islands

    问题描述 Given a 2d grid map of '1's (land) and '0's (water), count the number of islands. An island is ...

  3. leetcode 200. Number of Islands | 200. 岛屿数量(Java)

    题目 https://leetcode-cn.com/problems/number-of-islands/ 题解 class Solution {public int numIslands(char ...

  4. 200. Number of Islands**(岛屿数量)

    200. Number of Islands**(岛屿数量) https://leetcode.com/problems/number-of-islands/ 题目描述 Given an m x n ...

  5. 200.Number of Islands

    /** 200.Number of Islands * 2016-4-3 by Mingyang* union 什么:两个相邻的1元素* union 目的:union后计数union集合数量(通过计数 ...

  6. 【Leetcode】Number of Islands

    题目链接:https://leetcode.com/problems/number-of-islands/ 题目: Given a 2d grid map of '1's (land) and '0' ...

  7. 岛屿的个数java_LeetCode 200:岛屿数量 Number of Islands

    题目: 给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量.一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的.你可以假设网格的四个边均被水包围. Given ...

  8. 【LeetCode 剑指offer刷题】回溯法与暴力枚举法题6:Number of Islands

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) Number of Islands Given a 2d grid map of '1's (land) and ' ...

  9. 2312、卖木头块 | 面试官与狂徒张三的那些事(leetcode,附思维导图 + 全部解法)

    零 标题:算法(leetcode,附思维导图 + 全部解法)300题之(2312)卖木头块 一 题目描述 二 解法总览(思维导图) 三 全部解法 面试官:看你准备得差不多了,我们开始面试吧. 狂徒张三 ...

最新文章

  1. OpenVINO开发教程之八 – 道路分割
  2. 理解int的存储方式以及VS二进制编辑器的使用
  3. Caffe实践】如何利用Caffe训练ImageNet分类网络
  4. authentication list default is not defined for PPP
  5. 概率论-第一章 概率论的基本概念
  6. 用稳压管保护单片机引脚_零基础入门单片机(2)学会控制IO引脚你就入门啦
  7. html透明度_学好Web前端开发,必要了解的HTML+CSS的技巧有哪些
  8. 十种常用编程语言特点
  9. 数据流计算模型及其在大数据处理中的应用
  10. oracle导出报错04063,Oracle EXP导出报错的解决方法
  11. 飞机上终于能开着手机连 Wi-Fi 了,它背后的技术原理是什么?
  12. 线代中最基础的两种玩法
  13. 信息系统安全等级保护基本要求_继电保护对电力系统安全运行至关重要,电网对它的基本要求有哪些...
  14. [.NET开发] C#面向服务WebService从入门到精通
  15. 网络计算机信号属于什么信号,数字信号
  16. 绕过AppLocker系列之弱路径规则的利用
  17. java语言中标识符大小写不敏感_下列叙述中,正确的是()。A.Java语言的标识符是区分大小写的B.源文件名与public类名可...
  18. 怎么把pdf转换成excel
  19. 双视图特征点匹配———使用RANSAC法剔除误差点
  20. Google谷歌拼音输入法

热门文章

  1. RDKit:化学指纹(Chemical Fingerprinting)
  2. 远程打包linux成镜像,ubuntu18.04 现有系统打包成镜像
  3. mysql groupby having_mysql group by having的使用方法
  4. hashmap 扩容是元素还是数组_HashMap的扩容机制---resize()
  5. VSCode 中利用 Remote SSH 连接远程服务器
  6. pandas使用isna函数和any函数计算返回dataframe中包含缺失值的数据行(rows with missing values in dataframe)
  7. R语言optimize函数一维优化实战
  8. R语言ggplot2可视化分面图(faceting):自定义分面图可视化、ggplot2可视化分面图并移除分面图之间的边框线条(Remove Panel Border Lines in a facet
  9. Python基于MASK信息抽取ROI子图实战:原始影像和mask文件都是二维的情况
  10. R语言生存分析模型简介及survival包实现实战:基于survival包lung数据集