2023-07-13力扣今日三题

链接:

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

题意:

有向无环图,给出一个边数组

找出最小点集可以到达所有点

而且答案一定存在且唯一

解:

简单的思维题,就是找入度为0的点(从其他点抵达不了的点)

答案一定存在且唯一,莽!

实际代码:

#include
using namespace std;
vector findSmallestSetOfVertices(int n, vector>& edges)
{
    vectortemp(n,0);
    for(auto i:edges)
    {
        temp[i[1]]++;
    }
    vectorans;
    for(int i=0;i>n;
    vector> edges;
    int a,b;vectortemp;
    while(cin>>a>>b)
    {
        temp.clear();
        temp.push_back(a);
        temp.push_back(b);
        edges.push_back(temp);
    }
    
    vectorans=findSmallestSetOfVertices(n,edges);
    for(auto i:ans)
    {
        cout<

限制:

  • 2 <= n <= 10^5

  • 1 <= edges.length <= min(10^5, n * (n - 1) / 2)

  • edges[i].length == 2

  • 0 <= fromi, toi < n

  • 所有点对 (fromi, toi) 互不相同。

你可能感兴趣的:(leetcode,算法)