图论3(Leetcode841.钥匙和房间)

2023-11-10

答案:

class Solution {
    public boolean canVisitAllRooms(List<List<Integer>> rooms) {
        Set<Integer> isArrive = new HashSet<>();
        Set<Integer> newArrive = new HashSet<>();
        isArrive.add(0);
        newArrive.add(0);
        while(newArrive.size()!=0){
            newArrive = getNewArrive(newArrive,isArrive,rooms);
            System.out.println(newArrive);

        }
        System.out.println(newArrive);
        if(isArrive.size()==rooms.size()){
            return true;
        }else{
            return false;
        }
    }
    public Set<Integer> getNewArrive(Set<Integer> newArrive,Set<Integer> isArrive,List<List<Integer>> rooms){
        Set<Integer> nextNewArrive = new HashSet<>();
        Iterator<Integer> iterator = newArrive.iterator();
        while (iterator.hasNext()) {//遍历newArrive
            int newRoom = iterator.next();
            for(int i=0;i<rooms.size();i++){//找到rooms里的newArrive元素的房间
                if(i==newRoom){
                    for(int k=0;k<rooms.get(i).size();k++){
                        int room = rooms.get(i).get(k);
                        if(!isArrive.contains(room)){
                            isArrive.add(room);
                            nextNewArrive.add(room);
                        }
                    }
                }

            }
        }
        return nextNewArrive;
    }
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

图论3(Leetcode841.钥匙和房间) 的相关文章

  • Knights of the Round Table【点双连通分量与二分图】

    题目链接 POJ 2942 题意 亚瑟王要给骑士们开会啦 有N个骑士 其中有M对骑士相互之间会吵架 亚瑟王不允许相互吵架的骑士坐在一起 但是他们可以一同坐在餐桌上 只要隔开就可以了 还有就是 出席会议的骑士数必须是奇数 这是为了让投票表决议
  • 东北大学acm第五周周赛

    include
  • AcWing 1055. 股票买卖 II

    输入样例1 6 7 1 5 3 6 4 输出样例1 7 输入样例2 5 1 2 3 4 5 输出样例2 4 输入样例3 5 7 6 4 3 1 输出样例3 0 样例解释 样例1 在第 2 天 股票价格 1 的时候买入 在第 3 天 股票价格
  • LeetCode-Python-1584. 连接所有点的最小费用(MST)

    给你一个points 数组 表示 2D 平面上的一些点 其中 points i xi yi 连接点 xi yi 和点 xj yj 的费用为它们之间的 曼哈顿距离 xi xj yi yj 其中 val 表示 val 的绝对值 请你返回将所有点
  • UVA-1601 万圣节后的早晨 题解答案代码 算法竞赛入门经典第二版

    GitHub jzplp aoapc UVA Answer 算法竞赛入门经典 例题和习题答案 刘汝佳 第二版 以三个点的当前位置作为状态 广度优先遍历 找到终点即为最短次数 注意 一次可以移动多个点 但是每个点只能移动一步 在同一次中 B可
  • 图论17(Leetcode864.获取所有钥匙的最短路径)

    用二进制表示获得的钥匙 假设n 钥匙个数 000000000代表没有钥匙 0000000001代表有idx为1的钥匙 0000000011代表有idx 1 2的钥匙 这方法巧妙又复杂 代码 class Solution static int
  • 图的应用--Prim算法

    图的应用 Prim算法 Prim算法是一种基于顶点的贪心算法 从起始顶点出发 每次迭代选择当前可用的最小权值边 然后把边上依附的其他顶点加入最小生成树 prim算法可以称为 加点法 比较适合稠密图 算法思想 设G V E 是一个加权连通图
  • 【01规划】POJ 3621 Sightseeing Cows

    POJ 3621 Sightseeing Cows 题意 给定一张 n 个点 m 条边的有向图 每个点都有一个权值 f i 每条边都有一个权值 t i 求图中的一个环 使 环上各点的权值之和 除以 环上各边的权值之和 最大 输出这个最大值
  • 离散数学第一章总结

    离散数学第一章 1 公式类型 1 重言式 也是永真式 公式真值恒为1 2 矛盾式 永假式 真值恒为0 3 可满足式 不是矛盾式的就都是可满足式 重言式一定是可满足式 2 成真赋值与成假赋值 也叫成真指派与成假指派 一组原子的取值 真值指派
  • [NOI 2015复习][BZOJ 1509][NOI 2003]逃学的小孩(树的直径)

    题目链接 http www lydsy com JudgeOnline problem php id 1509 题目大意 要从一棵树中找出三个点 X Y Z X Y Z 使得 min dis A C dis B C dis A B min
  • King's Quest【POJ 1904】【Tarjan强连通分量】

    Once upon a time there lived a king and he had N sons And there were N beautiful girls in the kingdom and the king knew
  • Codeforces Round #751 (Div. 2) D. Frog Traveler(BFS)

    题解 因为我们最多把所有的点跳一遍么 所以直接BFS模拟一下就行了 注意现在跳的点不能是以前已经跳过的点 并且只能越跳越高 否则没有意义 这样就保证了时间复杂度是线性的 AC代码 include
  • Fix a Tree【Codeforces 699 D】【dfs + 树的性质】

    Codeforces Round 363 Div 2 D 题意 有N个点 每个点i都有一个父节点p i 如果 i p i 则是说明i结点是根结点 现在我们给出这样的1 N的p i 这可能是不合法的 问 我们应该最少改变多少个使它变成一棵合法
  • 数据结构练习题——图(含应用题)

    1 选择题 1 在一个图中 所有顶点的度数之和等于图的边数的 倍 A 1 2 B 1 C 2 D 4 答案 C 2 在一个有向图中 所有顶点的入度之和等于所有顶点的出度之和的 倍 A 1 2 B 1 C 2 D 4 答案 B 解释 有向图所
  • Summer Holiday HDU - 1827 强连通分量+缩点

    To see a World in a Grain of Sand And a Heaven in a Wild Flower Hold Infinity in the palm of your hand And Eternity in a
  • UVA-10603 倒水问题 题解答案代码 算法竞赛入门经典第二版

    GitHub jzplp aoapc UVA Answer 算法竞赛入门经典 例题和习题答案 刘汝佳 第二版 使用广度优先搜索和优先队列 如果找到最小的点则退出 找不到就遍历所有的情况 include
  • 图论算法<三>:判断有向图中是否有存在循环 ,以及环的个数和各个环中的元素

    1 目的 判断有向图中是否有存在循环 以及环的个数和各个环中的元素 2 示例效果 2 1 原始数据 路线起终点整理如下 共计12个顶点 19条边 起点 终点 1 最后的1代表起点终点是连通的 起点 终点 1 2 4 1 起点 终点 1 9
  • Dinic算法学至大佬,学以致用【挂上相应的题目】

    这个巨佬讲的超级厉害 学起来很快 还有优化的说呢 Dinic算法 研究总结 网络流 网络流是信息学竞赛中的常见类型 笔者刚学习了最大流Dinic算法 简单记录一下 网络流基本概念 什么是网络流 在一个有向图上选择一个源点 一个汇点 每一条边
  • 图论--最近公共祖先LCA

    最近公共祖先LCA LCA Least Common Ancestors 即最近公共祖先 是指这样一个问题 在有根树中 找出某两个结点u和v最近的公共祖先 另一种说法 离树根最远的公共祖先 最近公共祖先是相对于两个节点来说的 一般来说 最近
  • 数据结构——广度优先遍历(BFS)无向连通图

    以下是数据结构中关于广度优先遍历无向连通图的操作 编程风格参考严蔚敏版数据结构 其实深度优先遍历就是二叉树的层次遍历的推广 头文件及宏 include

随机推荐

  • 基于Eclipse的下一代建模工具

    基于Eclipse的下一代建模工具 孟言 CSDN的网友大家下午好 昨天世界杯结束了 今天我们就可以把精力重新投入到我们酷爱的技术上 很高兴与大家进行这一起CSDN的视频节目 我们今天很高兴请到软件建模资深的专家 一位是李纪华 他是IBM
  • qt中实现多语言功能

    qt实现多语言 引言 示例 环境 demo 使项目可以多语言 步骤一 步骤二 步骤三 方式一 方式二 步骤四 附加 引言 在做项目时 有时希望我们的程序可以在不同的国家使用 这样最好的方式是一套程序能适应于多国语言 Qt提供了这样的功能 使
  • 特征提取网络(分类)

    以下网络可通过torchvision models导入 import torchvision models as models resnet18 models resnet18 pretrained True vgg16 models vg
  • 带你用一个更好的方法注释掉一段代码

    今天分享一个好用的注释代码块的方法给大家 话不多说 我们平时常用的注释一句代码和文字就用 或者 如 char a 0 这是一个常用的注释方法 但是我们如果注释一大块内容呢 就会用到上面提到的 了 但是这个方法不适应用于代码块中存在 的情况
  • Windows获取系统、进程CPU占用率、内存、磁盘、网卡

    1 获取系统cpu 使用WindowsAPI函数GetSystemTimes 为获取当前使用率 通过执行两次的方式进行差值比较 在win7 win10上试验结果准确 具体用法参考下列代码 Windows程序获取cpu占用率 void Get
  • QT学习笔记(20) ——回调函数的使用

    目录 前言 正文 函数指针 回调函数 为何要使用回调函数 例子 总结 参考文献 前言 因为程序一直有用到这个回调函数 虽然能够大概看得懂 知道是把函数指针从一个类传到另一个类 给这另一个类用 但是 里面具体详细的内容不太明确 在这里 稍微记
  • POI导入导出Excel表格

    POI全称 PoorObfuscation Implementation 直译为 可怜的模糊实现 利用POI接口可以通过JAVA操作Microsoft office 套件工具的读写功能 官网 http poi apache org 在官网中
  • Java之基于注解的Excel导出

    数据库Excel导出操作代码过于冗长惨不忍睹 无法复用 推荐使用阿里巴巴组件 关于Easyexcel Easy Excel 目录 第一步 自定义注解 第二步 实体类 第三步 解析工具类 第四步 使用 依赖
  • 校验一个输入框必须小于另一个输入框,计算两输入框相减,并且v-model绑定值变化生效

    一 校验 rules stockOutNumber required true message 请输入出库数量 trigger blur change pattern 1 9 d message 请输入正整数 trigger blur va
  • 实用小工具 -- 在线查看别人网站流量

    1 打开链接 http www aizhan com 到达爱站网 2 输入你要查询的网站的链接 按综合查询按钮 就可以查看了 转载于 https www cnblogs com lmei p 3356881 html
  • VS2010 LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 的解决方法

    因为同一个电脑上安装多个VS 有多个cvtres exe 按照下面的操作如果还是不行就在C盘搜索cvtres exe 然后挨个重命名 看看是调用的哪个 然后修改就可以了 用VS2010编译C 项目时出现这样的错误 LNK1123 转换到 C
  • vue+nodejs前后端分离模式详细使用说明

    Node js和Vue js在不同的领域有着不同的使用场景 下面是一些常见的使用场景 使用场景 1 全栈开发 Node js和Vue js可以一起用于全栈开发 即使用Node js作为后端服务器 Vue js作为前端框架 Node js可以
  • java中scanner中nextint,Java Scanner nextInt()方法

    Java Scanner nextInt 方法 java util Scanner nextInt 方法扫描输入的下一个标记为int 形式nextInt 方法的调用和调用nextInt radix 的行为方式完全相同 其中的radix是此扫
  • 为什么要使用三次握手

    首先 tcp是可靠传输协议 需要三次握手建立连接服务 三次握手的目的是 为了防止已经失效的连接请求报文段突然又传到服务端 因而产生错误 这种情况是 client端发出了一个连接请求报文 而是因为某些未知的原因在某个网络节点上发生延迟 滞留
  • 为什么springboot在控制器调用接口调用不了

    可能你只是忘记在接口加这个注解
  • (vscode)html学习记录2

    表格属性 css会提到 align left center right 靠左对齐靠右中间 border 默认为 表示没边框 数字 cellpadding 单元边缘与其内容之间的空白 cellspacing 单元与单元之间的空白 width
  • Ubuntu(20.04)安装mysql8.0

    我的ubuntu版本已是最新版 因此可以通过apt直接安装8 0的mysql 如果是18版本的ubuntu 可能apt直接安装的是5 7版本的mysql 目录 一 安装mysql服务端 二 初始化配置 一 安装mysql服务端 sudo a
  • .ui文件无法自动生成ui_**.h头文件,报错Moc‘ing QtGuiClass.h... 1> Missing value after ‘-I‘.

    VS下Qt环境都配置没问题 程序突然不能编译 ui无法生成 h文件 同时报错Moc ing QtGuiClass h 1 Missing value after I 可尝试以下方法 编辑项目文件 vcproj 将 I NOINHERIT 替
  • 邻接矩阵表示法

    输入 输入的第一行是两个整数 分别是图的总顶点数n和总边数e 第二行是n个空格分开的字符串 是顶点的名字 依次对应编号0 n 1 随后有e行 每行两个空格分开的顶点名字 表示一条边的两个顶点 具体见样例 输出 首先输出n行 每行是第i个顶点
  • 图论3(Leetcode841.钥匙和房间)

    答案 class Solution public boolean canVisitAllRooms List