华为OD2023(A卷)基础题25【端口合并】

该文描述了一个Java程序,用于处理多个端口组,如果端口组间存在至少两个相同的端口,则可合并。程序读取输入的端口组数据,对端口进行去重和排序,并按输入顺序输出合并后的结果。主要涉及列表操作、排序算法和条件判断。

题目描述

有M个端口组(1<=M<=10),
每个端口组是长度为N的整数数组(1<=N<=100),
如果端口组间存在2个及以上不同端口相同,则认为这2个端口组互相关联,可以合并。

输入描述

第一行输入端口组个数M,再输入M行,每行逗号分割,代表端口组。

备注:端口组内数字可以重复。

输出描述

输出合并后的端口组,用二维数组表示。

组内相同端口仅保留一个,从小到达排序。
组外顺序保持输入顺序
备注:M,N不在限定范围内,统一输出一组空数组[[]]

用例

输入
4
4
2,3,2
1,2
5
输出
[[4],[2,3],[1,2],[5]]
说明
仅有一个端口2相同,不可以合并。

输入
3
2,3,1
4,3,2
5
输出
[[1,2,3,4],[5]]
说明

输入
6
10
4,2,1
9
3,6,9,2
6,3,4
8
输出
[[10],[1,2,3,4,6,9],[9],[8]]
说明

import java.util.*;

/**
 * 
 * 
 * 首先,在 `main` 方法中从标准输入读入一个整数 `m`,表示有几组端口列表。然后,利用一个二维列表 `ports` 
 * 存储每一组端口列表,其中每个子列表存储一个端口列表。接着,对每一组端口列表进行处理,将其分隔为整数列表,
 * 并将处理后的结果加入到 `ports` 列表中。如果发现有空的端口列表或者大于1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值