当前位置:网站首页>【952. Calculate the maximum component size according to the common factor】
【952. Calculate the maximum component size according to the common factor】
2022-07-31 00:50:00 【[email protected]】
来源:力扣(LeetCode)
描述:
给定一个由不同正整数的组成的非空数组 nums ,考虑下面的图:
- 有
nums.length个节点,按从nums[0]到nums[nums.length - 1]标记; - 只有当
nums[i]和nums[j]共用一个大于 1 的公因数时,nums[i]和nums[j]之间才有一条边.
返回 图中最大连通组件的大小 .
示例 1:

输入:nums = [4,6,15,35]
输出:4
示例 2:
输入:nums = [20,50,9,63]
输出:2
示例 3:
输入:nums = [2,3,6,7,4,12,21,39]
输出:8
提示:
- 1 <= nums.length <= 2 * 104
- 1 <= nums[i] <= 105
- nums 中所有值都 不同
方法:并查集

代码:
class UnionFind {
public:
UnionFind(int n) {
parent = vector<int>(n);
rank = vector<int>(n);
for (int i = 0; i < n; i++) {
parent[i] = i;
}
}
void uni(int x, int y) {
int rootx = find(x);
int rooty = find(y);
if (rootx != rooty) {
if (rank[rootx] > rank[rooty]) {
parent[rooty] = rootx;
} else if (rank[rootx] < rank[rooty]) {
parent[rootx] = rooty;
} else {
parent[rooty] = rootx;
rank[rootx]++;
}
}
}
int find(int x) {
if (parent[x] != x) {
parent[x] = find(parent[x]);
}
return parent[x];
}
private:
vector<int> parent;
vector<int> rank;
};
class Solution {
public:
int largestComponentSize(vector<int>& nums) {
int m = *max_element(nums.begin(), nums.end());
UnionFind uf(m + 1);
for (int num : nums) {
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
uf.uni(num, i);
uf.uni(num, num / i);
}
}
}
vector<int> counts(m + 1);
int ans = 0;
for (int num : nums) {
int root = uf.find(num);
counts[root]++;
ans = max(ans, counts[root]);
}
return ans;
}
};
执行用时:196 ms, 在所有 C++ 提交中击败了71.01%的用户
内存消耗:75.2 MB, 在所有 C++ 提交中击败了27.54%的用户
author:LeetCode-Solution
版权声明
本文为[[email protected]]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/212/202207310039478432.html
边栏推荐
- ShardingSphere之垂直分库分表实战(五)
- MySQL数据库(基础)
- typescript14-(单独指定参数和返回值的类型)
- MySQL table design for message queue to store message data
- 不用Swagger,那我用啥?
- 【Yugong Series】July 2022 Go Teaching Course 019-For Circular Structure
- Go 学习笔记(84)— Go 项目目录结构
- Jmeter parameter transfer method (token transfer, interface association, etc.)
- Typescript18 - object type
- Preparations for web vulnerabilities
猜你喜欢

Rocky/GNU之Zabbix部署(3)
![DNS resolution process [visit website]](/img/58/ae9464dc714c4fcb958424ac134c99.png)
DNS resolution process [visit website]

MySQL高级-六索引优化

C语言力扣第48题之旋转图像。辅助数组

The difference between h264 and h265 decoding
![[In-depth and easy-to-follow FPGA learning 13---------Test case design 1]](/img/1c/a88ba3b01d2e2302c26ed5f730b956.png)
[In-depth and easy-to-follow FPGA learning 13---------Test case design 1]

A complete guide to avoiding pitfalls for the time-date type "yyyy-MM-dd HHmmss" in ES

MySQL的触发器

typescript9-常用基础类型

MySQL master-slave replication and read-write separation script - pro test available
随机推荐
Huawei's "genius boy" Zhihui Jun has made a new work, creating a "customized" smart keyboard from scratch
【愚公系列】2022年07月 Go教学课程 013-常量、指针
Jetpack Compose learning (8) - State and remeber
[Yugong Series] July 2022 Go Teaching Course 015-Assignment Operators and Relational Operators of Operators
Gabor filter study notes
[C language course design] C language campus card management system
go mode tidy出现报错go warning “all“ matched no packages
Basic usage of async functions and await expressions in ES6
MySQL数据库面试题总结(2022最新版)
Jmeter parameter transfer method (token transfer, interface association, etc.)
Add text watermark to PHP image
Mysql systemized JOIN operation example analysis
Typescript18 - object type
The difference between substring and substr in MySQL
Can deep learning solve the parameters of a specific function?
Responsive layout vs px/em/rem
typescript10-commonly used basic types
Error ER_NOT_SUPPORTED_AUTH_MODE Client does not support authentication protocol requested by serv
This project is so geeky
Problem record in the use of TypeScript
