LeetCode1557. 可以到达所有点的最少点数目
联想到拓扑排序的原理,入度为0的点是其它点不能到达的,一定作为一个起点,入度大于0的点一定存在前驱,故要求的最小点集即为入度为0的点
代码:
class Solution {
public:
vector<int> findSmallestSetOfVertices(int n, vector<vector<int>>& edges) {
vector<int> ans;
vector<int> in(n + 1);
for (auto& e : edges)in[e[1]]++;
for (int i = 0; i < n; i++)if (in[i] == 0)ans.push_back(i);
return ans;
}
};