图论5(Leetcode1376.通知所有员工所需的时间)

2023-11-07

答案:

这是官方答案 我写的超时了 我不会树结构的存储 这里用了Map 学到了

class Solution {
    public int numOfMinutes(int n, int headID, int[] manager, int[] informTime) {
        Map<Integer,List<Integer>> g = new HashMap<Integer, List<Integer>>();
        for(int i=0;i<n;i++){
            g.putIfAbsent(manager[i],new ArrayList<Integer>());
            g.get(manager[i]).add(i);
        }
        return dfs(headID,informTime,g);
    }
    public int dfs(int cur, int[] informTime, Map<Integer, List<Integer>> g){
        int res = 0;
        for(int neighbor:g.getOrDefault(cur,new ArrayList<Integer>())){
            res = Math.max(res,dfs(neighbor, informTime, g));
        }
        return res + informTime[cur];
    }
}

这是我自己写的 我感觉逻辑是对的 但是超时

class Solution {
    public int numOfMinutes(int n, int headID, int[] manager, int[] informTime) {
        int[] time = new int[n];
        int x = 1;//统计已通知到的人数(1:head)
        Set<Integer> newInform = new HashSet<>();
        newInform.add(headID);
        time[headID]=0;
        while(x<n){
            Set<Integer> newInform2 = new HashSet<>();
            Iterator<Integer> iterator = newInform.iterator();
            while(iterator.hasNext()){
                int m = iterator.next();
                int t = informTime[m];
                int tAll = time[m];
                for(int i=0;i<n;i++){
                    if(manager[i]==m){
                        time[i] = tAll + t;
                        newInform2.add(i);
                        x++;
                    }
                }
            }
            newInform = newInform2;
        }
        int max = 0;
        for(int i=0;i<n;i++){
            if(time[i]>max){
                max = time[i];
            }
        }
        return max;

    }

}

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

图论5(Leetcode1376.通知所有员工所需的时间) 的相关文章

随机推荐

  • jsp记住密码--Cookie

    jsp记住账号密码 本文介绍使用Cookie来实现记住账号密码操作 什么是Cookie Cookie是客户端访问服务器时 服务器在客户端硬盘上存放的信息 Cookie是服务器通知客户端保存键值对的一种技术 Cookie的用途 Cookie可
  • 百度智能云度能推出全新碳盘查服务,助力企业和园区摸清家底实现精细化管理

    今年1月 国务院发布 十四五 节能减排综合工作方案的通知 方案提出到2025年 全国单位国内生产总值能源消耗比2020年下降13 5 能源消费总量得到合理控制 百度也积极履行科技企业减碳责任 于2021年正式公布到2030年实现集团运营层面
  • 测开上手codewhisperer初体验

    AWS新出了一个插件 codewhisperer 这个名字一听还挺有意思 wispiser意为在耳边轻声细语的人 官方解释是一个强大的机器学习AI代码生成器 可以给你一些代码的建议 Amazon CodeWhisperer is a gen
  • 【CV大模型SAM(Segment-Anything)】如何一键分割图片中所有对象?并对不同分割对象进行保存?

    之前的文章 CV大模型SAM Segment Anything 真是太强大了 分割一切的SAM大模型使用方法 可通过不同的提示得到想要的分割目标 中详细介绍了大模型SAM Segment Anything 根据不同的提示方式得到不同的目标分
  • [转]QNX_IDE使用cin输入变量不能编译通过的解决方法

    如果你认为本系列文章对你有所帮助 请大家有钱的捧个钱场 点击此处赞助 赞助额0 1元起步 多少随意 声明 本文只用于个人学习交流 若不慎造成侵权 请及时联系我 立即予以改正 锋影 email 174176320 qq com 在使用QNX
  • 去掉有定位的left值

    left initial 一开始就是初始 默认值 的意思 就可以解决定位的left啦 转载于 https www cnblogs com renxiao1218 p 11611101 html
  • Flink运行时之批处理程序生成计划

    批处理程序生成计划 DataSet API所编写的批处理程序跟DataStream API所编写的流处理程序在生成作业图 JobGraph 之前的实现差别很大 流处理程序是生成流图 StreamGraph 而批处理程序是生成计划 Plan
  • Red Hat Linux 命令Crontab的使用方法

    Red Hat Linux 命令Crontab的使用方法1 cron是一个linux下的定时执行工具 可以在无需人工干预的情况下运行作业 由于Cron 是Linux的内置服务 但它不自动起来 可以用以下的方法启动 关闭这个服务 sbin s
  • Pytorch推出fx,量化起飞

    本文首发于公众号 没事来逛逛 Pytorch1 8 发布后 官方推出一个 torch fx 的工具包 可以动态地对 forward 流程进行跟踪 并构建出模型的图结构 这个新特性能带来什么功能呢 别的不说 就模型量化这一块 炼丹师们有福了
  • Linux下怎么让挂起的(suspend or stopped)进程恢复执行(resume)

    今天在linux安装app的时候 安装的进度长时间停止不前 于是我使用Ctrl Z 打断了安装 然后又运行了一遍安装的命令 这个时候 提示了警告 说这个安装已经安排了但是现在的状态是suspend的 一时间 我想要通过PID把这个进程差掉
  • Windows下 的MySQL安装、配置以及中文字符集编码设置

    一 MySQL安装 第一步 双击程序包 会弹出如下图 第二步 点击Next之后 出现如下图 第三步 选完自己安装的版本 点击Next 第四步 点击Next之后 出现如下图 第五步 点击两次Next之后 显示如下图 根据自己需求改动 一般情况
  • 软件设计师笔记公告(备考攻略)

    软件设计师笔记公告 上午题 下午题 先上成绩 今天软考成绩出来了 很高兴我一次拿下 非常感谢b站up主zst 2001 zst 2001主页链接 我一次性通过很大程度上是因为zst 2001的帮助 于此同时 你们能看到我这个笔记也要感谢up
  • Python 标准库之 xml.etree.ElementTree 简介

    文章来源 https www cnblogs com ifantastic archive 2013 04 12 3017110 html 简介 Element类型是一种灵活的容器对象 用于在内存中存储结构化数据 注意 xml etree
  • pico park无法连接至远程服务器,pico park怎么联机玩?pico park怎么邀请朋友一起玩?[多图]...

    pico park是最近这几天比较火爆的一款游戏了 想必与很多的玩家们 都想与自己的好友一起联机作战 但是又不知道该怎么邀请朋友一起玩 各位新手玩家们 不用太着急 小编这就为大家带来了一套与朋友一起联机玩的教程 只要轻松两步 便可以解决大家
  • C# 命令行参数分割

    CommandLineToArgvW 函数 DllImport shell32 dll SetLastError true private static extern IntPtr CommandLineToArgvW MarshalAs
  • OpenGL ES之十一——绘制3D图形

    概述 这是一个系列的Android平台下OpenGl ES介绍 从最基本的使用最终到VR图的展示的实现 属于基础篇 后面针对VR视频会再有几篇文章 属于进阶篇 OpenGL ES之一 概念扫盲 OpenGL ES之二 Android中的Op
  • Tomcat执行startup.bat出现闪退的可能原因

    问题描述 Tomcat再解压之后 点击startup bat出现闪退 以下是我在网上搜索的解决方案 1 端口被占用 到tomcat安装目录的logs文件夹下查看日志文件 log结尾 看是不是有 严重 StandardServer await
  • Spring Data ElasticSearch analyzer 定义 @Filed失效 @Mapping失效 创建索引 无效 解决办法 ElasticsearchRestTemplate

    ES版本 7 x 首先上失效原因 SpringDataElasticsearch版本变动频繁 很多网上的代码失效 有很多方法标记为过时 ElasticsearchRestTemplate不读 Filed注解 所以你在 Field里面写再多代
  • MFC的SendMessage与PostMessage的区别

    一 SendMessage 同步操作 SendMessage 是一个同步函数 它会将消息发送到指定的窗口 并等待该窗口的消息处理过程完成 然后返回 这意味着它会阻塞当前线程 直到消息处理完成 直接调用 SendMessage 会将消息直接传
  • 图论5(Leetcode1376.通知所有员工所需的时间)

    答案 这是官方答案 我写的超时了 我不会树结构的存储 这里用了Map 学到了 class Solution public int numOfMinutes int n int headID int manager int informTim