矩阵的最小路径和

此博客链接:https://www.cnblogs.com/ping2yingshi/p/14183560.html

矩阵的最小路径和

题目链接:https://www.nowcoder.com/practice/7d21b6be4c6b429bb92d219341c4f8bb?tpId=188&&tqId=36897&rp=1&ru=/ta/job-code-high-week&qru=/ta/job-code-high-week/question-ranking

题目

题目描述

给定一个 n * m 的矩阵 a,从左上角开始每次只能向右或者向下走,最后到达右下角的位置,路径上所有的数字累加起来就是路径和,输出所有的路径中最小的路径和。
示例1

输入

[[1,3,5,9],[8,1,3,4],[5,0,6,1],[8,8,4,0]]

返回值

12

备注:

1 \leq n,m \leq 20001n,m2000
1 \leq arr_{i,j} \leq 1001arri,j100

题解

 比较是当前值加上从左边来的值大还是当前值加上从右边来的值大。

代码

import java.util.*;


public class Solution {
    /**
     * 
     * @param matrix int整型二维数组 the matrix
     * @return int整型
     */
    public int minPathSum (int[][] matrix) {
        // write code here
      
    
            for(int i=1;i<matrix[0].length;i++)
            {
                matrix[0][i]=matrix[0][i]+matrix[0][i-1];
            }
        
            for(int i=1;i<matrix.length;i++)
            {
                matrix[i][0]=matrix[i][0]+matrix[i-1][0];
            }
        for(int i=1;i<matrix.length;i++)
        {
            for(int j=1;j<matrix[0].length;j++)
            {
                 matrix[i][j]=Math.min(matrix[i-1][j],matrix[i][j-1])+matrix[i][j];
            }
        }
        return matrix[matrix.length-1][matrix[0].length-1];
    }
}

 

结果

 

posted @ 2020-12-24 13:30  萍2樱释  阅读(150)  评论(1编辑  收藏  举报