目录
一、练习题
1. Linux操作系统有多个发行版,distrowatch.com提供了各个发行版的资料。这些发行版互相存在关联,例如Ubuntu基于Debian开发,而Mint又基于Ubuntu开发,那么我们认为Mint同Debian也存在关联。 发行版集是一个或多个相关存在关联的操作系统发行版,集合内不包含没有关联的发行版。 给你一个 n * n 的矩阵 isConnected,其中 isConnected[i][j] = 1 表示第 i 个发行版和第 j 个发行版直接关联,而 isConnected[i][j] = 0 表示二者不直接相连。 返回最大的发行版集中发行版的数量。
package Algorithm.union
public class Solution {
public func findCircleNum(isConnected: Array<Array<Int64>>): Int64 {
let n = isConnected.size
let dsu = Union(n)
// 遍历矩阵,合并关联的发行版
for (i in 0..n) {
for (j in i+1..n) {
if (isConnected[i][j] == 1) {
dsu.union(i, j)
}
}
}
// 返回最大的集合大小
return dsu.getMaxSetSize()
}
}
class Union {

最低0.47元/天 解锁文章
463

被折叠的 条评论
为什么被折叠?



