problems(rs): add “1557. Minimum Number of Vertices to Reach All Nodes”
Signed-off-by: Matej Focko <me@mfocko.xyz>
This commit is contained in:
parent
4bb6d712e2
commit
3a111bd4cf
1 changed files with 19 additions and 0 deletions
19
problems/minimum-number-of-vertices-to-reach-all-nodes.rs
Normal file
19
problems/minimum-number-of-vertices-to-reach-all-nodes.rs
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
impl Solution {
|
||||||
|
pub fn find_smallest_set_of_vertices(n: i32, edges: Vec<Vec<i32>>) -> Vec<i32> {
|
||||||
|
// It should be possible to use topological ordering + BFS, but…
|
||||||
|
|
||||||
|
let mut is_reachable: Vec<bool> = vec![false; n as usize];
|
||||||
|
for dst in edges.iter().map(|edge| edge[1] as usize) {
|
||||||
|
is_reachable[dst] = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
let mut result: Vec<i32> = vec![];
|
||||||
|
for (i, &reachable) in is_reachable.iter().enumerate() {
|
||||||
|
if !reachable {
|
||||||
|
result.push(i as i32);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
result
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue