zoukankan      html  css  js  c++  java
  • [leetcode-695-Max Area of Island]

    Given a non-empty 2D array grid of 0's and 1's, an island is a group of 1's (representing land) connected 4-directionally (horizontal or vertical.) You may assume all four edges of the grid are surrounded by water.

    Find the maximum area of an island in the given 2D array. (If there is no island, the maximum area is 0.)

    Example 1:

    [[0,0,1,0,0,0,0,1,0,0,0,0,0],
     [0,0,0,0,0,0,0,1,1,1,0,0,0],
     [0,1,1,0,1,0,0,0,0,0,0,0,0],
     [0,1,0,0,1,1,0,0,1,0,1,0,0],
     [0,1,0,0,1,1,0,0,1,1,1,0,0],
     [0,0,0,0,0,0,0,0,0,0,1,0,0],
     [0,0,0,0,0,0,0,1,1,1,0,0,0],
     [0,0,0,0,0,0,0,1,1,0,0,0,0]]
    

    Given the above grid, return 6. Note the answer is not 11, because the island must be connected 4-directionally.

    Example 2:

    [[0,0,0,0,0,0,0,0]]

    Given the above grid, return 0.

    Note: The length of each dimension in the given grid does not exceed 50.

    思路:

    DFS即可。

     int a[] = {-1,0,0,1};
     int b[] = {0,1,-1,0};
     void DFS(int m,int n,int curM,int curN,vector<vector<int>>& grid,int &temp,int &ret,vector<vector<bool>>&visited)
     {
       if(curM<0 || curN<0 || curM>=m || curN>=n || visited[curM][curN] || grid[curM][curN] ==0 )return ;
       temp+=1;
       visited[curM][curN] = true;
       for(int i=0;i<4;i++)
       {
         DFS(m,n,curM+a[i],curN+b[i],grid,temp,ret,visited);
      }
       ret = max(temp,ret);   
    } 
     int maxAreaOfIsland(vector<vector<int>>& grid)
     {
            int m =grid.size(),n=0;
        if(m!=0)n = grid[0].size();
        vector<vector<bool>>visited(m,vector<bool>(n,false));
        int temp =0,ret =0;
        for(int i=0;i<m;i++)
        {
          for(int j =0;j<n;j++)
          {
            DFS(m,n,i,j,grid,temp,ret,visited);
            temp  = 0;
          }
        }    
        return ret;
     }
  • 相关阅读:
    盘符格式转换成NTFS格式
    jdk环境变量配置
    修改mysql密码
    端口占用解决
    程序执行原理
    第一个Python程序
    pip安装第三方库失败的问题
    windows本地安装mongoDB并且安装可视化工具studio 3t
    开发时前端测试方法
    虚拟机配置vimrc
  • 原文地址:https://www.cnblogs.com/hellowooorld/p/7636814.html
Copyright © 2011-2022 走看看