【思路】
一个常规的思路是用HashSet去重,再用ArrayList的构造方法List[HTML_REMOVED] result = new ArrayList<>(HashSet); 将Set转为List,然后再用Collections.sort()排序。
但实际上没必要,只需使用数组统计每个数字出现的次数,大于0的输出即可。这样一来时空复杂度都为O(N)
import java.io.*;
public class Main{
public static void main(String args[]) throws Exception{
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(bf.readLine());
//学号范围:1到1000
int f[] = new int[1010];
String s[] = bf.readLine().split(" ");
//随机数个数N:1≤N≤100
for(int i = 0; i < N; i++) {
int a = Integer.parseInt(s[i]);
f[a]++;
}
int ans = 0;
for(int i = 1; i <= 1000; i++)
if(f[i] > 0 )ans ++ ;
System.out.println(ans);
for(int i = 1; i <= 1000; i++)
if(f[i] > 0 ) System.out.print(i +" ");
}
}