注:本文的代码实现使用的是 JS(JavaScript),为前端中想使用JS练习算法和数据结构的小伙伴提供解题思路。

描述

给你一个有向无环图, n 个节点编号为 0 到 n-1 ,以及一个边数组 edges ,其中 edges[i] = [fromi, toi] 表示一条从点 fromi 到点 toi 的有向边。

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

你可以以任意顺序返回这些节点编号。


示例:

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

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

提示:

  • 2 <= n <= 10^5
  • 1 <= edges.length <= min(10^5, n * (n - 1) / 2)
  • edges[i].length == 2
  • 0 <= fromi, toi < n
  • 所有点对 (fromi, toi) 互不相同。

解题思路

我们可以找入度为0的点,因为入度为0的点肯定是其他点不能到达的,所以这种点一定是出发点。而入度不为0的点所组成的图,一定是连通的(可以百度一下为啥),所以我们只需要找到入度为0 的点,它们就是题中要求的点。

var findSmallestSetOfVertices = function(n, edges) {let in_list = new Array(n).fill(0)// 查找每个点的入度for(const item of edges){in_list[item[1]] ++}let result = []for(let i = 0; i < n; i++)// 读入为0,就添加到结果数组中if(in_list[i] === 0) result.push(i)return result
};

力扣题目——1557. 可以到达所有点的最少点数目相关推荐

  1. 【算法leetcode】1557. 可以到达所有点的最少点数目(rust和go我都要)

    文章目录 1557. 可以到达所有点的最少点数目: 样例 1: 样例 2: 提示: 分析 题解 rust go typescript python c c++ java 原题传送门:https://l ...

  2. 力扣题目——429. N 叉树的层序遍历

    注:本文的代码实现使用的是 JS(JavaScript),为前端中想使用JS练习算法和数据结构的小伙伴提供解题思路. 描述 给定一个 N 叉树,返回其节点值的层序遍历.(即从左到右,逐层遍历). 树的 ...

  3. 力扣题目——637. 二叉树的层平均值

    注:本文的代码实现使用的是 JS(JavaScript),为前端中想使用JS练习算法和数据结构的小伙伴提供解题思路. 描述 给定一个非空二叉树, 返回一个由每层节点平均值组成的数组. 示例: 输入: ...

  4. 力扣题目——103. 二叉树的锯齿形层序遍历

    注:本文的代码实现使用的是 JS(JavaScript),为前端中想使用JS练习算法和数据结构的小伙伴提供解题思路. 描述 给定一个二叉树,返回其节点值的锯齿形层序遍历.(即先从左往右,再从右往左进行 ...

  5. 力扣题目——107. 二叉树的层序遍历 II

    注:本文的代码实现使用的是 JS(JavaScript),为前端中想使用JS练习算法和数据结构的小伙伴提供解题思路. 描述 给定一个二叉树,返回其节点值自底向上的层序遍历. (即按从叶子节点所在层到根 ...

  6. 力扣--让字符串成为回文串的最少插入次数

    力扣–让字符串成为回文串的最少插入次数 文章目录 力扣--让字符串成为回文串的最少插入次数 一.题目描述 二.分析 三.代码 相关题目: 腾讯–构造回文:腾讯–构造回文 最长回文子串和回文链表:最长回 ...

  7. 基本算法总结,力扣题目整理

    系统性学习算法,扎实您的打码基本功! 作为算法初学者的我从19年8月份开始在力扣学习算法,到现在AC了700多道题目. 随着打卡题目数量的增多,我发现算法常见考察的知识点大概有十几种,包括:二分,滑动 ...

  8. 力扣题目归类,顺序刷题不再难

    目录 介绍 前奏-基础篇 中篇-链表.树的相关操作 进阶-回溯.动态规划 脑筋急转弯 介绍 大家好,相信很多人都知道刷力扣的重要性,但是如果不能将题目很好的归类整理专一练习,而是东做一道西做一道,那么 ...

  9. 力扣每日一题 到达终点数字

    Day 37 Date: November 4, 2022 8:39 PM LinkedIn: https://leetcode.cn/problems/reach-a-number/descript ...

最新文章

  1. uva 11978 Fukushima Nuclear Blast (二分+多边形与圆交)
  2. 有关架构图你需要了解的基础知识
  3. sicily 1034. Forest
  4. 360金融产品总监赵鑫:互金产品经理应该关心这些东西
  5. python数据分析常见面试题_python数据分析方向,面试题解答
  6. 关于汽车领域的知识图谱实战入门
  7. 【项目合作】方向任意的目标检测
  8. 创建表空间、用户和赋权
  9. CCF201503-3 节日(100分)
  10. (100)详细描述一个你做过的项目, 面试必问(二十四)(第20天)
  11. HFSS喇叭天线仿真
  12. 地址后面的sessionid怎么消除_富贵包的消除和改善头前倾,通过运动和减肥可以吗?...
  13. SpringMvc生成Excel和PDF
  14. 广告牌定时器怎么设置时间_广告牌定时器时间到了灯箱不亮怎么回事?
  15. 计算机发展史上一些重要的著作
  16. Chromium内核和Webkit的关系到底是什么?
  17. 手把手带你搭建一个简单的webpack脚手架(一)
  18. xpdf工具(PDF转图片工具)
  19. 绿皮车里的温馨服务 情暖回家路
  20. c# 时间格式化为英文_C#中如何将日期中的月份转化成英文

热门文章

  1. 【科研论文】某雷达自动测试系统研制–基于全硬件TCP/IP协议栈芯片W5300
  2. android 中如何分析内存泄漏
  3. Qt文件打包_vortex_新浪博客
  4. 前嗅ForeSpider教程:配置关键词
  5. 《Cocos2D权威指南》——1.6 本章小结
  6. ES6解构赋值原理详解
  7. 实用技巧——获取验证码的倒计时
  8. thinkphp 关联模型配置代码
  9. jquery submit ie6下失效的原因分析及解决方法
  10. [ISSUE]invalid 'cobj' in function 'lua_cocos2dx_EventDispatcher_dispatchCustomEvent'