4 × 5 grid · dp[i][j] = side of largest all-1 square ending at (i,j)
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
Grid DP (tabulation)
▸1dp = R × C grid, best = 02first row / col: dp = source value3for i in 1..R−1: for j in 1..C−1:4 if grid[i][j] == 0: dp[i][j] = 05 else dp[i][j] = min(dp[i−1][j], dp[i][j−1], dp[i−1][j−1]) + 16 best = max(best, dp[i][j])7return best * best
state
- grid4×5
- statedp[i][j] = max all-1 square side ending here