Quick actions

cmd+k|ctrl+k

Navigation

Languages

Max Land Python Google Solution

Snippet info

Language

Python

Visibility

public

Author

lalsom854

Created

2025-02-13T19:43:13.570775Z

Updated

2025-02-13T19:43:13.570775Z

def largest_square(ba: list[list[int]]) -> int:
    n=len(ba)
    m=len(ba[0])
    dp=[[n * 0 for i in range(m)]]
    max_num = -1
    for i in range(n):
        for j in range(m):
            if ba[i][j]==0:
                continue
            left = right = diag = 0
            if i>0: left = dp[i-1][j]
            if j>0: right = dp[i][j-1]
            if (i>0 and j>0): diag = dp[i-1][j-1]
            
            dp[i][j] = min([left,right,diag])+1
            max_num = max(max_num, dp[i][j])
            
    return max_num
    
ab = [[0,1,0,1],[1,1,1,0],[0,1,1,0],[0,0,0,1]]
    
print(largest_square(ab))
INFO