#cambia los for de for (let m in grid) a

1 messages · Page 1 of 1 (latest)

cedar zenith
#

||```

function detectBombs(grid: boolean[][]): number[][] {
const pointsDiff = [
[1, 0],
[0, 1],
[1, 1],
[-1, 0],
[0, -1],
[-1, -1],
[-1, 1],
[1, -1],
];

const result = [];

for (let y1 = 0; y1<grid.length; y1++) {
  for (let x1=0; x1 < grid[y1].length; x1++) {
    let value = 0;
    for(let i=0; i<pointsDiff.length; i++){
      const x = x1 + pointsDiff[i][0];
      const y = y1 + pointsDiff[i][1];
      value += ~~(grid[y]?.[x] );

    };

    result[y1] ??= [];
    result[y1][x1] = value;
  }
}

return result;

}

mortal trout
#
function detectBombs(grid) {
  const result = [];

  for (let y1 = 0; y1 < grid.length; y1++) {
    for (let x1=0; x1 < grid[y1].length; x1++) {
      let acc = 0;
      for (const [x2, y2] of [
        [1, 0],
        [0, 1],
        [1, 1],
        [-1, 0],
        [0, -1],
        [-1, -1],
        [-1, 1],
        [1, -1],
      ]) {
        const x = x1 + x2;
        const y = y1 + y2;
        const value = +!!grid[y]?.[x];
        acc += value;
      }

      result[y1] ??= [];
      result[y1][x1] = acc;
    }
  }

  return result;
}
#

Con los 2 primeros fors fue suficiente 5 estrellas, complejidad 3

cedar zenith
#

la verdad eso de la complejidad no lo entiendo mucho, mira que en uno usas 3 fors y en el otro tambien, uno da 1 de complejidad y el otro da 3, La verdad la complejidad no me parece buena forma para poner estrellas.