[Niu Ke] 2. Очевидные случайные числа

Ниуке: Инженер по исследованиям и разработкам Huawei, программирование, вопрос 2

[Niu Ke] 2. Очевидные случайные числа

  Очевидно, генерируются N случайных целых чисел от 1 до 500. Пожалуйста, удалите повторяющиеся числа, то есть оставьте только одно из одинаковых чисел, удалите остальные одинаковые числа, а затем отсортируйте эти числа от меньших к большим и выведите их в порядке их расположения.

Диапазон данных: 1 ≤ n ≤ 1000, размер входного числа удовлетворяет 1 ≤ ​​val ≤ 500

Описание входных данных:
сначала введите количество N случайных целых чисел в первой строке.
Введите целое число в каждую из следующих N строк, представляющее явно сгенерированное случайное число.
Конкретный формат см. в разделе «Пример» ниже.
Описание вывода:
вывод нескольких строк, указывающих результат обработки входных данных.

Пример ввода:

3
2
2
1

Пример вывода:

1
2

Пример объяснения:
Ввод:
первое число равно 3, то есть N=3 этой небольшой выборки, что указывает на то, что компьютер генерирует 3 случайных целых числа от 1 до 500, а затем в каждой строке есть случайное число, всего 3 строки , то есть эти 3 случайных числа:

2
2
1

Таким образом, образец вывода:

1
2  

отвечать

Способ 1. Используйте массив для записи появляющихся чисел, нижний индекс — это число, а значение в массиве — это появившаяся отметка.

import java.util.*;

public class Main {
    
    
    public static void main(String[] args) {
    
    
        Scanner in = new Scanner(System.in);
        int N, n;
        while (in.hasNext()) {
    
    
            N = in.nextInt();
            //用于记录N个数都出现在哪,不记录次数,只要出现对应位置数组的位置就是1
            int[] a = new int[1001];

            while (N > 0) {
    
    
                n = in.nextInt();
                a[n] = 1;
                N--;
            }
            //输出数组的位置不是0的,且按数组下标小到大输出
            for (int i = 0; i < 1001; i++)
                if (a[i] != 0) {
    
    
                    System.out.println(i);
                }
        }
        in.close();
    }
}

Способ 2. Использование TreeSet.TreeSet — это упорядоченная коллекция, и ее функция состоит в предоставлении упорядоченной коллекции Set. Элементы TreeSet поддерживают 2 метода сортировки: естественную сортировку (по возрастанию) или сортировку по предоставленному Comparator.

import java.util.*;

public class Main {
    
    
    public static void main(String[] args) {
    
    
        Scanner in = new Scanner(System.in);

        while (in.hasNext()) {
    
    
            TreeSet<Integer> tree = new TreeSet<>();

            int N = in.nextInt();
            for (int i = 1; i <= N; i++) {
    
    
                tree.add(in.nextInt());
            }
            for (Integer a : tree)
                System.out.println(a);
        }
    }
}

Класс Java TreeSet и его различные операции и методы

Guess you like

Origin blog.csdn.net/qq_44033208/article/details/131873551