zoukankan      html  css  js  c++  java
  • LeetCode

    题目:

    Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which minimizes the sum of all numbers along its path.

    Note: You can only move either down or right at any point in time.

    思路:

    动态规划,和unique paths一样

    package dp;
    
    public class MinimumPathSum {
    
        public int minPathSum(int[][] grid) {
            int m;
            int n;
            if (grid == null || (m = grid.length) == 0 || (n = grid[0].length) == 0) return 0;
            int[][] dp = new int[m][n];
            dp[0][0] = grid[0][0];
            for (int i = 1; i < m; ++i) dp[i][0] = dp[i - 1][0] + grid[i][0];
            for (int i = 1; i < n; ++i) dp[0][i] = dp[0][i - 1] + grid[0][i];
            for (int i = 1; i < m; ++i) {
                for (int j = 1; j < n; ++j) {
                    dp[i][j] = Math.min(dp[i - 1][j], dp[i][j - 1]) + grid[i][j];
                }
            }
            
            return dp[m - 1][n - 1];
        }
        
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            int[][] grid = { {4,3,1},
                    {2,1,3},
                    {8,1,3}
                  };
            MinimumPathSum m = new MinimumPathSum();
            System.out.println(m.minPathSum(grid));
        }
    
    }
  • 相关阅读:
    第二周作业(软件需求分析与系统设计)
    自我介绍
    2019春总结作业
    2019春第十六周作业
    2019春第十五周作业
    2019春第十四周作业
    2019春第十二周作业
    2019春第十一周作业
    2019春第十周作业
    2019春第九周作业
  • 原文地址:https://www.cnblogs.com/null00/p/5087611.html
Copyright © 2011-2022 走看看