给水果尺寸排序
时间限制:C/C++语言 1000MS;其他语言 3000MS
内存限制:C/C++语言 65536KB;其他语言 589824KB
题目描述:
给定N个整数,表示水果的尺寸,按升序对它们进行排序。对于所有重复整数,应删除冗余整数并仅保留其中之一,最后保留下来升序排列的水果的尺寸数字。
输入
两行。第一行是整数N,表示一共有几个数字。第二行中有N个整数,分别表示水果的尺寸,每个整数之间用一个空白字符分隔。
输出
首先在第一行中输出剩余整数的数量。并在第二行中输出所有剩余的具体的整数,它们之间用一个空白字符分隔。
样例输入
5
1 3 2 2 4
样例输出
4
1 2 3 4
提示
不需要考虑输入非正常整数状态。
解题思路:
很简单,加入集合,排个序。
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
HashSet<Integer> set = new HashSet<>();
for (int i = 0; i < n; i++) {
set.add(scanner.nextInt());
}
ArrayList<Integer> res = new ArrayList<>(set);
Collections.sort(res);
System.out.println(res.size());
StringBuilder sb = new StringBuilder();
for (int i : res) {
sb.append(i).append(" ");
}
System.out.println(sb.substring(0, sb.length() - 1));
}
}