zoukankan      html  css  js  c++  java
  • LeedCode刷题:1557.可以到达所有点的最少点数

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

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

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

    由分析可知:如果有一条边a->b,那b肯定不在最小的点集中,因为b能到达的a也能到达,且还比b多了a这个可达的点,所以:

    只有入度为0的结点,才可以在最小的点集中,且最小的点集中必须包含所有入度为0的点

    所以:统计所有入度为0的结点即可

     1 class Solution {
     2     public List<Integer> findSmallestSetOfVertices(int n, List<List<Integer>> edges) {
     3         int []in=new int[n];
     4         for(var e:edges){
     5             in[e.get(1)]++;//统计入度
     6         }
     7         LinkedList<Integer> list=new LinkedList<>();
     8         for(int i=0;i<n;i++){
     9             if(in[i]==0)
    10                 list.add(i);//找出入度为0的点
    11         }
    12         return list;
    13     }
    14 }
  • 相关阅读:
    10046 event 知多少
    10046 event 知多少
    awr相关指标解析
    父子关系展示
    secureCRT启动xmanager图形化工具
    linux单用户模式
    Tor
    windows下的unix工具集:UnxUtils
    OPENLDAP
    Windows命令行重命名文件
  • 原文地址:https://www.cnblogs.com/nilbook/p/13553124.html
Copyright © 2011-2022 走看看