当前位置: 首页 > article >正文

广度优先搜索_钥匙和房间

841. 钥匙和房间 - 力扣(LeetCode)

算法描述

起始元素入队 查找队首元素的邻居节点 发现之后 入队 并且标记位已访问 

接着 队首元素出队 一直循环 直到队列为空

#define maxn 10001

class Solution {
public:

    void addEdge( vector<vector<int>>& table, vector<vector<int>>& rooms, int n){
        for ( int i = 0; i < rooms.size(); ++i){
            for ( int j : rooms[i])
            table[i].push_back(j);
        }
    }

    int bfs( vector<vector<int>>& table, int n, int visited[]){

        queue<int> q;
        q.push(0);
        visited[0] = true;
        int cnt = 0;
        while ( !q.empty() ){
            ++cnt;
            int u = q.front();
            q.pop();
            for ( int i = 0; i < table[u].size(); ++i ){
                int j = table[u][i];
                if ( !visited[j]){
                    q.push(j);
                    visited[j] = true;
                }
            }
        }
        return cnt; 
    }

    bool canVisitAllRooms(vector<vector<int>>& rooms) {
        int n = rooms.size();

        vector< vector<int> > table(n);
        int visited[maxn] = {0};

        addEdge( table, rooms, n);

        return bfs( table, n, visited) == n;


    }
};


http://www.kler.cn/a/544464.html

相关文章:

  • 【Pandas】pandas Series drop
  • [Java] Redis基础
  • LabVIEW与小众设备集成
  • #渗透测试#批量漏洞挖掘#致远互联AnalyticsCloud 分析云 任意文件读取
  • 【基于SprintBoot+Mybatis+Mysql】电脑商城项目之获取省市区列表名称及收货地址列表展示
  • 细胞计数专题 | LUNA-FX7™新自动对焦算法提高极低细胞浓度下的细胞计数准确性
  • 从设计到生产,3D技术如何改变鞋业生态
  • 基于Java SpringBoot以及vue前后端分离的旅游景区网站系统设计与实现
  • AI+智能中台企业架构设计_重新定义制造(46页PPT)
  • Javaweb中,使用Servlet编写简单的接口
  • 如何利用Spring的@Value注解实现配置信息的动态注入与管理?
  • flutter本地推送 flutter_local_notifications的使用记录
  • 十八、vben框架前端编码风格及标准
  • 2024年博客之星年度评选—主题文章创作评审文章得分公布
  • 苹果放弃DeepSeek选择阿里通义,近屿智能助您入局黄金AI领域
  • 本地部署DeepSeek后的调用与删除全攻略
  • AI前端开发:跨领域合作的新引擎
  • Linux运维——系统管理
  • DeepSeek批量生成全平台推广营销内容:高效提升营销效率
  • 【信息系统项目管理师-案例真题】2019下半年案例分析答案和详解