Machine Learning coder
def collect_max(mat):
n = len(mat)
if n == 0:
return 0
dp = [[[ -1 for _ in range(2)] for _ in range(n)] for _ in range(n)]
dp[0][0][1] = 1 if mat[0][0] == 1 else 0
for i in range(n):
for j in range(n):
if mat[i][j] == -1:
continue
if i > 0 and dp[i-1][j][1] != -1:
dp[i][j][1] = max(dp[i][j][1], dp[i-1][j][1] + (1 if mat[i][j] == 1 else 0))
if j > 0 and dp[i][j-1][1] != -1:
dp[i][j][1] = max(dp[i][j][1], dp[i][j-1][1] + (1 if mat[i][j] == 1 else 0))
if dp[n-1][n-1][1] == -1:
return 0
dp[n-1][n-1][0] = dp[n-1][n-1][1]
for i in range(n-1, -1, -1):
for j in range(n-1, -1, -1):
if mat[i][j] == -1:
continue
if i < n-1 and dp[i+1][j][0] != -1:
dp[i][j][0] = max(dp[i][j][0], dp[i+1][j][0] + (1 if mat[i][j] == 1 else 0))
if j < n-1 and dp[i][j+1][0] != -1:
dp[i][j][0] = max(dp[i][j][0], dp[i][j+1][0] + (1 if mat[i][j] == 1 else 0))
return dp[0][0][0]
Airport Limousine ✅
#GamesKraft
1 · 1.5K ·