本文共 800 字,大约阅读时间需要 2 分钟。
问题描述
给定一个矩阵m,从矩阵的左上角开始每次只能向右走或者向下走,最后到达右下角的位置,路径上所有的数字累加起来就是路径和,返回所有的路径中最小的路径和。
例如:给出下面的矩阵,从左上角位置开始移动,直至右下角,经过的路径值分别为:1,3,1,0,6,1,0,这时最小路径的和,最短的路径和为12。
问题分析
算法设计
package com.bean.algorithmexec;public class MatrixPath { /* * 给定一个矩阵m,从左上角开始每次只能向右或者向下走,最后到达右下角的位置, * 路径上所有的数字累加起来就是路径和,返回所有的路径中最小的路径和。 * 例如: * 1 3 5 9 * 8 1 3 4 * 5 0 6 1 * 8 8 4 0 * 路径 1,3,1, 6,1,0 是所有路径中路径和最小的,所以返回12。 * */ /* * 计算方法 * */ public static int minPathSum(int [][] m) { if(m==null || m.length==0 || m[0]==null || m[0].length ==0) { return 0; } int row=m.length; int col=m[0].length; int[][] dp=new int[row][col]; dp[0][0] = m[0][0]; for(int i=1;i
输出结果为:
2 5 7 2
4 4 9 3 3 7 3 8 4 1 3 7 sum = 24(完)