LeetCode 62 — Unique Paths

Primer problema de DP 2-D. Caminos en un grid moviéndose solo derecha o abajo. dp[i][j] = dp[i-1][j] + dp[i][j-1].

Enunciado

Robot en grid m × n. Empieza en top-left, llega a bottom-right. Solo puede mover derecha o abajo. ¿Cuántos caminos únicos hay?


Solución — DP 2-D O(n) espacio

class Solution:
    def uniquePaths(self, m, n):
        dp = [1] * n
        for i in range(1, m):
            for j in range(1, n):
                dp[j] += dp[j-1]
        return dp[-1]

Análisis: O(m·n) tiempo, O(n) espacio (rolling array).

Recurrencia

dp[i][j] = dp[i-1][j] + dp[i][j-1] — formas de llegar a (i,j) = formas de llegar desde arriba + desde la izquierda. Primera fila/columna todo 1s.


Conexiones

Estado

  • Leído
  • Implementado desde cero
  • Resuelto en LeetCode