题目
给定一个矩阵,从左上角开始,每次只能向右或向下走,最后到达右下角位置,路径上所有的数字累加起来就是路径和,返回所有的路径中最小的路径和。
如
1 3 5 9
8 1 3 4
5 0 6 1
8 8 4 0
思路
经典动态规划方法,假设矩阵m行数为M, 列为N,先生成大小和矩阵相等的矩阵dp,dp [i][j]表示从左上角(0,0)位置走到(i, j)位置的最小路径和。对m的第一行来说,从(0,0)位置到(0,i)位置只能右走,因此,(0,0)位置到(0,j)位置的路径和就是m[0][0…j]累加的结果,同理可得第一列的值。从(0,0)到(i,j)的路径必然经过位置(i-1,j)或(i, j-1),所以,dp[i][j]=min{dp[i-1][j], dp[i][j-1]} + m[i][j];
代码
#include<algorithm>
#include<iostream>
#in