LintCode: Minimum Path Sum
2015-11-27 14:36
337 查看
C++,
time: O(m*n)
space: O(m*n)
C++,
time: O(m*n)
space: O(m)
time: O(m*n)
space: O(m*n)
class Solution { public: /** * @param grid: a list of lists of integers. * @return: An integer, minimizes the sum of all numbers along its path */ int minPathSum(vector<vector<int> > &grid) { // write your code here int m = grid.size(), n = grid[0].size(); 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] = dp[i][j-1] + grid[i][j]; } } else if (j == 0) { dp[i][j] = dp[i-1][j] + grid[i][j]; } else { dp[i][j] = min(dp[i - 1][j], dp[i][j - 1]) + grid[i][j]; } } } return dp[m-1][n-1]; } };
C++,
time: O(m*n)
space: O(m)
class Solution { public: /** * @param grid: a list of lists of integers. * @return: An integer, minimizes the sum of all numbers along its path */ int minPathSum(vector<vector<int> > &grid) { // write your code here int m = grid.size(), n = grid[0].size(); 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] = dp[j-1] + grid[i][j]; } } else if (j == 0) { dp[j] = dp[j] + grid[i][j]; } else { dp[j] = min(dp[j], dp[j - 1]) + grid[i][j]; } } } return dp[n-1]; } };
相关文章推荐
- jquery记忆笔记
- js数组
- 实现checkebox全选取消操作
- js对象
- js循环
- js Map和Set
- js高阶函数
- CSS锚伪类顺序需注意的几点
- 两个Integer比较大小需要注意的误区
- Apache+Tomcat+mod_jk实现负载均衡
- centos7系统下安装配置jdk、tomcat教程
- 解决centos7下tomcat启动正常,无法访问项目的问题
- 修改tomcat浏览器地址栏图标
- js如何查看元素类型
- js选择checkbox值,组织成key-value形式,传值到后台
- PHP程序员最常犯的11个MySQL错误
- [原创]C#按比例缩放窗体控件及字体
- a different object with the same identifier value was already associated withthe session异常解决方案
- JS面向对象学习
- org.springframework.dao.InvalidDataAccessApiUsageException:The given object has a null identifi的解决方案