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方程:dp[i][j]=grid[i][j]+min(dp[i-1][j],dp[i][j-1])。

    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.
            int m=grid.size();
    		int n=grid[0].size();
    		int i,j,ret=0;
    		int **dp=new int*[m];		
    		for(i=0;i<m;i++)
    		{
    			dp[i]=new int[n];
    			memset(dp[i],0,sizeof(int)*n);
    		}
    		for(i=0;i<m;i++)
    		{
    			for(j=0;j<n;j++)
    			{
    				if(i==0&&j==0) dp[i][j]=grid[i][j];
    				else if(i==0) dp[i][j]=grid[i][j]+dp[i][j-1];
    				else if(j==0) dp[i][j]=grid[i][j]+dp[i-1][j];
    				else dp[i][j]=grid[i][j]+min(dp[i-1][j],dp[i][j-1]);
    			}
    		}
    		ret=dp[m-1][n-1];
    		for(i=0;i<m;i++)
    			delete []dp[i];
    		delete []dp;
    		return ret;
        }
    };
    

      

  • 相关阅读:
    ROSBAG的使用以及TF_OLD_DATA问题
    cmake 编译安装库到指定目录
    QT 文件夹内文件查询与删除
    数组直接写入vector向量的方法与问题
    github上下载开源项目
    组件
    对象(二)
    对象(一)
    事件
    rem 、em
  • 原文地址:https://www.cnblogs.com/Rosanna/p/3439235.html
Copyright © 2011-2022 走看看