zoukankan      html  css  js  c++  java
  • 【LeetCode】841.钥匙和房间(bfs+dfs,java实现)

    题目

    链接

    image-20200715203520676

    题解

    方法一:bfs

    class Solution {
        public boolean canVisitAllRooms(List<List<Integer>> rooms) {
            boolean[] seen = new boolean[rooms.size()];
            seen[0] = true;
            Stack<Integer> stack = new Stack();
            stack.push(0);
    
            //At the beginning, we have a todo list "stack" of keys to use.
            //'seen' represents at some point we have entered this room.
            while (!stack.isEmpty()) { // While we have keys...
                int node = stack.pop(); // Get the next key 'node'
                for (int nei: rooms.get(node)) // For every key in room # 'node'...
                    if (!seen[nei]) { // ...that hasn't been used yet
                        seen[nei] = true; // mark that we've entered the room
                        stack.push(nei); // add the key to the todo list
                    }
            }
    
            for (boolean v: seen)  // if any room hasn't been visited, return false
                if (!v) return false;
            return true;
        }
    }
    

    方法二:dfs

    class Solution {
        public boolean canVisitAllRooms(List<List<Integer>> rooms) {
            boolean[] visit = new boolean[rooms.size()];
            dfs(rooms,0,visit);
            for (boolean visited:visit){
                if (!visited)
                    return false;
            }
            return true;
        }
    
        private void dfs(List<List<Integer>> rooms, int room, boolean[] visit){
            if (!visit[room]){
                visit[room]=true;
                for (int num:rooms.get(room))
                    dfs(rooms,num,visit);
            }
        }
    }
    
  • 相关阅读:
    GridView取不到值的问题总结
    DataGridView中的Combobox的应用
    .NET开发的一些积累
    .net字符串内存的分配
    冒泡排序
    字段自动递增的数据库建表的SQL写法
    [数据库]简单SQL语句总结
    C#知识
    sql语句大全
    白盒测试和黑盒测试
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13307955.html
Copyright © 2011-2022 走看看