• [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;
        }
    };
    

      

  • 相关阅读:
    LeetCode OJ
    LeetCode OJ
    LeetCode OJ
    LeetCode OJ
    LeetCode OJ
    LeetCode OJ
    LeetCode OJ
    LeetCode OJ
    LeetCode OJ
    LeetCode OJ
  • 原文地址:https://www.cnblogs.com/Rosanna/p/3439235.html
Copyright © 2020-2023  润新知