Minimum Falling Path Sum II LeetCode solution in Python

1
class Solution:
2
def minFallingPathSum(self, grid: List[List[int]]) -> int:
3
m, n = len(grid), len(grid[0])
4
if m == 1 and n == 1:
5
return grid[0][0]
6
min_arr = [0 for _ in range(n)]
7
for i in range(m):
8
prefix = [float("inf") for _ in range(n)]
9
suffix = [float("inf") for _ in range(n)]
10
current_row = [elem1 + elem2 for elem1, elem2 in zip(grid[i], min_arr)]
11
for i in range(1, n):
12
prefix[i] = min(prefix[i - 1], current_row[i - 1])
13
for i in range(n - 2, -1, -1):
14
suffix[i] = min(suffix[i + 1], current_row[i + 1])
15
min_arr = [min(pre, suff) for pre, suff in zip(prefix, suffix)]
16
return min(min_arr)

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0