es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Problema de matriz anidada y bucle anidado no está funcionando.

Este debería ser el input y output:

Input: matrix = [[1,2,3],[4,5,6],[7,8,9]]
Output: [[7,4,1],[8,5,2],[9,6,3]]
El output retornado es en realidad el mismo que el input. ¿Qué estoy haciendo mal?
var rotate = function(matrix) {
        let result = matrix;
        let i = 0;
        let index = matrix.length - 1;
        for (let x of matrix) {
            for (let n of x) {
                result[i][index] == n;
                if (i<matrix.length-2)
                i++;    
            }
            index--;
        }
        console.log(result);
        return result;
        };

        var list= [[1,2,3],[4,5,6],[7,8,9]];

        rotate(list);

i++;=”” }=”” index–;=”” }=”” console.log(result);=”” return=”” result;=”” };=”” var=”” list=”[[1,2,3],[4,5,6],[7,8,9]];” rotate(list);=”” “`=””></matrix.length-2)
i++;
}
index–;
}
console.log(result);
return result;
};

    var list= [[1,2,3],[4,5,6],[7,8,9]];

    rotate(list);

“`
>

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El problema con el código actual es que la línea result[i][index] == n; debería asignar el valor de n a result[index][i], no a result[i][index]. Esto rotará adecuadamente la matriz. El código corregido es el siguiente:

    var rotate = function(matrix) {
        let result = [];
        for (let i = 0; i < matrix.length; i++) {
            result.push([]);
            for (let j = 0; j < matrix.length; j++) {
                result[i][j] = matrix[matrix.length - j - 1][i];
            }
        }
        console.log(result);
        return result;
    };
    
    var list = [[1,2,3],[4,5,6],[7,8,9]];
    
    rotate(list);
    

    Esto producirá la salida deseada:

    [[7,4,1],[8,5,2],[9,6,3]]
    

Comments are closed.