[leetcode] Minimum Path Sum
来源:互联网 发布:淘宝店铺被扣分 编辑:程序博客网 时间:2024/05/16 01:52
Minimum Path Sum
dp入门题,状态fun[i][j]=min(fun[i-1][j],fun[i][j-1])+grid[i][j];
class Solution {public: int minPathSum(vector<vector<int> > &grid) {// int row=grid.size();//行数 if (row==0) { return 0; } int column=grid[0].size();//列数 vector<vector<int>> fun(row,vector<int>(column));//开辟相同大小的矩阵 //处理边界 fun[0][0]=grid[0][0]; int i,j; for (i=1; i<row; ++i) {//第一列 fun[i][0]=fun[i-1][0]+grid[i][0]; } for (j=1; j<column; ++j) {//第一行 fun[0][j]=fun[0][j-1]+grid[0][j]; } for (i=1; i<row; ++i) { for (j=1; j<column; ++j) { fun[i][j]=min(fun[i-1][j],fun[i][j-1])+grid[i][j];//min()为库函数 } } return fun[row-1][column-1]; }};
class Solution {public: //状态定义为从起点--当前节点的最小路径和 int minPathSum(vector<vector<int> > &grid) { if(grid.size()==0){ return 0; } int sum[grid.size()][grid[0].size()]; //状态初始化 sum[0][0]=grid[0][0]; for(int i=1;i<grid.size();++i){ sum[i][0]=grid[i][0]+sum[i-1][0]; } for(int j=1;j<grid[0].size();++j){ sum[0][j]=grid[0][j]+sum[0][j-1]; } //状态转移 for(int i=1;i<grid.size();++i){//行 for(int j=1;j<grid[0].size();++j){//列 sum[i][j]=grid[i][j]+min(sum[i][j-1],sum[i-1][j]); } } return sum[grid.size()-1][grid[0].size()-1]; }};
class Solution {public: int minPathSum(vector<vector<int>>& grid) { int m=grid.size();//row int n=grid[0].size();//column vector<vector<int> > dp(m,vector<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]=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]=min(dp[i-1][j],dp[i][j-1])+grid[i][j]; } } } return dp[m-1][n-1]; }};
优化空间
class Solution {public: int minPathSum(vector<vector<int>>& grid) { int m=grid.size();//row int n=grid[0].size();//column vector<int> dp(n);//一维 for(int i=0;i<m;++i){ for(int j=0;j<n;++j){ if(i==0){ if(j==0){ dp[j]=grid[i][j]; }else{ dp[j]=grid[i][j]+dp[j-1]; } }else if(j==0){ dp[j]=grid[i][j]+dp[j]; }else{ dp[j]=min(dp[j],dp[j-1])+grid[i][j]; } } } return dp[n-1]; }};
参考:Minimum path sum
0 0
- LeetCode: Minimum Path Sum
- LeetCode Minimum Path Sum
- LeetCode : Minimum Path Sum
- [Leetcode] Minimum Path Sum
- [LeetCode] Minimum Path Sum
- [Leetcode] Minimum Path Sum
- [LeetCode]Minimum Path Sum
- [leetcode]Minimum Path Sum
- LeetCode-Minimum Path Sum
- [leetcode] Minimum Path Sum
- LeetCode - Minimum Path Sum
- LeetCode:Minimum Path Sum
- leetcode minimum path sum
- 【leetcode】Minimum Path Sum
- 【LeetCode】Minimum Path Sum
- Leetcode: Minimum Path Sum
- Leetcode Minimum Path Sum
- LeetCode Minimum Path Sum
- 嵌入式软件测试的过程
- 利用 Heritrix 构建特定站点爬虫
- 是如何跟他们都融洽的相处
- addm
- Lua中调用 Cocos2d-x 中的滑动条 ScrollView
- [leetcode] Minimum Path Sum
- Android重写菜单增加系统自带返回键
- 我的emacs 学习之旅
- Android 4.0 Graphics and Animations
- android时间控件
- 经纬财富:淮安白银现货:均线妙用
- [原]Android Volley完全解析(一),初识Volley的基本用法
- ajax返回值
- sqlite 索引