clasificación de los colores LeetCode--

Q: Dado un rojo, blanco y azul, un total de n elementos de la matriz, los ordena in situ, de tal manera que los elementos adyacentes con el mismo color, y ordenados por el rojo blanco, orden, azul.
Esta pregunta, usamos enteros 0, 1 y 2 representan los colores rojo, blanco y azul.
[Ejemplo]
de entrada: [2, 0, 2, 1, 1, 0]
Salida: [0, 0, 1, 1, 2, 2]
[Nota]
no se puede utilizar la base de código de función de clasificación para resolver esta cuestión.
A:
se utiliza la secuenciación en el presente documento a contar. Puede ser visto: https://www.cnblogs.com/bqwzx/p/11029264.html
proporcionado un mapa, clave 0,1,2 respectivamente, el número de registros, y por el número de salidas (en este caso por int [] implementado, me encontrar un mapa demasiados problemas ......)

    public static void sortColors(int[] num) {
        int[] color = new int[3];
        if (num == null || num.length == 0)
            return;
        for (int i = 0; i < num.length; i++) {
            color[num[i]]++;
        }
        for (int i = 0; i < num.length; ) {
            for (int j = 0; j < 3; j++) {
                while (color[j]-- != 0) {
                    num[i++] = j;
                }
            }
        }
    }

Supongo que te gusta

Origin www.cnblogs.com/xym4869/p/12543047.html
Recomendado
Clasificación