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));
        }
    
    }
  • 相关阅读:
    Python—设计模式
    Python—操作系统和多线程
    thin mission 2021 11 3
    搜索
    c++ 调试
    Lecture--words families
    高数--积分
    thin mission 2021.11.2
    tiny mission 2021.11.1
    zlib使用心得
  • 原文地址:https://www.cnblogs.com/null00/p/5087611.html
Copyright © 2011-2022 走看看