[Niu Ke] 2. Números aleatorios obvios

Niuke: Pregunta 2 de programación del ingeniero de I+D de Huawei

[Niu Ke] 2. Números aleatorios obvios

  Obviamente, se generan N enteros aleatorios entre 1 y 500. Elimine los números repetidos, es decir, conserve solo uno de los mismos números, elimine el resto de los mismos números y luego ordene estos números de menor a mayor y envíelos en el orden en que están dispuestos.

Rango de datos: 1 ≤ n ≤1000, el tamaño del número de entrada satisface 1 ≤ val ≤ 500

Descripción de entrada:
primero ingrese el número N de números enteros aleatorios en la primera línea.
Ingrese un número entero en cada una de las siguientes N líneas, que representa un número aleatorio que se genera claramente.
Para el formato específico, consulte el "Ejemplo" a continuación.
Descripción de salida:
salida de varias líneas, que indica el resultado del procesamiento de datos de entrada

Ejemplo de entrada de ejemplo:

3
2
2
1

Salida de ejemplo:

1
2

Descripción del ejemplo:
Entrada:
el primer número es 3, es decir, N=3 de esta pequeña muestra, lo que significa que la computadora genera tres números enteros aleatorios entre 1 y 500, y luego cada línea tiene un número aleatorio, un total de 3 líneas, es decir, estos 3 números aleatorios son:

2
2
1

Así que la salida de muestra es:

1
2  

respuesta

Método 1. Use una matriz para registrar los números que aparecen, el subíndice es el número y el valor en la matriz es la marca que aparece.

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();
    }
}

Método 2. Usar TreeSet TreeSet es una colección ordenada, y su función es proporcionar una colección Set ordenada. Los elementos de TreeSet admiten 2 métodos de clasificación: clasificación natural (orden ascendente) o clasificación según el comparador proporcionado.

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);
        }
    }
}

Clase Java TreeSet y sus diversas operaciones y métodos

Supongo que te gusta

Origin blog.csdn.net/qq_44033208/article/details/131873551
Recomendado
Clasificación