• 图论第3天----第841题、第463题


    # 图论第3天----第841题、第463题

    ​ 又继续开始修行,把图论这块补上,估计要个5-6天时间。

    一、第841题–钥匙和房间

    ​ 有向图的遍历。dfs遍历3部曲做,思路也较顺----访问过的,就直接返回;没访问过的,就设为true。注意,这里不需要回溯,因为不是找出一条路径来覆盖到所有的节点,而是能覆盖到就行,不要求一条路径来覆盖。

    class Solution {
    public:
        void dfs(vector>& rooms, vector& visited, int x){
            if(visited[x]) return;
            visited[x] = true;
            for(int t : rooms[x]){
                dfs(rooms, visited, t);
            }
        }
    
        bool canVisitAllRooms(vector>& rooms) {
            vector visited(rooms.size(), false);
            dfs(rooms, visited, 0);
            for(int i=0; i
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    二、第463题–岛屿的周长

    ​ 这个题跟dfs三部曲没关系,属于找规律。根据土地的数量、相邻地块的数量,获得最终的结果----num4 - count2;

    class Solution {
    public:
        int islandPerimeter(vector>& grid) {
            int n = grid.size();
            int m = grid[0].size();
            int num=0;
            int count=0;
            for(int i=0; i0 && grid[i-1][j] == 1) count++;
                        if(j>0 && grid[i][j-1] == 1) count++;
                    } 
                }
            }
            return num*4 - count*2;
        }
    };
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
  • 相关阅读:
    学习java第二天
    【UWP】实现一个波浪进度条
    双目项目实战---测距(获取三维坐标和深度信息)
    matlab新能源汽车三自由度操纵稳定性分析及优化
    7-137 整数四则运算
    【广州华锐互动】VR党建多媒体互动展厅:随时随地开展党史教育
    Vue源码学习(六):(支线)渲染函数中with(),call()的使用以及一些思考
    Java文件上传同时携带参数
    易班 华南理工大学 新生入学教育在线考试 题库共503题
    【深度学习】常用算法生成对抗网络、自编码网络、多层感知机、反向传播等讲解(图文解释 超详细)
  • 原文地址:https://blog.csdn.net/u013441272/article/details/133668211