打卡图论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

的数量。

cpp 复制代码
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; 
    }
};

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

相关推荐
CoderYanger4 分钟前
C.滑动窗口——2762. 不间断子数组
java·开发语言·数据结构·算法·leetcode·1024程序员节
智者知已应修善业11 小时前
【输入两个数字,判断两数相乘是否等于各自逆序数相乘】2023-10-24
c语言·c++·经验分享·笔记·算法·1024程序员节
CoderYanger20 小时前
动态规划算法-子数组、子串系列(数组中连续的一段):21.乘积最大子数组
开发语言·算法·leetcode·职场和发展·动态规划·1024程序员节
CoderYanger21 小时前
A.每日一题——3432. 统计元素和差值为偶数的分区方案
java·数据结构·算法·leetcode·1024程序员节
CoderYanger1 天前
动态规划算法-子数组、子串系列(数组中连续的一段):26.环绕字符串中唯一的子字符串
java·算法·leetcode·动态规划·1024程序员节
韩家阿杰2 天前
RabbitMQ技术的使用
1024程序员节
CoderYanger3 天前
动态规划算法-简单多状态dp问题:15.买卖股票的最佳时机含冷冻期
开发语言·算法·leetcode·动态规划·1024程序员节
CoderYanger3 天前
递归、搜索与回溯-FloodFill:33.太平洋大西洋水流问题
java·算法·leetcode·1024程序员节
CoderYanger3 天前
动态规划算法-斐波那契数列模型:2.三步问题
开发语言·算法·leetcode·面试·职场和发展·动态规划·1024程序员节
CoderYanger3 天前
动态规划算法-简单多状态dp问题:16.买卖股票的最佳时机含手续费
开发语言·算法·leetcode·动态规划·1024程序员节