• 矩阵最小路径和练习题


    题目:有一个矩阵map,它每个格子有一个权值。从左上角的格子开始每次只能向右或者向下走,最后到达右下角的位置,路径上所有的数字累加起来就是路径和,返回所有的路径中最小的路径和。给定一个矩阵map及它的行数n和列数m,请返回最小路径和。保证行列数均小于等于100.

    思路:典型dp,比较简单,用有一个二维表记录到达每个格子的最小路径,对于第一行和第一列,到达每个格子只可能从一个方向,所以先求第一行,第一列,之后由特殊到一般,对于其他任意的dp[i][j]来说,只有可能从两个方向来的,上或者左,选较小的那个。然后从左到右,从上到下依次求每个格子,最右下角即为所求

      public int getMin(int[][] map, int n, int m) {
            int[][] dp=new int[n][m];
            dp[0][0]=map[0][0];
          //第一列
            for(int i=1;i<n;i++){
                dp[i][0]=map[i][0]+dp[i-1][0];
            }
        //第一行
    for(int i=1;i<m;i++){ dp[0][i]=map[0][i]+dp[0][i-1]; } for(int i=1;i<n;i++){ for(int j=1;j<m;j++){ dp[i][j]=map[i][j]+Math.min(dp[i][j-1],dp[i-1][j]); } } return dp[n-1][m-1]; }
  • 相关阅读:
    判断字符串是否包含某一个值方法
    生成一个随机手机号
    python 常用数据类型及操作方法
    selenium 常用的定位方法
    mysql 多表查询
    转载--python全栈开发学习
    Jenkins执行jmeter自动化脚本方法
    阅读方法
    pytorch学习
    英文阅读材料记录
  • 原文地址:https://www.cnblogs.com/team42/p/6732961.html
Copyright © 2020-2023  润新知