【图论】有向无环图中一个节点的所有祖先 - 邻接表(DFS)

文章目录

  • 题目:有向无环图中一个节点的所有祖先
    • 题目描述
    • 代码与解题思路

题目:有向无环图中一个节点的所有祖先

2192. 有向无环图中一个节点的所有祖先

题目描述

代码与解题思路

func getAncestors(n int, edges [][]int) [][]int {g := make([][]int, n)for _, e := range edges {x, y := e[0], e[1]g[x] = append(g[x], y)}ans := make([][]int, n)vis := make([]int, n)start := 0var dfs func(int)dfs = func(x int) {vis[x] = start+1 // 因为 vis 初始是 0, 所以要 +1 错开for _, v := range g[x] {if vis[v] != start+1 {ans[v] = append(ans[v], start)dfs(v)}}}for start < n {dfs(start)start++}return ans
}

采用思路:灵神的题解

这道题的核心就在于如何解决重复遍历的问题,用什么方法都做

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/598336.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

题目:【序列中删除指定数字】【变种水仙花数】【数组串联】【交换奇偶位】【offsetof宏的实现】

题目一:序列中删除指定数字 #include <stdio.h>int main(){int a0;int arr[50]{0};int c0;scanf("%d",&a);for(int i0;i<a;i){scanf("%d",&arr[i]);//输入a个值}scanf("%d",&c);//输入要删除的数据int i0;int j0;for(i0;i&…

【Entity Framework】EF配置文件设置详解

【Entity Framework】EF配置文件设置详解 文章目录 【Entity Framework】EF配置文件设置详解一、概述二、实体框架配置部分三、连接字符串四、EF数据库提供程序五、EF侦听器六、将数据库操作记录到文件中七、Code First默认连接工厂八、数据库初始值设定项 一、概述 EF实体框架…

力扣热题100_链表_138_随机链表的复制

文章目录 题目链接解题思路解题代码 题目链接 138. 随机链表的复制 给你一个长度为 n 的链表&#xff0c;每个节点包含一个额外增加的随机指针 random &#xff0c;该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成&a…

《追风者》中爷叔必读的三大创业金句!2024最受欢迎的创业项目,2024新兴创业项目

作为爱奇艺2024首部破万的长剧《追风者》&#xff0c;正是因为其中蕴含了无数的人生哲理&#xff0c;处世之道可以供观众细细品味。尤其是其中爷叔的创业金句&#xff0c;更是给了每个初次创业的受挫者鼓励和指引。 1、不输&#xff0c;就是赢了。不比谁赚得多&#xff0c;不比…

元宇宙虚拟空间的角色初始化(六)

前言 该文章主要讲元宇宙虚拟空间的角色初始化&#xff0c;基本核心技术点&#xff0c;不多说&#xff0c;直接引入正题。 角色初始化 在调用渲染前&#xff0c;打印一下更新的列表 console.log(this.updatables); this.render(this);; 这里看到有很多要更新的 这…

java流式计算Stream

java流式计算Stream 流(Stream)到底是什么呢? 是数据渠道&#xff0c;用于操作数据源&#xff08;集合、数组等&#xff09;所生成的元素序列。 “集合讲的是数据&#xff0c;流讲的是计算! ” 特点&#xff1a; Stream自己不会存储元素。 Stream不会改变源对象。相反&#x…

职场必修经验:一位测试大神的软件测试工作经验总结

这篇文章&#xff0c;整理下测试工作经验分享 最近&#xff0c;部门刚毕业入职的小伙伴跟大家提议&#xff0c;让大家把自己的软件测试工作经验分享一下&#xff0c;我整理了一下&#xff0c;可能不全。 测试阶段划分 1、 单个模块功能测试时间相对较长&#xff0c;但每一个…

带头双向循环链表实现

1.结构及特性 前面我们实现了无头单向非循环链表&#xff0c;它的结构是这样的&#xff1a; 在这里的head只是一个指向头结点的指针&#xff0c;而不是带头链表的头节点。 而带头双向循环链表的逻辑结构则是这样的 这就是链表的结构&#xff0c;链表的每一个节点都有两个指针…

ROS 2边学边练(15)-- 写一个简单的服务(C++)

前言 此篇我们即将编写一个简单的服务&#xff08;service&#xff09;通信例子&#xff0c;客户端节点向服务端节点发出请求&#xff08;.srv文件中规定了通信的数据结构格式&#xff09;&#xff0c;服务端节点收到请求后将结果回复给客户端节点&#xff0c;一问一答&#xf…

修电机所需要的基本工具

等距式 模具 同心式模具 电机划线刀 压脚 千分尺 -----测量线径 钳形电流表------- 测量 空载 满载下的电流值 摇表&#xff0c; 测量线圈是否碰到外壳 指针式万用表 胶锤 整理线圈 绝缘纸和青稞纸&#xf…

[StartingPoint][Tier1]Funnel

Task 1 How many TCP ports are open? (打开了多少个 TCP 端口&#xff1f;) # nmap -sS -T4 10.129.224.226 --min-rate 1000 2 Task 2 What is the name of the directory that is available on the FTP server? (FTP 服务器上可用的目录名称是什么&#xff1f;) $ n…

什么是商家转账到零钱

商家转账到零钱是什么&#xff1f; 通过商家转账到零钱这个功能&#xff0c;如果我们系统需要对用户支付费用&#xff0c;比如发放佣金、提成、退款之类的&#xff0c;可以直接转账到用户的微信零钱。 【商家转账到零钱】是【企业付款到零钱】的升级版&#xff0c;2022年5月1…