2020校招面试高频题,给定0-1矩阵,求其连通域的个数

面试某宇宙条,第一次让写,不会。面试某bigo,第二次让写,不会。面试某汤,第三面让写,不会。真高频面试题。。。。。。。。。。。。。源博客地址https://blog.csdn.net/wphkadn/article/details/100125148,看完他的叙述以后豁然开朗,建议先点开链接阅读原文章,其实就是一个简单的dfs或bfs问题。在一般的无向图遍历中,一般邻近节...
摘要由CSDN通过智能技术生成

面试某宇宙条,第一次让写,不会。

面试某bigo,第二次让写,不会。

面试某汤,第三面让写,不会。

真高频面试题。。。。。。。。。。。。。

源博客地址https://blog.csdn.net/wphkadn/article/details/100125148

看完他的叙述以后豁然开朗,建议先点开链接阅读原文章,其实就是一个简单的dfs或bfs问题。

在一般的无向图遍历中,一般邻近节点储存在邻接列表里,故而遍历时有针对性地选取当前节点的邻居加入待访问集合就可以轻松完成访问,而对于矩阵这种图的表示形式(严格称为栅格),却需要自己以某种规律寻找当前节点的邻居集合。

import numpy as np
import matplotlib.pyplot as plt


class solution:
    def __init__(self,im):
        self.im=im
        m,n=im.shape
        self.mask=[[0 for _ in range(n)] for _ in range(m)]
    def isValid(self,i,j,mask,im):
        m,n=im.shape
        return i>=0 and i<m and j>=0 and j<n and mask[i][j]==0 and im[i][j]==1

    def add(self,i,j,mask,im,q):
        if self.isValid(i,j,mask,i
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值