华为研发工程师编程题二——去重排序

本文解析了华为招聘中的编程题,通过使用TreeSet实现数据去重和排序。输入若干组数据,每组数据首先输入数据数量,随后输入具体数值,输出去重排序后的结果。代码使用Java实现,通过读取标准输入并处理。

华为研发工程师编程题二——去重排序

题目来自牛客网,感谢!

给出若干组数据,对每组数据去重排序

输入格式

若干用例
每个用例第一行输入N,代表该用例所含数据数
每个用例第二至N+1行输入N个数据

输出格式

每个用例输出若干个去重排序后的数据

输入范例

3
2
2
1
11
10
20
40
32
67
40
20
89
300
400
15

输出范例

1
2
10
15
20
32
40
67
89
300
400

难度不是很大,由于TreeSet是有序无重集合,因此将数据录入TreeSet中来直接实现去重排序。
华为相比算法,似乎更注重IO一些。

我的代码实现

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeSet;

public class RandomNums {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);

		String n = null;
		List<Set<Integer>> list = new ArrayList<Set<Integer>>();
		while (sc.hasNextLine() && !((n = sc.nextLine()).equals(""))) {
			Set<Integer> set = new TreeSet<Integer>();
			for (int i = 0; i < Integer.valueOf(n); i++)
				set.add(sc.nextInt());
			list.add(set);
			sc.nextLine();
		}
		sc.close();
		for (Set<Integer> set : list)
			for (int x : set)
				System.out.println(x);

	}
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值