跳至主要內容

841. 钥匙和房间

T4mako算法深度优先广度优先小于 1 分钟

841. 钥匙和房间

中等

题目描述open in new window

解题思路:

dfs:

  • 设置一个 bool 数组,存放 rooms 中每个数是否可访问。
  • 定义 num 判断可访问的房间个数
  • 定义 dfs() 函数,传入 rooms 和 第x个索引房间
  • 递归调用 dfs()
class Solution {
    boolean[] vis;
    int num;
    public boolean canVisitAllRooms(List<List<Integer>> rooms) {
        int n = rooms.size();
        num = 0;
        vis = new boolean[n];
        dfs(rooms, 0);
        return num == n;
    }
    // 传入 rooms 和 第x个索引房间
    public void dfs(List<List<Integer>> rooms, int x) {
        vis[x] = true;
        num++;
        for (int it : rooms.get(x)) {
            if (!vis[it]) {
                dfs(rooms, it);
            }
        }
    }
}
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.15.5