赞
踩
这一题的话算是一个脑筋急转弯的题目吧,本质上就是求各个坐标下其右下方矩阵当中除自己外最大的元素是多少,然后相减即为从该位置作为起点时能够获得的最大分数,而与路径无关。
而这个就是一个比较简单的问题了。
给出python代码实现如下:
class Solution:
def maxScore(self, grid: List[List[int]]) -> int:
n, m = len(grid), len(grid[0])
_max = [[-math.inf for _ in range(m)] for _ in range(n)]
for i in range(n-2, -1, -1):
_max[i][-1] = max(_max[i+1][-1], grid[i+1][-1])
for j in range(m-2, -1, -1):
_max[-1][j] = max(_max[-1][j+1], grid[-1][j+1])
for i in range(n-2, -1, -1):
for j in range(m-2, -1, -1):
_max[i][j] = max(_max[i][j+1], _max[i+1][j], grid[i+1][j], grid[i][j+1])
return max(_max[i][j]-grid[i][j] for i in range(n) for j in range(m))
提交代码评测得到:耗时994ms,占用内存30MB。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。