LeetCode 54 - Matriz Espiral

errores cepillo título cuando recluta la escuela

Después de CA 1. subido a Github en la materia

Muy bajo costo, la solución no significa que otras personas a entender su verdadera digestión, el cepillado no refleja fácilmente resumidos olvidado, sólo recuerda que las comunicaciones mirada de CA antes, pero la idea por completo, no se recuerda. Después / semana cada dos semanas / meses, para ser objeto de una AC reciente revisión del programa pizarra, Revisión del Antiguo, el tema de las normas de ensayo se realiza pizarra CA libre de errores.

2. Tipo de casos de prueba no está cubierto totalmente

Se adhieren 防御性编程a la esquina caso de considerar cuál de estas categorías, por lo que la pregunta está obligado a considerar que un vector fila bueno, vector columna, matriz, matriz general. Además, desenterrar los puntos potenciales de este tipo de temas, preguntas que tienen simetría.

Resumen y Reflexión

Solución AC propia
class Solution {
    public List<Integer> spiralOrder(int[][] matrix) {
        List<Integer> result = new ArrayList<>();
        if (matrix == null || matrix.length == 0) {
            return result;
        }
        int m = matrix.length, n = matrix[0].length;
        for (int k = 0; k < (Math.min(m, n) + 1) / 2; ++k) {
            int j = 0;
            for (j = k; j < n - k; ++j) {
                result.add(matrix[k][j]);
            }
            for (j = k + 1; j < m - k; ++j) {
                result.add(matrix[j][n - k - 1]);
            }
            if (m - k - 1 > k) {
                for (j = n - k - 2; j >= k; --j) {
                    result.add(matrix[m - k - 1][j]);
                }
            }
            if (n - k - 1 > k){
                for (j = m - k - 2; j > k; --j) {
                    result.add(matrix[j][k]);
                }
            }
        }
        return result;
    }
}
Nueve capítulos de la Solución
class Solution {
    public List<Integer> spiralOrder(int[][] matrix) {
        List<Integer> result = new ArrayList<>();
        if (matrix == null || matrix.length == 0) {
            return result;
        }
        int m = matrix.length, n = matrix[0].length;
        int x = 0, y = 0;
        while (m > 0 && n > 0) {
            if (m == 1) {
                for (int i = 0; i < n; ++i) {
                    result.add(matrix[x][y++]);
                }
                break;
            } else if (n == 1) {
                for (int i = 0; i < m; ++i) {
                    result.add(matrix[x++][y]);
                }
                break;
            }
            for (int i = 0; i < n - 1; ++i) {
                result.add(matrix[x][y++]);
            }
            for (int i = 0; i < m - 1; ++i) {
                result.add(matrix[x++][y]);
            }
            for (int i = 0; i < n - 1; ++i) {
                result.add(matrix[x][y--]);
            }
            for (int i = 0; i < m - 1; ++i) {
                result.add(matrix[x--][y]);
            }
            x++;
            y++;
            m = m - 2;
            n = n - 2;
        }
        return result;
    }
}
Resumen y Reflexión

Aunque escribió el código de CA más corto, pero más como un extraño al observar el código de la ley escrita. Nueve capítulos del algoritmo es más acorde con el pensamiento computacional a través ( X , y ) (x,y) las coordenadas del punto de inicio de grabación, por metro metro y norte norte controla el número de pasos en la entrevista más fácil escribir sin faltas. el propio código en caso de una entrevista olvidado yo F Si gg directamente hacia arriba.

Asimismo, recuerda un poco del diablo / ideas inusuales en las entrevistas es arriesgado, no todos los entrevistadores son como Pony.ai ACM gran Dios se sienta allí, se puede entender rápidamente la idea, la mayoría de los entrevistadores línea de desarrollo de negocio de la compañía son temporales listos. Así que el juego seguro, idea general es maestro de primera selección.

Publicado 11 artículos originales · ganado elogios 2 · Vistas 667

Supongo que te gusta

Origin blog.csdn.net/liheng301/article/details/104946578
Recomendado
Clasificación