[leetcode] 64.Minimum Path Sum
2015-05-11 23:42
267 查看
题目:
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.
题意:
有一个m*n的格子里面装满了非负数字,找一条路径从左上角到达右下角,这条路径上数字之和最小。
思路:
依旧使用动态规划思想,最左边的一列每个格子只能从上面的格子往下移一格到达,最上面的一列每个格子只能从左边往右移一格到达。而其它的格子可以从上面往下移一格或者从左边往右边移一格到达。对于有两条道路选择的格子,选一个较小值作为DP[i][j]的结果值.
DP[i][j] = A[i][j] + DP[i][j-1](if i ==0)
DP[i][j] = A[i][j] + DP[i-1][j](if j == 0)
DP[i][j] = min{DP[i-1][j],DP[i][j-1]} + A[i][j];
以上。
代码如下:
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.
题意:
有一个m*n的格子里面装满了非负数字,找一条路径从左上角到达右下角,这条路径上数字之和最小。
思路:
依旧使用动态规划思想,最左边的一列每个格子只能从上面的格子往下移一格到达,最上面的一列每个格子只能从左边往右移一格到达。而其它的格子可以从上面往下移一格或者从左边往右边移一格到达。对于有两条道路选择的格子,选一个较小值作为DP[i][j]的结果值.
DP[i][j] = A[i][j] + DP[i][j-1](if i ==0)
DP[i][j] = A[i][j] + DP[i-1][j](if j == 0)
DP[i][j] = min{DP[i-1][j],DP[i][j-1]} + A[i][j];
以上。
代码如下:
class Solution { public: int minPathSum(vector<vector<int>>& grid) { int m = grid.size(); if(m == 0)return 0; int n = grid[0].size(); int **DP = new int*[m]; for(int i = 0; i < m; i++) DP[i] = new int ; DP[0][0] = grid[0][0]; for(int i = 0; i < m; i++) for(int j = 0; j < n; j++){ if(i == 0 && j == 0)continue; DP[i][j] = min((i == 0?0x7fffffff:DP[i-1][j]),(j == 0?0x7fffffff:DP[i][j-1])) + grid[i][j]; } return DP[m-1][n-1]; } };
相关文章推荐
- [LeetCode]64.Minimum Path Sum
- leetCode 64.Minimum Path Sum (最短路) 解题思路和方法
- [leetcode] 64.Minimum Path Sum
- LeetCode-64.Minimum Path Sum
- leetCode 64.Minimum Path Sum (最短路) 解题思路和方法
- leetcode - 64.Minimum Path Sum
- LeetCode 64.Minimum Path Sum
- leetcode - 62,63. Unique Paths(II) & 64.Minimum Path Sum
- 【LEETCODE】112-Path Sum
- leetcode Path Sum 1.2 难度系数1
- LeetCode 112. Path Sum
- LeetCode(35)-Path Sum
- [Leetcode] Path Sum
- leetCode #112 path sum
- leetcode 112. Path Sum
- LeetCode力扣之112. Path Sum
- [勇者闯LeetCode] 112. Path Sum
- LeetCode112 Path Sum
- Leetcode-Path Sum
- [Leetcode]@python 64. Minimum Path Sum