https://leetcode.com/problems/maximal-square/

1. 邊界條件:如果 i 和 j 其中為 0,dp[i][j] = a[i][j]。

因為以位置 (i, j) 為右下角的最大正方形的邊長只能是 1 。

1. 其他如果 a[i][j] = 0,則 dp[i][j] = 0

3. 其他如果a[i][j] = 1,則 dp[i][j]的值由其上方、左方和左上方的三個相鄰位置的最小值+ 1。

dp[i][j] = min( dp[i-1][j], dp[i][j-1], dp[i-1][j-1] ) + 1