【LeetCode】064. Minimum Path Sum
题目:
Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which minimizes the sum of all numbers along its path.
Note: You can only move either down or right at any point in time.
题解:
Solution 1 ()
class Solution {
public:
int minPathSum(vector<vector<int>>& grid) {
int m = (int) grid.size(), n = (int) grid[].size();
vector<long> dp(n,INT_MAX);
dp[] = grid[][];
for(int i=; i<m; ++i) {
for(int j=; j<n; ++j) {
if(j > )
dp[j] = min(dp[j] + grid[i][j], dp[j-] + grid[i][j]);
else
if(i>) dp[j] = dp[j] + grid[i][j];
}
}
return dp[n-];
}
};
边界的第二种处理方法:因为Solution 1 中dp初始化为最大值,故需要考虑溢出情况,所以用long整型。这个就初始化为int整型。
Solution 2 ()
class Solution {
public:
int minPathSum(vector<vector<int>>& nums) {
int m = (int) nums.size();
int n = (int) nums[].size();
vector<int> v (n,);
for (int i=; i<m; ++i) {
for (int j=; j<n; ++j) {
if (i>)
v[j] = nums[i][j] + ((j>) ? min(v[j], v[j-]) : v[j]);
else
v[j] = nums[i][j] + ((j>) ? v[j-] : );
}
}
return v[n-];
}
};
解法没变,就是边界的处理上不一样,这个是先初始化边界了。
Solution 3 ()
class Solution {
public:
int minPathSum(vector<vector<int>>& grid) {
int dp[grid.size()][grid[].size()];
dp[][] = grid[][];
// init first row
for(int i = ; i < grid[].size(); i ++){
dp[][i] = dp[][i-] + grid[][i];
}
// init first col
for(int i = ; i < grid.size(); i ++){
dp[i][] = dp[i-][] + grid[i][];
}
for(int i = ; i < grid.size(); i ++){
for(int j = ; j < grid[].size(); j++){
dp[i][j] = dp[i - ][j] < dp[i][j-]? dp[i - ][j] + grid[i][j] : dp[i][j-] + grid[i][j];
}
}
return dp[grid.size() - ][grid[].size() -];
}
};
【LeetCode】064. Minimum Path Sum的更多相关文章
- 【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 ...
- 【LeetCode】64. Minimum Path Sum 解题报告(Python & C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...
- 【一天一道LeetCode】#64. Minimum Path Sum.md
一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Given a ...
- 【LeetCode】599. Minimum Index Sum of Two Lists 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 方法一:找到公共元素再求索引和 方法二:索引求和,使 ...
- 【leetcode】963. Minimum Area Rectangle II
题目如下: Given a set of points in the xy-plane, determine the minimum area of any rectangle formed from ...
- 【LeetCode】71. Simplify Path 解题报告(Python)
[LeetCode]71. Simplify Path 解题报告(Python) 标签(空格分隔): LeetCode 作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://f ...
- 【LeetCode】452. Minimum Number of Arrows to Burst Balloons 解题报告(Python)
[LeetCode]452. Minimum Number of Arrows to Burst Balloons 解题报告(Python) 标签(空格分隔): LeetCode 题目地址:https ...
- 【leetcode】712. Minimum ASCII Delete Sum for Two Strings
题目如下: 解题思路:本题和[leetcode]583. Delete Operation for Two Strings 类似,区别在于word1[i] != word2[j]的时候,是删除word ...
- LeetCode OJ 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 ...
随机推荐
- hdu 1598 find the most comfortable road(并查集+枚举)
find the most comfortable road Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K ...
- Android-Animations介绍
一.Animations介绍 Animations是一个实现android UI界面动画效果的API,Animations提供了一系列的动画效果,可以进行旋转.缩放.淡入淡出等,这些效果可以应用在绝大 ...
- linux 更新yum源 改成163源
安装完CentOS6.3后,为避免从国外站点安装更新速度过慢,需要更改yum更新源,所以从网上找了下更改linux yum源的方法,和大家进行下分享.原理很简单,就是把yum配置文件中的更新源改一下, ...
- 初探swift语言的学习笔记四-2(对上一节有些遗留进行处理)
作者:fengsh998 原文地址:http://blog.csdn.net/fengsh998/article/details/30314359 转载请注明出处 假设认为文章对你有所帮助,请通过留言 ...
- Java 并发随身记(一)之 Unsafe类
最近在看Java并发相关的内容,需要自己整理整理,不然就生疏了.工作2年多,工作时一般注都是框架.消息这些内容,对基础内容比较忽视.闲话不说,既然是并发内容,首先先复习一下Unsafe的内容吧. Un ...
- 【BZOJ1853/2393】[Scoi2010]幸运数字/Cirno的完美算数教室 DFS+容斥
[BZOJ1853][Scoi2010]幸运数字 Description 在中国,很多人都把6和8视为是幸运数字!lxhgww也这样认为,于是他定义自己的“幸运号码”是十进制表示中只包含数字6和8的那 ...
- EasyPlayer-RTSP播放器:从底层到上层专注于RTSP播放Windows、Android、iOS RTSP Player
EasyPlayer-RTSP播放器是一套RTSP专用的播放器,包括有:Windows(支持IE插件,npapi插件).Android.iOS三个平台,是由EasyDSS团队开发和维护的区别于市面上大 ...
- 使用SqlDependency监听MSSQL数据库表变化通知
SqlDependency提供了这样一种机制,当被监测的数据库中的数据发生变化时,SqlDependency会自动触发OnChange事件来通知应用程序,从而达到让系统自动更新数据(或缓存)的目的. ...
- visio_action
bug---沟通效率不能为负值!! https://blogs.office.com/en-us/2012/11/05/containers-and-callouts-in-visio/?eu=tru ...
- php.ini的几个关键配置
safe_mode = On safe_mode_gid = Off disable_functions = system,passthru,exec,shell_exec,popen,phpinfo ...