最新华为上机考试
真题目录:点击查看目录
华为OD面试真题精选:点击立即查看
2025华为od机试双机位A卷 -华为OD上机考试双机位A卷
题目描述
有M(1<=M<=10)个端口组,
每个端口组是长度为N(1<=N<=100)的整数数组,
如果端口组间存在2个及以上不同端口相同,则认为这2个端口组互相关联,可以合并。
第一行输入端口组个数M,再输入M行,每行逗号分隔,代表端口组。
输出合并后的端口组,用二维数组表示。
输入描述
第一行输入一个数字M
第二行开始输入M行,每行是长度为N的整数数组,用逗号分割
输出描述
合并后的二维数组
示例1
输入
4
4
2,3,2
1,2
5
输出
[[4],[2,3,2],[1,2],[5]]
说明
仅有一个端口2相同,不可以合并。
示例2
输入
3
2,3,1
4,3,2
5
输出
[[1,2,3,4],[5]]
说明
无
示例3
输入
6
10
4,2,1
9
3,6,9,2
6,3,4
8
输出
[[10],[1,2,3,4,6,9],[9],[8]]
说明
无
解题思路
通过用例解释这道题目:
在用例2 中:
2,3,1
4,3,2
5
【2,3,1】与【4,3,2】存在2和3是相同的,所以可以合并。
在用例3中
10
4,2,1
9
3,6,9,2
6,3,4
8
【6,3,4】与【3,6,9,2】存在3和6是相同的,可以合并成为【2,3,4,6,9】
然后发现【4,2,1】与【2,3,4,6,9】存在2和4 相同,最后合并成【1,2,3,4,6,9】
双重for循环可能不足以解决这个问题,因为一次循环可能会出现新的数组。因此,建议使用while循环,并将初始条件设置为true,只要有任何一次合并,就将flag设为true。如果循环结束时flag仍然为false,则说明不再有可以合并的端口组。
Java
订阅专栏 解锁全文
5333

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



