跳至主要内容

200. 岛屿的个数

class Solution {
public:
   
    void numIslands2(vector<vector<char>>& grid, int i, int j, int & nn, vector<vector<char>> & find) {

        int m = grid.size();
        int n = grid[0].size();

        if (i >= 0 && i < m && j >= 0 && j < n && grid[i][j] == '1' && find[i][j] == 0)
        {
            find[i][j] = nn;

            numIslands2(grid, i + 1, j, nn, find);
            numIslands2(grid, i, j + 1, nn, find);
            numIslands2(grid, i - 1, j, nn, find);
            numIslands2(grid, i, j - 1, nn, find);
        }
    }

    int numIslands(vector<vector<char>>& grid) {

        if (grid.empty())
            return 0;
       
        int m = grid.size();
        int n = grid[0].size();

        vector<vector<char>> find;

        for (int i = 0; i < m; i++)
        {
            vector<char> tmp;
            for (int j = 0; j < n; j++)
            {
                tmp.push_back(0);
            }
            find.push_back(tmp);
        }

        int nn = 0;
        for (int i = 0; i < m; i++)
        {
            for (int j = 0; j < n; j++)
            {
                if (grid[i][j] == '1' && find[i][j] == 0)
                {
                    nn++;
                    numIslands2(grid, i, j, nn, find);
                }
            }
        }

        return nn;
    }
};

评论

此博客中的热门博文

老毛子路由器无线桥接问题

  信道带宽:改成20M  关闭 DHCP 服务器  关闭动态 (DHCP) 路由 修改IP地址从192.168.123.1到192.168.1.114  无线 AP 工作模式:选择AP-Client+AP 无线 AP-Client 角色:选择LAN bridge 连上上级wifi done 路由器自身可能上不去网,执行: route add default  gw 192.168.1.1 不过这种方式无法翻墙 ////////////////////////////////////////////////////////////// 第二种方式 不改信道不关闭DHCP,保持网段是192.168.123.1 无线 AP 工作模式:选择AP-Client+AP 无线 AP-Client 角色:选择WAN 连上上级wifi done 路由器可以翻墙,但是192.168.1.1的机器访问不了192.168.123.1的机器 解决方法: 在192.168.123.1的机器把想要访问的机器比如192.168.123.100设置DMZ主机,这样就可以访问了,在 192.168.1.1能看到分配的ip比如192.168.1.115