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

Golang | Leetcode Golang题解之第547题身份数量

题目:

题解:

func findCircleNum(isConnected [][]int) (ans int) {
    n := len(isConnected)
    parent := make([]int, n)
    for i := range parent {
        parent[i] = i
    }
    var find func(int) int
    find = func(x int) int {
        if parent[x] != x {
            parent[x] = find(parent[x])
        }
        return parent[x]
    }
    union := func(from, to int) {
        parent[find(from)] = find(to)
    }

    for i, row := range isConnected {
        for j := i + 1; j < n; j++ {
            if row[j] == 1 {
                union(i, j)
            }
        }
    }
    for i, p := range parent {
        if i == p {
            ans++
        }
    }
    return
}

http://www.kler.cn/a/391030.html

相关文章:

  • 【深度解析】CSS工程化全攻略(1)
  • Java 网络编程(一)—— UDP数据报套接字编程
  • 修改yolo格式的labels类别、删除yolo格式的labels类别
  • 大数据 ETL + Flume 数据清洗 — 详细教程及实例(附常见问题及解决方案)
  • Java学习--网络编程
  • Python标准库模块的使用:math、datetime
  • 技术总结(二十五)
  • Spring Boot框架:计算机课程管理的工程认证之桥
  • 【数据管理】DAMA-数据建模和设计
  • Ollama服务以监听0.0.0.0地址
  • 剑指offer JZ33 二叉搜索树的后序遍历序列
  • 「QT」QT5程序设计专栏目录
  • 深入剖析输入URL按下回车,浏览器做了什么
  • jmeter常用配置元件介绍总结之后置处理器
  • 力扣 LeetCode 19. 删除链表的倒数第N个结点(Day2:链表)
  • FFmpeg存放压缩后的音视频数据的结构体:AVPacket简介,结构体,函数
  • Oracle Or子句
  • 网络安全名词解释
  • FPGA 第二讲 初始FPGA
  • 数据分析那些事儿——关于A/B实验
  • 【LeetCode】【算法】34. 在排序数组中查找元素的第一个和最后一个位置
  • 微信小程序的云开发
  • 13、DHCP和FTP协议
  • 利用AI制作《职业生涯规划PPT》,10分钟完成
  • 【Linux】————信号
  • leetcode21:合并两个有序列表