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.

No se puede hacer un bucle a través de una matriz 2D utilizando ‘rows’ en JS o TS.

Supongamos que quiero crear una matriz 2D con la siguiente estructura:

[0, 1, 1, 1]
[1, 0, 0, 0]
[1, 0, 0, 0]

Para lograr mi objetivo, primero creé una matriz 2D con valores iniciales de 0:

function createGrid(m: number, n: number): number {
    let grid: number[][] = new Array(m).fill(0).map(() => new Array(n).fill(0));

    return 0;
};

Luego, cambié los valores de la primera fila (excepto grid[0][0]) a 1:

function uniquePaths(m: number, n: number): number {
    let grid: number[][] = new Array(m).fill(0).map(() => new Array(n).fill(0));

    for (let i = 1; i <= m; i++) {
        grid[0][i] = 1;
    }

    return 0;
};

De manera similar, intenté cambiar los valores de la primera columna (excepto grid[0][0]) a 1:

function uniquePaths(m: number, n: number): number {
    let grid: number[][] = new Array(m).fill(0).map(() => new Array(n).fill(0));

    for (let i = 1; i <= m; i++) {
        grid[0][i] = 1;
    }

    for (let i = 1; i <= n; i++) {
        grid[i][0] = 1;   // <<-- 'Aquí da un error'
    }

    return 0;
};

Pero, arroja el siguiente error:

grid[i] is undefined

¿Alguien puede por favor explicar qué me estoy perdiendo aquí?

Enlace al código del TypeScript Playground: Link del código en el TypeScript Playground

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El problema está en el bucle que intenta cambiar los valores de la primera columna. En el bucle, el índice i varía desde 1 hasta n, lo que significa que cuando el bucle intenta acceder a grid[i][0], está tratando de acceder a una fila que está más allá de los límites del arreglo. El bucle correcto debería ser desde 1 hasta m en cambio, de la siguiente manera:

    for (let i = 1; i <= m; i++) {
        grid[i][0] = 1;
    }
    

    Con este cambio, el código debería funcionar como se espera y crear la matriz bidimensional deseada.

Comments are closed.