求解此问题要动态规划法去求解
动态规划法是拆分问题将大问题分成很多小问题去解决,从而一步步得到最优解,动态规划法分解出来的问题都不是独立的。
此问题的路径方向选择上只能是向下或向右走,因此网格的第一行的每个元素只能从左上角元素开始向右移动,网格的第一列的每个元素只能从左上角元素开始向下移动,这个时候选择的路径是唯一的只能向下走。
而不在第一行和第一列的元素,可以从其上方相邻元素向下移动一步到达,或者从其左方相邻元素向右移动一步到达,元素对应的最小路径和等于其上方相邻元素与其左方相邻元素两者对应的最小路径和中的最小值加上当前元素的值。
创建一个二维数组 d[][],与原始网格的大小相同,d[i][j] 表示从左上角出发到 (i,j)位置的最小路径和。