当前位置:网站首页>LeetCode 1557. The minimum number of points that can reach all points
LeetCode 1557. The minimum number of points that can reach all points
2022-07-06 16:43:00 【Daylight629】
1557. The minimum number of points that can reach all points
To give you one Directed acyclic graph , n Node number is 0 To n-1 , And an array of edges edges , among edges[i] = [fromi, toi] Represents a slave point fromi point-to-point toi The directed side of .
Find the smallest set of points so that all points in the graph can be reached from these points . The problem guarantees that the solution exists and is unique .
You can return these node numbers in any order .
Example 1:

Input :n = 6, edges = [[0,1],[0,2],[2,5],[3,4],[4,2]]
Output :[0,3]
explain : All nodes cannot be reached from a single node . from 0 We can get to [0,1,2,5] . from 3 We can get to [3,4,2,5] . So we output [0,3] .
Example 2:

Input :n = 5, edges = [[0,1],[2,1],[3,1],[1,4],[2,4]]
Output :[0,2,3]
explain : Note the node 0,3 and 2 Unable to reach... From other nodes , So we have to include them in the result point set , These points can reach the node 1 and 4 .
Tips :
2 <= n <= 10^51 <= edges.length <= min(10^5, n * (n - 1) / 2)edges[i].length == 20 <= fromi, toi < n- All point pairs
(fromi, toi)Different from each other .
Two 、 Method 1
Looking for penetration 0 The node of is
class Solution {
public List<Integer> findSmallestSetOfVertices(int n, List<List<Integer>> edges) {
List<Integer> res = new ArrayList<>();
Set<Integer> set = new HashSet<>();
for (List<Integer> edge : edges) {
set.add(edge.get(1));
}
for (int i = 0; i < n; i++) {
if (!set.contains(i)) {
res.add(i);
}
}
return res;
}
}
Complexity analysis
Time complexity :O(m+n), among m Is the number of edges in the graph ,n Is the number of nodes in the graph . You need to traverse all the edges to get nodes with non-zero penetration , Then traverse all nodes and keep the nodes with zero penetration .
Spatial complexity :O(n), among n Is the number of nodes in the graph . You need to use a collection to store nodes with non-zero penetration , The number of nodes in the collection will not exceed n.
边栏推荐
- Codeforces Round #771 (Div. 2)
- Codeforces Round #803 (Div. 2)A~C
- Investigation report of bench type Brinell hardness tester industry - market status analysis and development prospect prediction
- (lightoj - 1236) pairs forming LCM (prime unique decomposition theorem)
- Spark的RDD(弹性分布式数据集)返回大结果集
- Codeforces Global Round 19
- MP4格式详解
- Hbuilder x format shortcut key settings
- Click QT button to switch qlineedit focus (including code)
- Chapter 6 rebalance details
猜你喜欢

Gridhome, a static site generator that novices must know

Raspberry pie 4B installation opencv3.4.0

Pull branch failed, fatal: 'origin/xxx' is not a commit and a branch 'xxx' cannot be created from it

QT style settings of qcobobox controls (rounded corners, drop-down boxes, up expansion, editable, internal layout, etc.)

MP4格式详解

Mp4 format details

Oneforall installation and use

It is forbidden to trigger onchange in antd upload beforeupload

Chapter 7__ consumer_ offsets topic

Basic principles of video compression coding and audio compression coding
随机推荐
第一章 MapReduce概述
Double specific tyrosine phosphorylation regulated kinase 1A Industry Research Report - market status analysis and development prospect prediction
解决Intel12代酷睿CPU单线程只给小核运行的问题
Chapter 5 detailed explanation of consumer groups
Chapter 1 overview of MapReduce
力扣leetcode第 280 场周赛
本地可视化工具连接阿里云centOS服务器的redis
业务系统兼容数据库Oracle/PostgreSQL(openGauss)/MySQL的琐事
Chapter 2 shell operation of hfds
Codeforces Global Round 19
Story of [Kun Jintong]: talk about Chinese character coding and common character sets
Research Report on market supply and demand and strategy of Chinese table lamp industry
It is forbidden to trigger onchange in antd upload beforeupload
Use JQ to realize the reverse selection of all and no selection at all - Feng Hao's blog
Tree of life (tree DP)
Market trend report, technical innovation and market forecast of double-sided foam tape in China
Cmake error: could not create named generator visual studio 16 2019 solution
音视频开发面试题
Codeforces - 1526C1&&C2 - Potions
js封装数组反转的方法--冯浩的博客