zoukankan      html  css  js  c++  java
  • Leetcode-1031 Number of Enclaves(飞地的数量)

     1 #define _for(i,a,b) for(int i = (a);i < (b);i ++)
     2 #define sz size()
     3 int dx[] = {0,0,1,-1};
     4 int dy[] = {1,-1,0,0};
     5 class Solution
     6 {
     7     public:
     8         void floodfill(vector<vector<int>>& A,int i,int j)
     9         {
    10             A[i][j] = 0;
    11             _for(k,0,4) 
    12             {
    13                 int nx = i+dx[k];
    14                 int ny = j+dy[k];
    15                 if(nx>=0&&ny>=0&&nx<A.size()&&ny<A[nx].size() && A[nx][ny]==1)
    16                     floodfill(A,nx,ny);
    17             }
    18         }
    19         int numEnclaves(vector<vector<int>>& A)
    20         {
    21             _for(i,0,A.sz)
    22                _for(j,0,A[i].sz)
    23                     if(A[i][j]==1 && (i==0||i==A.size()-1||j==0||j==A[i].size()-1))
    24                         floodfill(A,i,j);
    25 
    26             int res = 0;
    27             _for(i,0,A.sz)
    28                _for(j,0,A[i].sz)
    29                     if(A[i][j]==1)
    30                         res ++;
    31             return res;
    32         }
    33 };

    flood fill

  • 相关阅读:
    传纸条
    金明的预算方案
    矩阵取数
    能量项链
    选择客栈
    过河
    乌龟棋
    逢低吸纳
    三角形牧场
    多米诺骨牌
  • 原文地址:https://www.cnblogs.com/Asurudo/p/10630810.html
Copyright © 2011-2022 走看看