此处代码
class Solution:
def maxMoves(self, grid: List[List[int]]) -> int:
n, m = len(grid), len(grid[0])
#f = [[-1] * m] * n 每行之间共享数据单元
f = [[-1 for i in range(m)] for i in range(n)]
#print(f)
dx = [-1, 0, 1]
dy = [1, 1, 1]
def dp(x, y):
#print(x, y, f[x][y])
if f[x][y] != -1:
return f[x][y]
f[x][y] = 0
#print(x, y, f[x][y])
for i in range(3):
a, b = x + dx[i], y + dy[i]
#print(a, b, grid[a][b])
if a >= 0 and a < n and b >= 0 and b < m and grid[a][b] > grid[x][y]:
f[x][y] = max(dp(a, b) + 1, f[x][y])
#print(a, b, f[a][b])
#print(x, y, f[x][y])
#print(f[1][0])
return f[x][y]
res = 0
for i in range(n):
#print(i)
#print(f[1][0])
res = max(res, dp(i, 0))
#print(f)
return res
直接用乘法就寄了