#T0087. 排序与去重
0
排序与去重
题目背景
在一次数据整理工作中,工作人员收集到一大批编号,其中有不少重复。现在需要把这些编号按从小到大的顺序排列,并去掉重复的编号,每种编号只保留一个。
题目描述
给定 个整数 (可能有重复,可能为负数)。请将它们去重后按升序排列:
- 第一行输出去重后数字的个数 ;
- 第二行输出这 个数字,相邻数字之间用一个空格分隔。
输入格式
第一行一个整数 。
第二行 个整数 。
输出格式
第一行一个整数 。
第二行 个整数,为去重并升序排序后的结果,用空格分隔。
样例输入1
8
3 1 2 3 2 1 5 1
样例输出1
4
1 2 3 5
样例输入2
10
-7 2000000000 -7 0 3 -2000000000 0 3 2000000000 -1
样例输出2
6
-2000000000 -7 -1 0 3 2000000000
样例输入3(稍大,包含重复、负数和边界值)
12
12 7 -3 7 0 2000000000 12 -2000000000 0 -3 7 5
样例输出3
7
-2000000000 -3 0 5 7 12 2000000000
数据范围与约定
提示
数据量较大,请使用较快的输入方式(例如 scanf,或关闭 cin 与 stdio 的同步)。先整体排序,再用双指针(或利用有序性)相邻比较去重,是一种直接且高效的做法。
冀公网安备13098402000493号