图题目:可以到达所有点的最少点数目

news2025/5/12 7:52:53

文章目录

  • 题目
    • 标题和出处
    • 难度
    • 题目描述
      • 要求
      • 示例
      • 数据范围
  • 解法
    • 思路和算法
    • 代码
    • 复杂度分析

题目

标题和出处

标题:可以到达所有点的最少点数目

出处:1557. 可以到达所有点的最少点数目

难度

4 级

题目描述

要求

给定一个有向无环图,包含编号为 0 \texttt{0} 0 n − 1 \texttt{n} - \texttt{1} n1 n \texttt{n} n 个结点,以及一个数组 edges \texttt{edges} edges,其中 edges[i]   =   [from i ,   to i ] \texttt{edges[i] = [from}_\texttt{i}\texttt{, to}_\texttt{i}\texttt{]} edges[i] = [fromi, toi] 表示一条从点 from i \texttt{from}_\texttt{i} fromi 到点 to i \texttt{to}_\texttt{i} toi 的有向边。

找到最小的点集使得从这些点出发能到达图中所有点。题目保证解存在且唯一。

可以按任意顺序返回这些结点编号。

示例

示例 1:

示例 1

输入: n   =   6,   edges   =   [[0,1],[0,2],[2,5],[3,4],[4,2]] \texttt{n = 6, edges = [[0,1],[0,2],[2,5],[3,4],[4,2]]} n = 6, edges = [[0,1],[0,2],[2,5],[3,4],[4,2]]
输出: [0,3] \texttt{[0,3]} [0,3]
解释:从单个结点出发无法到达所有结点。从 0 \texttt{0} 0 出发我们可以到达 [0,1,2,5] \texttt{[0,1,2,5]} [0,1,2,5]。从 3 \texttt{3} 3 出发我们可以到达 [3,4,2,5] \texttt{[3,4,2,5]} [3,4,2,5]。所以我们输出 [0,3] \texttt{[0,3]} [0,3]

示例 2:

示例 2

输入: n   =   5,   edges   =   [[0,1],[2,1],[3,1],[1,4],[2,4]] \texttt{n = 5, edges = [[0,1],[2,1],[3,1],[1,4],[2,4]]} n = 5, edges = [[0,1],[2,1],[3,1],[1,4],[2,4]]
输出: [0,2,3] \texttt{[0,2,3]} [0,2,3]
解释:注意到结点 0 \texttt{0} 0 2 \texttt{2} 2 3 \texttt{3} 3 无法从其他结点到达,所以我们必须将它们包含在结果点集中,这些点都能到达结点 1 \texttt{1} 1 4 \texttt{4} 4

数据范围

  • 2 ≤ n ≤ 10 5 \texttt{2} \le \texttt{n} \le \texttt{10}^\texttt{5} 2n105
  • 1 ≤ edges.length ≤ min(10 5 ,   n × (n − 1) 2 ) \texttt{1} \le \texttt{edges.length} \le \texttt{min(10}^\texttt{5}\texttt{, }\dfrac{\texttt{n} \times \texttt{(n} - \texttt{1)}}{\texttt{2}}\texttt{)} 1edges.lengthmin(1052n×(n1))
  • edges[i].length = 2 \texttt{edges[i].length} = \texttt{2} edges[i].length=2
  • 0 ≤ from i ,   to i < n \texttt{0} \le \texttt{from}_\texttt{i}\texttt{, to}_\texttt{i} < \texttt{n} 0fromi, toi<n
  • 所有点对 (from i ,   to i ) \texttt{(from}_\texttt{i}\texttt{, to}_\texttt{i}\texttt{)} (fromi, toi) 互不相同

解法

思路和算法

考虑有向图中的每个结点的入度。如果结点 x x x 的入度为零,则无法从其他结点出发到达结点 x x x,因此结点 x x x 必须包含在结果点集中。如果结点 y y y 的入度不为零,则一定存在一条终点是结点 y y y 的边,将这条边的起点记为结点 z z z,则从结点 z z z 出发可以到达结点 y y y,且从结点 z z z 出发可以到达的结点比从结点 y y y 出发可以到达的结点更多,将结点 z z z 加入结果点集一定比将结点 y y y 加入结果点集更优。

由于给定的图是有向无环图,因此基于上述分析可知,对于任意入度不为零的结点,一定存在另一个结点,从另一个结点出发可以到达该结点。进一步可知,任意入度不为零的结点一定可以从一个入度为零的结点出发到达。

因此,为了得到最小的点集,所有入度为零的结点都应该加入结果点集,所有入度不为零的结点都不应该加入结果点集。

实现方面,并不需要计算每个结点的入度,只需要知道每个结点的入度是否为零即可。每条有向边有一个出发结点和到达结点,如果一个结点至少是一条有向边的到达结点,则该结点的入度一定不为零。遍历有向图中的全部边之后即可知道每个结点的入度是否为零,然后将所有入度为零的结点加入结果点集,则结果点集是最小的点集。

代码

class Solution {
    public List<Integer> findSmallestSetOfVertices(int n, List<List<Integer>> edges) {
        boolean[] zeroIndegree = new boolean[n];
        Arrays.fill(zeroIndegree, true);
        for (List<Integer> edge : edges) {
            zeroIndegree[edge.get(1)] = false;
        }
        List<Integer> vertices = new ArrayList<Integer>();
        for (int i = 0; i < n; i++) {
            if (zeroIndegree[i]) {
                vertices.add(i);
            }
        }
        return vertices;
    }
}

复杂度分析

  • 时间复杂度: O ( n + m ) O(n + m) O(n+m),其中 n n n 是图的结点数, m m m 是数组 edges \textit{edges} edges 的长度。需要遍历图中的每条边和每个结点一次。

  • 空间复杂度: O ( n ) O(n) O(n),其中 n n n 是图的结点数。需要记录每个结点的入度是否为零。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Web3与智能合约:科技革新下的新金融时代

在当今数字化时代&#xff0c;Web3和智能合约正在共同塑造着金融领域的未来。Web3作为下一代互联网的重要组成部分&#xff0c;以其去中心化、安全性和透明性为核心特点&#xff0c;正推动着金融行业向着数字化和去中心化的方向发展。而智能合约作为Web3技术的关键应用之一&…

如何将本地项目上传到Github(SSH方式)

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

OSPF基本配置

原理概述 OSPF 是一种应用非常广泛的基于链路状态的动态路由协议&#xff0c;它具有区域&#xff08; Area )化的层次结构&#xff0c;扩展性好&#xff0c;收敛速度快&#xff0c;适合部署在各种规模的网络上。 在 OSPF 中&#xff0c;每台路由器都必须有一个 Router-I…

在线商城客服系统,多用户电商系统可API对接客服软件

在当今数字化时代&#xff0c;在线商城客服系统和多用户电商系统之间的无缝API对接已成为电商行业的重要趋势。这种整合为商家提供了更高效的客户服务和管理方式&#xff0c;提升了用户体验和业务效率。其中&#xff0c;商淘云电商客服系统作为一款强大的客服管理工具&#xff…

Java Swing游戏开发学习26

内容来自RyiSnow视频讲解 这一节讲的是Inventory背包&#xff0c;类似RPG游戏中人物角色放置装备、药品、武器、宝石等物品的一个若干行若干列的表格窗口。 可以显示装备物品&#xff0c;并选择它们。 前言 作者说这一节可能是第二部分里面爬起来最高的山峰。 效果 最后还有…

Unity3d 学习之按钮绑定事件

创建测试脚本 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI;public class myTest : MonoBehaviour {// Start is called before the first frame updatepublic Button _codeBindBtn null;void Start(){if (_codeBi…

IC设计数据传输 如何能保障安全高效?

IC&#xff08;集成电路&#xff09;设计数据&#xff0c;对于IC设计企业来说&#xff0c;其重要性不言而喻。所以IC设计数据传输过程中&#xff0c;其安全性和效率&#xff0c;也需要有保障。 首先我们来看看IC设计数据为什么重要&#xff0c;其重要性体现在多个方面&#xff…

远距离、高品质、低延迟、高保真——SA316无线音频模块带您探索新的音频体验

SA316系列产品分为发射端模块SA316S-TX,SA316F30和接收端模块SA316-RX&#xff0c;该系列方案采用了无线高品质的语音传输芯片来设计&#xff0c;它可以支持外部 PCM / IIS 双模数字音频接口&#xff0c;同时模块为客户提供了标准化的串行接口&#xff0c;使用者可通过串口指令…

C语言基础:初识指针(二)

当你不知道指针变量初始化什么时&#xff0c;可以初始化为空指针 int *pNULL; 我们看NULL的定义&#xff0c;可以看出NULL是0被强制转化为Void* 类型的0&#xff1b;实质还是个0&#xff1b; 如何避免野指针&#xff1a; 1. 指针初始化 2. 小心指针越界 3. 指针指向空间…

算法工程师——算法岗的分类及要求汇总

算法岗工程师 根据 Talent Seer 人才报告显示,全球 AI 从业者总人数约有 30 万,还是供不应求,其中 AI 技术专家(具有相关领域博士学位及 3 年以上工作经验的)约有 3.65 万。 简介 对于计算机专业的毕业生而言,算法岗基本上就是 「高薪」 的代名词。 在当今 IT 行业,算…

vue3.2+vite+unocss原子化配置

1、安装unocss&#xff1a;npm install unocss 2、vite.config.ts中配置&#xff1a; 3、创建unocss自己的ts文件&#xff1a;uno.config.ts 根路径下创建&#xff0c; 4、在创建好的uno.config.ts文件中编写如下代码&#xff1a; // uno.config.ts import {defineConfig,prese…

如果把软路由的网段更换成169.254.0.0/16会咋样?

前言 这几天有小伙伴在折腾软路由系统&#xff0c;然后问题就来了。 他咨询的是&#xff1a;为啥电脑连接软路由之后&#xff0c;无法访问软路由的管理页&#xff1f; 嗯。。。确实不是什么大事。但不注意看&#xff0c;还以为软路由没有正常获取到ip。 熟悉网络的小伙伴们都…

【统计推断】-01 抽样原理之(三)

文章目录 一、说明二、抽样分布三 均值抽样分布3.1 有限母体无放回抽样3.2 有限母体有放回抽样3.3 无限母体 四、比例抽样分布五、和差抽样分布 一、说明 上文中叙述母体和抽样的设计&#xff1b;以及抽样分布的概念&#xff0c;本篇将这种关系定量化&#xff0c;专门针对抽样的…

5V升8.4V2A同步升压恒压WT3213

5V升8.4V2A同步升压恒压WT3213 WT3213同步升压型直流/直流转换器以其微小的尺寸和卓越的能效而广受欢迎。这款设备在设计上的巧妙&#xff0c;包含电流模PWM控制环路、误差放大器、斜线补偿电路、比较器以及功率开关等关键元件&#xff0c;共同构成了它的特殊性能。 在细节上…

mysql-sql-练习题-1

文章目录 环境注释建表 5张建库学生表课程表教师表分数表总表 语法书写顺序in学过/没学过完全相同 环境 Windows cmd&#xff08;普通用户/管理员&#xff09; mysql -uroot -pmysql版本&#xff0c;模式&#xff08;可自定义&#xff09; select version(),global.sql_mode…

选对伪原创改写软件,文章写作不犯难!

文章写作在当下火热的自媒体的行业中是一项非常重要的技能&#xff0c;只要是参与做自媒体的朋友&#xff0c;想要在内容输出方面不出现困难的情况&#xff0c;那么文章写作的技能基本要具备&#xff0c;但是我们依然能看到有很多不擅长写作的朋友也做起了自媒体&#xff0c;并…

为什么选择福汇外汇?

福汇外汇凭借其品牌信誉、丰富的交易产品、先进的交易平台、高杠杆和低保证金要求、专业的客户服务、严格的监管以及便捷的出入金方式&#xff0c;成为了许多投资者选择的外汇交易平台。 为什么选择福汇外汇&#xff1f; 1、品牌信誉&#xff1a;福汇外汇是全球最大的零售外汇交…

深度学习-自动求导

目录 向量链式法则标量链式法则 拓展到向量例题1例题2 符号求导数值求导自动求导计算图自动求导的两种模式链式法则正向累积&#xff08;从x出发&#xff09;反向累积&#xff08;反向传递--先计算最终的函数即y&#xff09;反向累积总结 自动求导计算y关于x的梯度&#xff0c;…

Virtualbox7.0.10--创建虚拟机

前言 下载Virtualbox7.0.10&#xff0c;可参考《Virtualbox–下载指定版本》 Virtualbox7.0.10具体安装步骤&#xff0c;可参考《Virtualbox7.0.10的安装步骤》 Virtualbox7.0.10创建虚拟机&#xff0c;可参考《Virtualbox7.0.10–创建虚拟机》 Virtualbox7.0.10安装Ubuntu20.0…

校园安全升级:AR实景监测场景方案

在教育领域&#xff0c;随着校园的逐步对外开放&#xff0c;学校正面临着前所未有的管理挑战。社会人员的大量涌入不仅带来了文化的交流和知识的分享&#xff0c;也给校园安全带来了诸多隐患。新闻报道中不断出现的校园安全事件&#xff0c;如入室伤人、盗窃和非法传销等&#…