zoukankan      html  css  js  c++  java
  • 面试题 16.19. 水域大小

    就是找联通块

    dfs就行

    class Solution {
    public:
        bool vis[1010][1010];
        void dfs(vector<vector<int>>& land, int x, int y, int& cnt)
        {
            cnt++;
            int len1  = land.size();
            int len2 = land[0].size();
            for(int i = -1; i <= 1; i++)
                for(int j = -1; j <= 1; j++)
                {
                    int nx = x + i;
                    int ny = y + j;
                    if(nx < 0 || ny < 0 || nx >= len1 || ny >= len2 || vis[nx][ny] == 1 || land[nx][ny] != 0) continue;
                    vis[nx][ny] = 1;
                    dfs(land, nx, ny, cnt);
                }
        }
    
    
        vector<int> pondSizes(vector<vector<int>>& land) {
            vector<int> ret;
            memset(vis, 0, sizeof(vis));
            int len1 = land.size();
            int len2 = land[0].size();
            for(int i = 0; i < len1; i++)
                for(int j = 0; j < len2; j++)
                    if(land[i][j] == 0 && vis[i][j] == 0)
                    {
                        int cnt = 0;
                        vis[i][j] = 1;
                        dfs(land, i, j, cnt);
                        ret.push_back(cnt);
                    }
            sort(ret.begin(), ret.end());
            return ret;
        }
    };
    自己选择的路,跪着也要走完。朋友们,虽然这个世界日益浮躁起来,只要能够为了当时纯粹的梦想和感动坚持努力下去,不管其它人怎么样,我们也能够保持自己的本色走下去。
  • 相关阅读:
    一些集群操作以及问题查询
    .a 文件 和 so 文件
    KNN算法
    opendir函数和readdir函数内涵及用法
    tps 和 qps的区别
    Git使用(积累一些常用的命令)
    MurmurHash
    HyperLogLog
    MySQL主从不生效且无错误
    正则表达式与SQL
  • 原文地址:https://www.cnblogs.com/WTSRUVF/p/15418559.html
Copyright © 2011-2022 走看看