zoukankan      html  css  js  c++  java
  • [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 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:

    11110
    11010
    11000
    00000

    Answer: 1

    Example 2:

    11000
    11000
    00100
    00011

    Answer: 3

    思路:

    DFS,用一个标记visited数组记录。

    void dfsisland(vector<vector<char>>& grid, vector<vector<bool>>& visited,int i,int j)
         {
             int m = grid.size(), n = grid[0].size();
             if (i < 0 || i >= m || j < 0 || j >= n || visited[i][j] || grid[i][j] == '0')return;
             visited[i][j] = true;
             dfsisland(grid, visited, i + 1, j);
             dfsisland(grid, visited, i - 1, j);
             dfsisland(grid, visited, i, j + 1);
             dfsisland(grid, visited, i, j - 1);
         }
         int numIslands(vector<vector<char>>& grid)
         {
             if (grid.empty())return 0;
             int m = grid.size(), n = grid[0].size();
             vector<vector<bool>>visited(m, vector<bool>(n, false));
             int ret = 0;
             for (int i = 0; i < m;i++)
             {
                 for (int j = 0; j < n;j++)
                 {
                     if (grid[i][j] == '1' && !visited[i][j])
                     {
                         dfsisland(grid, visited,i,j);
                         ret++;
                     }
                 }
             }
             return ret;
         }
  • 相关阅读:
    如何使用Java计算货币/钱~(How to calculate monetary values in Java)
    BigDecimal类
    状态码定义
    常见服务器返回状态码(Status Codes)
    2020-3-26学习地图
    ReentrantLock类
    HashSet类
    Vector类
    课程总结
    第十四周课程总结&实验报告
  • 原文地址:https://www.cnblogs.com/hellowooorld/p/7153046.html
Copyright © 2011-2022 走看看