Leetcode 1239 Solution
This article provides solution to leetcode question 1239 (largest-1-bordered-square)
Access this page by simply typing in "lcs 1239" in your browser address bar if you have bunnylol configured.
Leetcode Question Link
https://leetcode.com/problems/largest-1-bordered-square
Solution
class Solution:
def largest1BorderedSquare(self, grid: List[List[int]]) -> int:
m = len(grid)
n = len(grid[0])
sum1 = [[0 for _ in range(n + 1)] for _ in range(m + 1)]
sum2 = [[0 for _ in range(n + 1)] for _ in range(m + 1)]
for i in range(m):
for j in range(n):
sum1[i + 1][j + 1] = grid[i][j] + sum1[i + 1][j]
for j in range(n):
for i in range(m):
sum2[i + 1][j + 1] = grid[i][j] + sum2[i][j + 1]
k = min(m, n)
while k > 0:
for i in range(m - k + 1):
for j in range(n - k + 1):
if sum1[i + 1][j + k] - sum1[i + 1][j] != k:
continue
if sum1[i + k][j + k] - sum1[i + k][j] != k:
continue
if sum2[i + k][j + 1] - sum2[i][j + 1] != k:
continue
if sum2[i + k][j + k] - sum2[i][j + k] != k:
continue
return k * k
k -= 1
return 0