题目描述
有 M(1<=M<=10) 个端口组
每个端口组是长度为N(1<=N<=100)的整数数组,如果端口组间存在2个及以上不同端口相同,则认为这2个端口组 互相关联,可以合并
第一行输入端口组个数M,再输入M行,每行逗号分隔,代表端口组。输出合并后的端口组,用二维数组表示
输入描述
第一行输入一个数字M
第二行开始输入M行,每行是长度为N的整数数组,用逗号分割输出描述
合并后的二维数组,用二维数组表示
1:组合内同端口仅保留一个,并从小到大排序。
2:组合外顺序保持输入顺序。
示例1:
输入:
4
4
2,3,2
1,2
5
输出:
[[4],[2,3],[1,2],[5]]
输入
3
2,3,1
4,3,2
5
输出:
[[1,2,3,4],[5]]
解题思路
将端口组用 TreeSet存储。遍历所有端口组,并且尝试合并它们。如果两个端口组有2个及以上相同的端口,合并它们。重复此操作,直到无法合并任何端口组。
本文介绍了华为在线开发者测试(OD)中的一道真题,涉及端口组的合并问题。题目要求根据端口组间是否存在相同端口进行合并,并给出详细解题思路及参考代码。解题过程中,使用了集合数据结构来存储端口组,通过遍历并比较端口组,找到可合并的组进行合并,最终输出合并后的二维数组。示例展示了不同输入情况下的输出结果。
订阅专栏 解锁全文
31万+

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



