[闲聊] 每日leetcode 75 - Day24 - 2

楼主: yam276 ('_')   2025-07-07 16:59:32
841. Keys and Rooms
题目:
找一个图每个点是否互相连通
思路:
题目给的是两层 Vec 的邻接表
所以我们就每次进房间 查邻接表 然后进去每个房间
进过的房间做记号 看到记号直接退出节省效率
最后看记号表是否每个房间都去过了
Code:
impl Solution {
pub fn can_visit_all_rooms(rooms: Vec<Vec<i32>>) -> bool {
fn dfs(room: usize, rooms: &Vec<Vec<i32>>, visited: &mut Vec<bool>) {
if visited[room] {
return;
}
visited[room] = true;
for &key in &rooms[room] {
dfs(key as usize, rooms, visited);
}
}
let mut visited = vec![false; rooms.len()];
dfs(0, &rooms, &mut visited);
visited.into_iter().all(|v| v)
}
}

Links booklink

Contact Us: admin [ a t ] ucptt.com