当前位置: 首页 > article >正文

打卡图论10.24

有 n 个城市,其中一些彼此相连,另一些没有相连。如果城市 a 与城市 b 直接相连,且城市 b 与城市 c 直接相连,那么城市 a 与城市 c 间接相连。

省份 是一组直接或间接相连的城市,组内不含其他没有相连的城市。

给你一个 n x n 的矩阵 isConnected ,其中 isConnected[i][j] = 1 表示第 i 个城市和第 j 个城市直接相连,而 isConnected[i][j] = 0 表示二者不直接相连。

返回矩阵中 

输入:isConnected = [[1,1,0],[1,1,0],[0,0,1]]
输出:2

 的数量。

class Solution {
public:
    void dfs(vector<vector<int>>& isConnected, vector<int>& visit, int len, int i){
        for(int  j = 0; j < len; j ++){
            if(isConnected[i][j] == 1 && !visit[j]) {  //如果i,j连通并且j没有被访问过
                visit[j] = 1;                          //将j加入
                dfs(isConnected, visit, len, j);       //以j为原点遍历其他点
            }
        }
    }

    int findCircleNum(vector<vector<int>>& isConnected) {
        int len = isConnected.size();
        vector<int> visit(len);
        int ans = 0;
        for( int i = 0; i < len; i ++){
            if(visit[i] == 0){  //从(0,0)开始往后
                dfs( isConnected, visit, len, i);
                ans ++;
            }
        } 
        return ans; 
    }
};

力扣运行要在他的环境下运行,想要运行可以自己转换一下,我用的这个方法是深度优先搜索


http://www.kler.cn/news/367222.html

相关文章:

  • fetch: 取消请求、读取流、获取下载进度...
  • 基于neo4j的学术论文关系管理系统
  • mac 上使用 cmake 构建包含 OpenMP 的项目
  • 【Linux】线程池详解及其基本架构与单例模式实现
  • 2024“源鲁杯“高校网络安全技能大赛-Misc-WP
  • shardingsphere-分表-按创建日期分表
  • Qt元对象系统 —— 属性系统
  • 【论文阅读】Tabbed Out: Subverting the Android Custom Tab Security Model
  • 6.stm32 OLED显示屏
  • spring响应式编程
  • Python 流程控制专题:pass 与接口
  • 安全知识见闻-编程语言
  • Java面试题十一
  • idea历史版本下载
  • Redis 过期策略 总结
  • 过采样与欠采样技术原理图解:基于二维数据的常见方法效果对比
  • git学习(1)(简单概述、代码版本控制方式(集中/分布))
  • JAVA基础:多线程 (学习笔记)
  • Tesseract OCR 安装
  • Llama 3.2-Vision 多模态大模型本地运行教程
  • 中国人寿财险青岛市分公司:科技赋能,车险服务再升级
  • QThread finished Qt::DirectionConnection可能导致start()不会返回的问题
  • ️ Vulnhuntr:利用大型语言模型(LLM)进行零样本漏洞发现的工具
  • 【微服务】Java 对接飞书多维表格使用详解
  • 数据分析人员需要掌握sql到什么程度?
  • PHP写一个二维数组排序算法函数可以调用PHP内置函数