老师给了小乐乐一个正整数序列,要求小乐乐把这个序列去重后按从小到大排序。但是老师给出的序列太长了,小乐乐没办法耐心的去重并排序,请你帮助他。
老师给了小乐乐一个正整数序列,要求小乐乐把这个序列去重后按从小到大排序。但是老师给出的序列太长了,小乐乐没办法耐心的去重并排序,请你帮助他。
第一行包含一个正整数n,表示老师给出的序列有n个数。接下来有n行,每行一个正整数k,为序列中每一个元素的值。(1 ≤ n ≤ 105,1 ≤ k ≤ n)
输出一行,为去重排序后的序列,每个数后面有一个空格。
4 2 2 1 1
1 2
5 5 4 3 2 1
1 2 3 4 5
import java.util.Scanner;
import java.util.Set;
import java.util.TreeSet;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
Set arr = new TreeSet();
for (int i = 0; i < n; i++) {
arr.add(in.nextInt());
}
for(Object x:arr){
System.out.print(x+" ");
}
}
} import java.util.Scanner;
import java.util.Arrays;
public class Main {
//先排序 后去重输出
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int[] arr = new int[scan.nextInt()];
for (int i = 0; i < arr.length; i++) {
arr[i] = scan.nextInt();
}
Arrays.sort(arr);
int lastNum = -1;
for (int i = 0; i < arr.length; i++) {
if (arr[i] == lastNum) {
continue;
}
lastNum = arr[i];
System.out.print(arr[i] + " ");
}
}
} import java.util.ArrayList; import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner input=new Scanner(System.in); int n=input.nextInt(); HashSet<Integer> set=new HashSet<Integer>(); for(int i=0;i<n;i++) { set.add(input.nextInt()); } List<Integer> list=new ArrayList<Integer>(set); Collections.sort(list); for(Integer l:list) System.out.print(l+" "); } }
定义一个集合,输入元素后,集合过滤去重,将过滤后的元素放到list中,再利用Collections.sort(list);
输出。一个小的注意事项:HashSet的迭代器在输出时“不保证有序”,但也不是“保证无序”。也就是说,输出时有序也是允许的,但不保证实现的时候每次输出都是有序。
import java.util.*;
public class Main{
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int num[] = new int[n];
for(int i =0;i<n;i++){
num[i]=sc.nextInt();
}
LinkedHashSet<Integer> set = new LinkedHashSet<>();
Arrays.sort(num);
for(int i =0;i<n;i++){
set.add(num[i]);
}
for(int a:set){
System.out.print(a+" ");
}
}
}