LeetCode之Minimum Path Sum
2015-07-24 11:33
671 查看
/*动态规划法。 用dp[i][j]表示从左上角到grid[i][j]表示的元素的最小距离。则有 dp[i][j] = min{dp[i][j-1]+grid[i][j], dp[i-1][j]+grid[i][j]}。 下面在实现过程中采用滚动数组的方法将空间复杂度降到o(n).*/ class Solution { public: int minPathSum(vector<vector<int>>& grid) { if(grid.empty()) return 0; vector<int> dp(grid[0].size(), 0); dp[0] = grid[0][0]; for(int i = 1; i < grid[0].size(); ++i) dp[i] = dp[i-1]+grid[0][i]; for(int i = 1; i < grid.size(); ++i){ for(int j = 0; j < grid[i].size(); ++j){ if(j == 0) dp[j] = dp[j]+grid[i][j]; else dp[j] = min(dp[j-1]+grid[i][j], dp[j]+grid[i][j]); } } return dp[grid[0].size()-1]; } };
相关文章推荐
- SkipList 跳表 简单易懂表述
- NSArray
- NSString
- MAC下VMware Fusion虚拟机配置网卡
- NoSql数据库及其语法比较
- mac下使用pf进行端口转发的疑问与解答
- 0.1uf 电容浅析
- redis主从配置
- C/C++校招笔试面试经典题目总结八
- ZOJ 3195 Design the city(LCA Tarjan)
- Codeforces Round #313 (Div. 2) A B C D
- CodeForces 490C Hacking Cypher
- Docker安装和初始化配置(入门篇)
- IOS UILocalNotification 本地通知
- Chain of Responsibility Pattern
- ubuntu中用户使用的shell如何指定
- NSCondition
- 2015/7/24 (等待回调,结果是盘中回调,盘末拉升,错过了进仓机会吗?详情进入
- 【剑指offer】数组中只出现一次的数字
- iOS 编程 利用UIScrollView 编写无缝循环显示图片