#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 递增路径的最大长度
# @param matrix int整型二维数组 描述矩阵的每个数
# @return int整型
#
class Solution:
def solve(self , matrix: List[List[int]]) -> int:
# write code here
mx=0
n=len(matrix)
m=len(matrix[0])
dirs=[[1,0],[-1,0],[0,1],[0,-1]]
memo=[[0]*m for i in range(n)]
def dfs(matrix ,row ,col,memo):
# 已经计算
if memo[row][col]!=0:
return memo[row][col]
# 对当前的计数+1
memo[row][col]+=1
for dir in dirs:
new_row=row+dir[0]
new_col=col+dir[1]
if 0<=new_row<n and 0<=new_col<m and matrix[row][col]<matrix[new_row][new_col]:
memo[row][col]=max(memo[row][col],dfs(matrix,new_row,new_col,memo)+1)
return memo[row][col]
for i in range(n):
for j in range(m):
mx=max(mx,dfs(matrix,i,j,memo))
return mx