package com.算法专练.力扣.按公因数计算最大组件大小;
import java.util.Arrays;
/**
* @author xnl
* @Description:
* @date: 2022/7/30 21:33
*/
public class Solution {
public static void main(String[] args) {
Solution solution = new Solution();
}
public int largestComponentSize(int[] nums) {
int m = Arrays.stream(nums).max().getAsInt();
Union union = new Union(m + 1);
for (int num : nums){
for (int i = 2; i * i <= num; i++){
if (num % i == 0){
union.union(num, i);
union.union(num, num / i);
}
}
}
int[] counts = new int[m + 1];
int ans = 0;
for (int num : nums){
int root = union.find(num);
counts[root]++;
ans = Math.max(ans, counts[root]);
}
return ans;
}
}
class Union{
int[] parent;
int[] rank;
public Union (int n){
// 并查集初始化
parent = new int[n];
for (int i = 0; i < n; i++){
parent[i] = i;
}
rank= new int[n];
}
// 按秩合并
public void union(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] ++;
}
}
}
// 普通合并
public void union2(int x, int y){
parent[find(x)] = find(y);
}
public int find(int x){
if (parent[x] != x){
parent[x] = find(parent[x]);
}
return parent[x];
}
}
相关推荐
Coppelia Sim (v-REP)仿真 机器人3D相机手眼标定与实时视觉追踪 (一)
先把这连个都添加到场景中,然后把kinect的depth相机拖到vision sensor中,把kinect的script也拖到vision sensor中,同时要注意修改深度相机的坐标,及修改script,删掉/rgb部分。由于需要导入到仿真场景中PDF文件不能直接导入,所以需要生成图下文件,使用windows自带的画图工具,生成以厘米为单位的图像格式,大小和标定板的设置大小一直。可以生成需要用的标定板的文件,设置标定板的大小,棋盘格的大小,等相关的参数,之后可以保存PDF文件。设置plane的大小。
LeetCode 0952.按公因数计算最大组件大小:建图 / 并查集
LeetCode 0952.按公因数计算最大组件大小:建图 / 并查集
从安装到跑通第一个例程:Halcon 20.11深度学习版环境搭建全记录
本文详细记录了Halcon 20.11深度学习版环境搭建的全过程,从安装配置到运行第一个例程,特别针对CUDA版本冲突、算子验证和样本数据预处理等常见问题提供解决方案。通过实战案例展示PCB缺陷分类流程,帮助工程师快速掌握工业级图像处理技术,提升深度学习模型在工业质检中的应用效率。
leetcode:952. 按公因数计算最大组件大小
4)其实我们没有必要一定求出质因子,因为只要a和b如果有相同的因子,那么必然有相同的质因子。数值中的每个数通过其因子与其他数产生连接,这种连接具有传递性,所以用并查集。最终返回并查集最大的那棵树的有几个节点。(2)怎么判断一个数是不是质数。(3)怎么求X的所有质因子。怎么求两个数的公因数。(1)什么叫做质因子。...
基于 YOLO + SAM 的自动图像标注实战
摘要: 本文提出一种基于YOLO检测和SAM分割的自动化数据标注流水线方案,通过YOLO定位目标并生成检测框,再以检测框为提示驱动SAM完成精细分割,最终输出YOLO格式的标注文件。该方案将人工标注升级为半自动流程,显著提升标注效率,尤其适用于多类别、大规模图像的实例级标注需求。代码模块化设计支持模型灵活替换,并集成异常处理与进度可视化功能。虽依赖YOLO检测质量且对小目标存在局限,但作为工程落地方案,可有效降低私有数据集构建成本,适用于工业检测、遥感等场景的冷启动标注。
01. VBA从入门到精通——录制宏、窗口、快捷键
excel表功能区右击→常用→选择显示开发工具选项→确定Visual Basic:打开VBA窗口宏:查看要录制的宏录制宏:准备录制宏使用相对引用:录制宏的时候对单元格的引用做一个设置宏安全性:对宏的使用做安全设置,一般设置为禁用所有宏,并发出通知,此时打开带有宏代码的工作薄时会出现警告标记,如果宏可信就选择启动。
leetcode-952:按公因数计算最大组件大小
因此采用枚举公因式的方式,如果k>=2,且num%k==0,那么k为公约数,对num和k进行联结,以及num和num/k进行联结。只有当nums[i]和nums[j]共用一个大于1的公因数时,nums[i]和nums[j]之间才有一条边。有nums.length个节点,按从nums[0]到nums[nums.length-1]标记;基本思路把关联的加入到并查集中,最后遍历nums,相同的根节点那么数量+1,这样就能找到最多元素的集合了。遍历每个值,两两匹配会超时。......
ADS学习笔记 2. 低噪声放大器设计
ADS学习笔记 2. 低噪声放大器设计。设计了一个中心频率433MHz,增益18.206dB,NF=0.134dB,S11带宽较好的低噪声放大器
LeetCode 第 952 题:按公因数计算最大组件大小(并查集)
地址:https://leetcode-cn.com/problems/largest-component-size-by-common-factor/ 这道题题目都直接画成了连通图,显然可以考虑使用并查集。 1、这些数的所有质因子,是连接不同候选数的桥梁,即两个数因为有了相同的质因子,它们才能在一个连通分量里; 2、最大连通组件那里,要绕一个弯子,对于候选数组中的每一个数,查询一下这个数在并查集...
DolphinScheduler工作流中ChunJun任务保存失败的深度解析与实战修复
本文深度解析了在DolphinScheduler工作流中创建ChunJun任务时遭遇“parameter invalid”保存失败的普遍问题。其根源在于前端表单的`customConfig`参数默认值与后端校验逻辑不匹配。文章提供了两种实战修复方案:一是修改前端源码并重新编译,二是热更新已部署的JS文件,并对比了其适用场景与风险,帮助用户彻底解决此集成障碍。
单片机通过蜂鸣器播放任意音乐代码实现(2):音乐单片机代码自动生成
单片机通过蜂鸣器播放任意音乐代码实现(2):音乐单片机代码自动生成 上一节我们已经构建了基于51单片机的蜂鸣器音乐播放环境,接下来只需要手动或者自动添加音乐代码便能实现不同音乐的播放。当然,第二节将告诉你如何自动生成这些音乐代码。 所用软件 MuseScore 3;用于转换MID文件为musicxml文件 C/C++ IDE(本文为Visual Studio 2019) 1.生成音乐对应的MID文件 可以直接下载mid格式音乐文件,也可以将某段音乐转换为MID文件。最好是直接使用mid格式音乐文件,可
JAVA程序设计:按公因数计算最大组件大小(LeetCode:952)
给定一个由不同正整数的组成的非空数组 A,考虑下面的图: 有A.length个节点,按从A[0]到A[A.length - 1]标记; 只有当 A[i] 和 A[j] 共用一个大于 1 的公因数时,A[i]和 A[j] 之间才有一条边。 返回图中最大连通组件的大小。 示例 1: 输入:[4,6,15,35] 输出:4 示例 2: 输入:[20,50,9,63] 输出:2 示例 3: 输入:[2,3,6,7,4,12,21,39] 输出:8 提示: 1 ...
【数据集】CMIP6气候模式数据下载
简介CMIP6及其气候模式数据下载
leetcode:952. 按公因数计算最大组件大小【并查集】
一个数,它和它所有的因数都应该是一组 然后对所有数都这样分解 最后,对所有数,可以得到root 这个root就是对应的分组 总结 简单并查集应用
C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片
基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正
NTscan扫描工具
ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。
LeetCode:952. 按公因数计算最大组件大小【欧拉筛 + 并查集】
返回图中最大连通组件的大小。
TMS_WebGMaps_1.9.8.0_Full_Source
TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder
LeetCode 952. 按公因数计算最大组件大小
换种思路,可以求每个数的所有约数,然后以约数为key,以数的list为value存到哈希表中,每次把相同key的list下的数合并到并查集中这样复杂度只有O(n*logm),另外发现nums各不相同因此可以进行离散化把[1,10^5]映射到[1,2*10^4]上,也就是list中存数组的下标,并查集中也是合并元素下标。【质因数+并查集】一开始我想的是两两用gcd查公因数,如果不是1就用并查集合并,但是复杂度O(n*n*gcd),O(gcd)=O(logm),所以显然是超时的。...
温度PID控制PLC程序
温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值
【LeetCode】按公因数计算最大组件大小 [H](并查集)
LeetCode 952:一个数组中,如果两个数的最大公共因子有大于1的,则认为这两个数之间有通路 返回数组中,有多少个独立的域。采用并查集求解。
力扣刷题打开03 按公因数计算最大组件大小(困难)
for(intnumnums){//等同于for(intnum=num.begin();只有当nums[i]和nums[j]共用一个大于1的公因数时,nums[i]和nums[j]之间才有一条边。有nums.length个节点,按从nums[0]到nums[nums.length-1]标记;著作权归领扣网络所有。输入nums=[2,3,6,7,4,12,21,39]输入nums=[20,50,9,63]输入nums=[4,6,15,35]...
leetcode 952. 按公因数计算最大组件大小(质数筛+并查集)
给定一个由不同正整数的组成的非空数组 A,考虑下面的图: 有 A.length 个节点,按从 A[0] 到 A[A.length - 1] 标记; 只有当 A[i] 和 A[j] 共用一个大于 1 的公因数时,A[i] 和 A[j] 之间才有一条边。 返回图中最大连通组件的大小。 输入:[4,6,15,35] 输出:4 总结一下题目的意思,若a和b有一个大于1的公因数,则a和b属于1组,假如a和b一组,b和c一组,那么a和c也是一组。 很显然是一个并查集的题目,这题的关键是确定任意两个数是否属于一组,确定之
【952. 按公因数计算最大组件大小】
内存消耗75.2MB,在所有C++提交中击败了27.54%的用户。执行用时196ms,在所有C++提交中击败了71.01%的用户。给定一个由不同正整数的组成的非空数组。返回图中最大连通组件的大小。
LeetCode每日一题——952. 按公因数计算最大组件大小
本题是对并查集的简单应用,如果。
LeetCode·每日一题·952.按公因数计算最大组件大小·并查集
并查集
【Leetcode 952】按公因数计算最大组件大小
给定一个由不同正整数的组成的非空数组numsnums[0]nums[i]nums[j]nums[i]nums[j]返回图中最大连通组件的大小。
LeetCode 952. 按公因数计算最大组件大小(枚举因子+并查集)
题意: 给定一个由不同正整数的组成的非空数组 A,考虑下面的图: 有 A.length 个节点,按从 A[0] 到 A[A.length - 1] 标记; 只有当 A[i] 和 A[j] 共用一个大于 1 的公因数时,A[i] 和 A[j] 之间才有一条边。 返回图中最大连通组件的大小。 数据范围: 1 <= A.length <= 20000 1 <= A[i] <= 100000 解法: 用并查集将每个数和自己的所有>1的因子合并,统计连通块个数即可. 复杂度O(n*
leetcode | go | 第952题 | 按公因数计算最大组件大小
按公因数计算最大组件大小
Leetcode 952. 按公因数计算最大组件大小
第二步,遍历,遍历每一个num,获取每个数在并查集中的root,统计相同root的num的个数,个数最大的那个即为最大连通组件的大小。第一步,遍历每个数字num,并获取每个数字的各个质因数,将质因数和num在并查集中进行连接到同一个集合中。返回 图中最大连通组件的大小。
1753



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



