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

【LeetCode】547、省份数量

【LeetCode】547、省份数量

文章目录

  • 一、并查集
    • 1.1 并查集
  • 二、多语言解法

一、并查集

1.1 并查集

初始时共n个集合, 若相邻则合并, 最终返回并查集的集合总数

// go
var sets int
var father [40000]int

func findCircleNum(isConnected [][]int) int {
    n := len(isConnected)
    build(isConnected)
    for i := range n {
        for j := i+1; j < n; j++ {
            if isConnected[i][j] == 1 {
                union(i,j)
            }
        }
    }
    return sets
}

func build(isConnected [][]int) {
    n := len(isConnected)
    for i := range n {
        father[i]=i
    }
    sets = n
}

func find(i int) int {
    if father[i] != i {
        father[i] = find(father[i])
    }
    return father[i]
}

func union(a, b int) {
    fa, fb := find(a), find(b)
    if fa != fb {
        father[fa] = fb
        sets--
    }
}

二、多语言解法

C p p / G o / P y t h o n / R u s t / J s / T s Cpp/Go/Python/Rust/Js/Ts Cpp/Go/Python/Rust/Js/Ts

// cpp
// go 同上
# python
// rust
// js
// ts

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

相关文章:

  • 【pytorch】现代循环神经网络-2
  • Tailwind CSS 实战:动画效果设计与实现
  • 《解密奖励函数:引导智能体走向最优策略》
  • python生成、操作svg图片
  • 单片机串口控制
  • unity中Timeline动画的播放和播放中如何判断播放结束
  • springboot496基于java手机销售网站设计和实现(论文+源码)_kaic
  • 基于 Python 大数据的电脑硬件推荐系统研究
  • ChatGPT是如何生成长文的
  • 微服务篇-深入了解 XA 模式与 AT 模式、分布式事务(部署 TC 服务、微服务集成 Seata )
  • ACDC中AC前级EMS【EMC】
  • 自学记录HarmonyOS Next DRM API 13:构建安全的数字内容保护系统
  • RealityCapture导入视频序列失败
  • 【视觉SLAM:二、三维空间刚体运动】
  • Java 堆排序原理 图文详解 代码逻辑
  • 『VUE』vue-quill-editor设置内容不可编辑(详细图文注释)
  • 一份关于 Ubuntu 系统下代理配置的故障排查笔记
  • C# OpenCvSharp DNN 卡证检测矫正
  • brupsuite的基础用法常用模块(1)
  • .net core 的数据类型
  • 【探花交友】用户登录总结
  • 输入输出(I/O):熟悉 Java 的 I/O 类库,尤其是 NIO 和文件操作
  • LVGL——基础对象篇
  • SpringCloudAlibaba实战入门之路由网关Gateway初体验(十一)
  • YOLOv8模型改进 第二十五讲 添加基于卷积调制(Convolution based Attention) 替换自注意力机制
  • 【SQL】期末复习SQL语法详细总结