zoukankan      html  css  js  c++  java
  • [LeetCode] 64.最小路径和

       第一个:

    class Solution {
        public 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<row;i++){
                dp[i][0]=dp[i-1][0]+m[i][0];
            }
            for(int i=1;i<col;i++){
                dp[0][i]=dp[0][i-1]+m[0][i];
            }
            for(int i=1;i<row;i++){
                for(int j=1;j<row;j++){
                    dp[i][j] = Math.min(dp[i - 1][j], dp[i][j - 1]) + m[i][j];
                }
            }
            return dp[row - 1][col - 1];
        }
    }

     第二种:把dp数组换成一维的

        public int minPathSum(int[][] grid) {
            if(grid == null || grid.length == 0) {
                return 0;
            }
            int m = grid.length, n = grid[0].length;
            int[] dp = new int[n];
            for(int i = 0; i < m; i++) {
                for(int j = 0; j < n; j++) {
                    if(j == 0) {
                        dp[j] = dp[j] + grid[i][j];
                    } else if (i == 0) {
                        dp[j] = dp[j - 1] + grid[i][j];
                    } else {
                        dp[j] = Math.min(dp[j], dp[j - 1]) + grid[i][j];
                    }
                }
            }
            return dp[n - 1];
        }

  • 相关阅读:
    2019年CSP-J初赛试题(普及组)试题详解
    开放课件
    猴子选大王 (约瑟夫问题)
    后缀表达式转中缀表达式
    JDBC的使用
    JDBC
    MySQL第五天
    MySQL第四天
    MySQL第三天
    MySQL第二天
  • 原文地址:https://www.cnblogs.com/doyi111/p/12630040.html
Copyright © 2011-2022 走看看