zoukankan      html  css  js  c++  java
  • Java实现 LeetCode 64 最小路径和

    64. 最小路径和

    给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。

    说明:每次只能向下或者向右移动一步。

    示例:

    输入:
    [
    [1,3,1],
    [1,5,1],
    [4,2,1]
    ]
    输出: 7
    解释: 因为路径 1→3→1→1→1 的总和最小。

    class Solution {
         public int minPathSum(int[][] grid) {
            if (grid == null || grid.length < 1 || grid[0] == null || grid[0].length < 1) {
                return 0;
            }
            
            int row = grid.length;
            int col = grid[row - 1].length;
            
            int dp[][] = new int[row][col];
            
            dp[0][0] = grid[0][0];
            
            for (int i = 1;i < row;i++) {
                dp[i][0] = dp[i - 1][0] + grid[i][0];
            }
            
            for (int i = 1;i < col;i++) {
                dp[0][i] = dp[0][i - 1] + grid[0][i];
            }
            
            for (int i = 1;i < row;i++) {
                for (int j = 1;j < col;j++) {
                    dp[i][j] = Math.min(dp[i - 1][j], dp[i][j - 1]) + grid[i][j];
                }
            }
            
            return dp[row - 1][col - 1];
        }
    }
    
  • 相关阅读:
    6.1.1.1 属性类型之数据属性
    6.1 理解对象
    5.7.2.4 random() 方法
    5.7.2.3 舍入方法
    5.7.2.2 min()和max()方法
    5.7.2.1 Math对象
    5.7.1.4 window对象
    frontend2_s9_part2_fe_d48_form
    s10_part3_django_basic.md
    frontend1_s9_part2_d47_html
  • 原文地址:https://www.cnblogs.com/a1439775520/p/12946851.html
Copyright © 2011-2022 走看看