zoukankan      html  css  js  c++  java
  • [LeetCode] Minimum Path Sum

    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.

    解题思路:

    一个简单的dp,从上往下,从左往右扫一遍即可。

    class Solution {
    public:
        int minPathSum(vector<vector<int> > &grid) {
        // IMPORTANT: Please reset any member data you declared, as
        // the same Solution instance will be reused for each test case.
        if(grid.size() == 0) return 0;
        int m = grid.size(), n = grid[0].size();
        int **dp = new int*[m];
        for(int i = 0;i < m;i++)
            dp[i] = new int[n];
        
        for(int i = 0;i < m;i++)
        {
            for(int j = 0;j < n;j++)
            {
                if(i == 0)
                {
                    if(j == 0) dp[i][j] = grid[i][j];
                    else dp[i][j] = dp[i][j - 1] + grid[i][j];
                }
                else
                {
                    if(j == 0) dp[i][j] = dp[i - 1][j] + grid[i][j];
                    else dp[i][j] = min(dp[i - 1][j], dp[i][j - 1]) + grid[i][j];
                }
            }
        }
        
        return dp[m - 1][n - 1];
        }
    };
  • 相关阅读:
    DHCP配置实例
    upupw phpmyadmin写shell
    网络配置课学期总结
    c#写一个网站后台扫描器
    移位运算符
    JavaScript 事件
    JS自动爆炸案例
    生成树协议
    暴力操作节点
    为博客园添加统计访问量的工具
  • 原文地址:https://www.cnblogs.com/changchengxiao/p/3417930.html
Copyright © 2011-2022 走看看