华为研发工程师编程题二——去重排序
题目来自牛客网,感谢!
给出若干组数据,对每组数据去重排序
输入格式
若干用例
每个用例第一行输入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);
}
}
本文解析了华为招聘中的编程题,通过使用TreeSet实现数据去重和排序。输入若干组数据,每组数据首先输入数据数量,随后输入具体数值,输出去重排序后的结果。代码使用Java实现,通过读取标准输入并处理。
3475

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



