最大得分的路径数目
难度:
标签:
题目描述
代码结果
运行时间: 66 ms, 内存: 17.5 MB
解释
方法:
该题解使用动态规划的方法求解。dp[i][j]存储从(i, j)到终点的最大得分和对应的路径数。对于每个位置(i, j),我们考虑从下方、右方和右下方三个方向来的路径,取这三个方向中得分最高的路径,如果有多条路径得分相同,则将它们的路径数相加。最终,dp[0][0]就存储了从起点到终点的最大得分和对应的路径数。
时间复杂度:
O(n^2)
空间复杂度:
O(n^2)
代码细节讲解
🦆
在动态规划的初始设置中,为什么将dp数组中的初始值设为负无穷,而不是0或其他正常值?
▷🦆
dp数组中,每个元素为(score, ways)的元组,这里的ways在遇到障碍或没有路径时应该设置为多少?题解中使用了负无穷,这是否合适?
▷🦆
题解中提到从下方、右方和右下方三个方向更新状态,为什么没有考虑从左上方、上方或左方得到更新呢?
▷🦆
在处理路径得分时,为什么在遇到起点'E'时,将其得分设为0?这样的处理有何特别含义?
▷