首页 > 试题广场 >

小乐乐与序列

[编程题]小乐乐与序列
  • 热度指数:19715 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解

老师给了小乐乐一个正整数序列,要求小乐乐把这个序列去重后按从小到大排序。但是老师给出的序列太长了,小乐乐没办法耐心的去重并排序,请你帮助他。


输入描述:

第一行包含一个正整数n,表示老师给出的序列有n个数。接下来有n行,每行一个正整数k,为序列中每一个元素的值。(1 ≤ n ≤ 105,1 ≤ k ≤ n)



输出描述:
输出一行,为去重排序后的序列,每个数后面有一个空格。
示例1

输入

4
2
2
1
1

输出

1 2 
示例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+" ");
        }
    }
}

发表于 2021-12-11 00:12:18 回复(0)
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] + " ");
        }
    }
}

发表于 2021-10-25 16:28:05 回复(0)
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的迭代器在输出时“不保证有序”,但也不是“保证无序”。也就是说,输出时有序也是允许的,但不保证实现的时候每次输出都是有序。

发表于 2021-01-27 14:22:27 回复(0)
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+" ");
        }
    }
}

发表于 2020-11-24 20:39:27 回复(0)