Solución

@hectoraguero·6/5/2026TypeScript
solution.tsTypeScript
function minPaintCost(costs: number[][]): number {
  if (costs.length === 0) return 0;
  if (costs[0].length === 0) return 0;

  let previousMin = 0;
  let previousSecondMin = 0;
  let previousMinColorIndex = -1;

  for (let house of costs) {
    let currentMin = Infinity;
    let currentSecondMin = Infinity;

    for (const [paintCostIndex, paintCost] of house.entries()) {
      const bestPrevCost = paintCostIndex === previousMinColorIndex ? previousSecondMin : previousMin;

      const totalCost = paintCost + bestPrevCost;

      if (totalCost < currentMin) {
        currentSecondMin = currentMin;
        currentMin = totalCost;
        previousMinColorIndex = paintCostIndex;
      } 
      
      else if (totalCost < currentSecondMin) {
        currentSecondMin = totalCost;
      }
    }

    previousMin = currentMin;
    previousSecondMin = currentSecondMin;
  }

  return previousMin;
}

export { minPaintCost };
0respuestas
Respuestas

Aún no hay respuestas

¡Sé el primero en responder!

Escribir un comentario

Recuerda ser amable. Estás comentando la solución de otra persona. Comparte tu perspectiva de forma constructiva y respetuosa.

Debes iniciar sesión para publicar un comentario.