• LeetCode 200. 岛屿的个数


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

    示例 1:

    输入:
    11110
    11010
    11000
    00000
    
    输出: 1
    

    示例 2:

    输入:
    11000
    11000
    00100
    00011
    
    输出: 3
     1 class Solution {
     2 public:
     3     int n,m;
     4     int numIslands(vector<vector<char>>& grid) {
     5         if(grid.empty() || grid[0].empty()) return 0;
     6         vector<pair<int,int>> directs={{-1,0},{1,0},{0,1},{0,-1}};
     7         m=grid.size();
     8         n=grid[0].size();
     9         vector<vector<bool> > visited(m,vector<bool>(n,false));
    10         int res=0;
    11         for(int i=0;i<m;i++){
    12             for(int j=0;j<n;j++){
    13                 if(!visited[i][j] && grid[i][j]=='1') {
    14                     helper(grid,visited,directs,i,j);
    15                     res++;
    16                 }
    17             }
    18         }
    19         return res;
    20     }
    21     void helper(vector<vector<char> >& grid,vector<vector<bool> >& visited,vector<pair<int,int> >& directs,int i,int j){
    22         if(i<0 || j<0 || i>=m || j>=n || visited[i][j] || grid[i][j]=='0') return;
    23         visited[i][j]=true;
    24         for(auto direct:directs){
    25             helper(grid,visited,directs,i+direct.first,j+direct.second);
    26         }
    27     }
    28 };
  • 相关阅读:
    74HC165并转串级联芯片学习记录
    道砟电阻 钢轨阻抗 列车分路电阻
    电压的有效值、平均值与峰值
    铁路信号继电器
    C语言语法记录
    程序编译过程中错误记录
    min-max容斥
    矩阵树定理
    题解 SP1812 【LCS2
    杜教筛
  • 原文地址:https://www.cnblogs.com/Jawen/p/10872593.html
Copyright © 2020-2023  润新知