力扣1557. 可以到达所有点的最少点数目
题目
题目解析及思路
题目要求找到一个最小的点集,使得从这个点集出发,能到达所有点
考虑答案点集的构成,如果一个点能被其他点到达,那它一定会被替换
因此最终点集一定是所有入度为0的点构成的
代码
class Solution {
public:vector<int> findSmallestSetOfVertices(int n, vector<vector<int>>& edges) {vector<int> d(n,0);//统计入度int size = edges.size();for(int i=0;i<size;i++){int u = edges[i][0];int v = edges[i][1];d[v] ++;}vector<int> ans;for(int i=0;i<n;i++){if(d[i] == 0){ans.push_back(i);}}return ans;}
};