一、题目说明

题目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.

三、优化措施

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

刷题64. Minimum Path Sum的更多相关文章

  1. leecode 每日解题思路 64 Minimum Path Sum

    题目描述: 题目链接:64 Minimum Path Sum 问题是要求在一个全为正整数的 m X n 的矩阵中, 取一条从左上为起点, 走到右下为重点的路径, (前进方向只能向左或者向右),求一条所 ...

  2. 【LeetCode】64. Minimum Path Sum

    Minimum Path Sum Given a m x n grid filled with non-negative numbers, find a path from top left to b ...

  3. 动态规划小结 - 二维动态规划 - 时间复杂度 O(n*n)的棋盘型,题 [LeetCode] Minimum Path Sum,Unique Paths II,Edit Distance

    引言 二维动态规划中最常见的是棋盘型二维动态规划. 即 func(i, j) 往往只和 func(i-1, j-1), func(i-1, j) 以及 func(i, j-1) 有关 这种情况下,时间 ...

  4. 64. Minimum Path Sum(中等, 又做出一个DP题, 你们非问我开不开心,当然开心喽!^^)

    Given an m x n grid filled with nonnegative numbers, find a path from top left to bottom right which ...

  5. LeetCode 64. Minimum Path Sum(最小和的路径)

    Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which ...

  6. leetCode 64.Minimum Path Sum (最短路) 解题思路和方法

    Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which ...

  7. [LeetCode] 64. Minimum Path Sum 最小路径和

    Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which ...

  8. 【LeetCode】64. Minimum Path Sum 解题报告(Python & C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...

  9. LeetCode 64 Minimum Path Sum

    Problem: Given a m x n grid filled with non-negative numbers, find a path from top left to bottom ri ...

随机推荐

  1. goland 2019.1.1破解

    https://blog.csdn.net/hi_liuxiansheng/article/details/89078405

  2. win7系统Java 开发环境配置

    我的天啊,博客园写了两年九个月,终于有六个粉丝啦,哈哈哈哈哈哈哈哈哈,谢谢大家的关注 进入正题,java环境配置,我要学java了,人生在于瞎折腾. 久闻java大名,但是没接触过,但java环境配置 ...

  3. moment of 2019.08.15

    一件事,足以影响一个人的一生,准确的说,是两个人的人生轨迹. 人生中的遇见,有的是幸运,有的是不幸.2018.4的遇见,是我人生中的不幸,至少到目前为止,确实是不幸,从各个方面让我的生活不如以前. 如 ...

  4. 每天进步一点点------SOPC的uC/OS-II应用(一)

    uC/OS-II(又名Micro C/OS)是基于嵌入式系统的完整的,可移植.可固化.可裁剪的可剥夺型实时内核,其已经广泛应用在航空飞行器.医疗设备.工业控制等可靠性和稳定性要求较高的场合.该内核的代 ...

  5. 【转载】Windows环境下JNI的实现实例

    转自:http://blog.csdn.net/jjunjoe/article/details/6987183 一.关于JNI: JNI(Java Native Interface):Java本地调用 ...

  6. 解决async 运行多线程时报错RuntimeError: There is no current event loop in thread 'Thread-2'

    原来使用: loop = asyncio.get_event_loop()task = asyncio.ensure_future(do_work(checker))loop.run_until_co ...

  7. 迭代器:遍历集合元素的操作. iterator()

    package seday11; import java.util.ArrayList;import java.util.Collection;import java.util.Iterator; / ...

  8. redis常用配置参数

    首先弄清楚当前redis读取的是哪个配置文件,然后去配置文件修改,例如windows 打开服务列表,点击Redis,右键属性 "D:\Program Files\Redis\redis-se ...

  9. Angular 2.0 文本拖拽

    基于Angular7.1和TypeScript实现 Html代码 <div style="padding-left: 0px;"> <div id='conten ...

  10. 利用数据库管理工具(Navicat)导出数据到Excel表中

    如果只是想把数据库表中数据简单导出来,可以利用数据库管理工具中的工具 1.先查询 2.在查询出结果中全选 3.导出向导 4.选择Excel 5.选择导出地址并命名