一、题目说明

题目64. Minimum Path Sum,给一个m*n矩阵,每个元素的值非负,计算从左上角到右下角的最小路径和。难度是Medium!

二、我的解答

乍一看,这个是计算最短路径的,迪杰斯特拉或者弗洛伊德算法都可以。不用这么复杂,同上一个题目一样:

刷题62. Unique Paths()

不多啰嗦,直接代码,注释中有原理:

#include<iostream>
#include<vector>
using namespace std;
class Solution{
public:
int minPathSum(vector<vector<int>>& grid){
int m = grid.size();
if(m<1){
return 0;
} int n = grid[0].size();
vector<vector<int>> dp(m,vector<int>(n,0)); dp[0][0] = grid[0][0];
//初始化第1行
for(int i=1;i<n;i++){
dp[0][i] = dp[0][i-1]+grid[0][i];
}
//初始化第1列
for(int i=1;i<m;i++){
dp[i][0] = dp[i-1][0]+grid[i][0];
} for(int i=1;i<n;i++){//计算第i列
for(int j=1;j<m;j++){//计算第j行
if(dp[j-1][i]>dp[j][i-1]){
dp[j][i] = dp[j][i-1]+grid[j][i];
}else{
dp[j][i] = dp[j-1][i]+grid[j][i];
} }
} return dp[m-1][n-1];
}
};
int main(){
Solution s;
vector<vector<int>> grid; grid = {{1,3,1},{1,5,1},{4,2,1}};
cout<<"7=="<<s.minPathSum(grid)<<"\n"; grid = {{0,1},{1,0}};
cout<<"1=="<<s.minPathSum(grid)<<"\n"; grid = {{1,2,5},{3,2,1}};
cout<<"6=="<<s.minPathSum(grid)<<"\n"; return 0;
}

性能,第一次提交16ms,一行代码没修改再次提交12ms:

Runtime: 12 ms, faster than 49.38% of C++ online submissions for Minimum Path Sum.
Memory Usage: 10.9 MB, less than 50.00% of C++ online submissions for Minimum Path Sum.

三、优化措施

本来想用迪杰斯特拉算法写的,也不废这个劲了。

最新文章

  1. 【WPF系列】基础学习-WPF架构概览
  2. 用友ERP-U8最新破解(再次更新版本,附安装过程中的解决办法)
  3. 遇到一位ITer,一位出租车司机,必看。
  4. Code First is a bad name,这些年我们对Code First的理解都错了 !很震惊吧?
  5. 巧用Javascript中的slice()
  6. std::shared_ptr
  7. c++的学习内容一汇总篇(常更新)
  8. 【poj2891-Strange Way to Express Integers】拓展欧几里得-同余方程组
  9. [Locked] One Edit Distance
  10. 转 EXPDP ORA-39095 ORA-3909 错误
  11. Redis五大数据类型以及操作
  12. Delphi xe5 编译报environment.proj错误的解决
  13. 转: python requests的安装与简单运用
  14. 利用koa打造jsonp API
  15. [日常工作] 并行计算引发Microsoft.jscript.ni.dll的内存溢出问题的分析解决. .net framework 的版本说明
  16. Kafka 温故(二):Kafka的基本概念和结构
  17. php实现文件下载代码一例
  18. python webdriver api-读取、设置配置文件
  19. Spring bean注解配置(1)
  20. PAT 甲级 1137 Final Grading

热门文章

  1. 剑指offer 面试题40. 最小的k个数
  2. unity的一些特殊目录
  3. js -- 正则表达式集合
  4. borderInterpolate()函数
  5. wamp配置本地多站点。
  6. 动态设置微信小程序 navigationBarTitle 的值
  7. IntelliJ IDEA 2017.3尚硅谷-----界面展示
  8. python evel()的用法
  9. ASA升级
  10. HahMap相关问题