该类题目还有一种问法
假设有一个6*6的棋盘,每个格子里面有一个奖品(每个奖品的价值在100到1000之间),现在要求从左上角开始到右下角结束,每次只能往右或往下走一个格子,所经过的格子里的奖品归自己所有。问最多能收集价值多少的奖品。(最多就是max,最短就是min)
新的一个点的最短路径一定等于其上方、左方最短路径+当前的值
用a[i][j]表示从(0,0)到(m,n)的所有路径中总和最小的值,动态转移方程为:
a[i][j] = min(a[i - 1][j], a[i][j - 1]) + grid[i][j]
输入
[
[1,3,1],
[1,5,1],
[4,2,1]
]
输出: 7
Explanation: Because the path 1→3→1→1→1 minimizes the sum.
def func():
grid = list(input().strip())
m = len(grid) # 二维数组的行数
n