解題說明
C++ 解法
複雜度分析
虛擬碼
1. Initialize dp[m+1][n+1] = 0, maxSide = 0
2. For i from 1 to m:
For j from 1 to n:
If matrix[i-1][j-1] == '1':
dp[i][j] = min(dp[i-1][j], dp[i][j-1], dp[i-1][j-1]) + 1
maxSide = max(maxSide, dp[i][j])
3. Return maxSide * maxSide