Ниуке: Инженер по исследованиям и разработкам 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);
}
}
}