leetcode 841.钥匙和房间

1.题目要求:

2.解题思路:

利用图的深度优先搜索进行遍历

3.解题代码:

cpp 复制代码
class Solution {
public:
    void VisitAllRooms(int v_index,vector<vector<int>>&rooms,vector<bool>& visited){
        //把每一次设立的结点都立标志
        visited[v_index] = true;
        for(int j = 0;j < rooms[v_index].size();j++){
            //如果结点使用过,就不需要再进行遍历了
            if(visited[rooms[v_index][j]] != true){
                int index = rooms[v_index][j];
                VisitAllRooms(index,rooms,visited);
            }
        }
    }
    bool canVisitAllRooms(vector<vector<int>>& rooms) {
        //设立数组为给已经遍历的结点设立标志
        vector<bool> visited;
        visited.resize(rooms.size(),false);
        int v_index = 0;
        //进行深度优先遍历
        VisitAllRooms(v_index,rooms,visited);
        for(int i = 0;i < visited.size();i++){
            if(visited[i] == false){
                return false;
            }
        }
        return true;
    }
};
相关推荐
似水明俊德3 分钟前
06-C#
开发语言·c++·算法·c#
ysa0510308 分钟前
模拟【打牌游戏】
数据结构·c++·笔记·算法
weixin_6495556719 分钟前
C语言程序设计第四版(何钦铭、颜晖)第八章指针之循环后移
c语言·c++·算法
_饭团21 分钟前
C语言数组全解析:从入门到精通
c语言·开发语言·数据结构·经验分享·笔记·学习·算法
地平线开发者24 分钟前
征程 6 | 多阶段模型量化&debug 简介
算法·自动驾驶
张李浩26 分钟前
Leetcode 454 四数相加II 采用哈希表解决
leetcode·哈希算法·散列表
快乐柠檬不快乐26 分钟前
C++中的代理模式实现
开发语言·c++·算法
月明长歌38 分钟前
【码道初阶-Hot100】LeetCode 560. 和为 K 的子数组:从前缀和到哈希计数,彻底讲透为什么“统计前缀和”就等价于统计子数组个数
算法·leetcode·哈希算法
tankeven44 分钟前
HJ134 1or0
c++·算法
keep intensify1 小时前
寻找重复数
数据结构·算法·leetcode