leetcode64. Minimum Path Sum
这个题是从左上角到右下角的路径和最小,实际就是一道dp题。
第一种写法是只初始化(0,0)位置,第二种写法则是把第一行、第一列都初始化了。个人更喜欢第二种写法,简单一点。
dp的右下角的值就为最终的值
第一种写法:
class Solution {
public:
    int minPathSum(vector<vector<int>>& grid) {
        int rows = grid.size();
        if(rows <= )
            return -;
        int cols = grid[].size();
        if(cols <= )
            return -;
        vector<vector<int> > result(rows,vector<int>(cols));
        result[][] = grid[][];
        for(int i = ;i < rows;i++){
            for(int j = ;j < cols;j++){
                if(i !=  && j != )
                    result[i][j] = grid[i][j] + min(result[i-][j],result[i][j-]);
                if(i ==  && j != )
                    result[i][j] = result[i][j-] + grid[i][j];
                if(j ==  && i != )
                    result[i][j] = result[i-][j] + grid[i][j];
            }
        }
        return result[rows-][cols-];
    }
};
第二种写法:
class Solution {
public:
    int minPathSum(vector<vector<int>>& grid) {
        int m = grid.size();
        if(m <= )
            return ;
        int n = grid[].size();
        if(n <= )
            return ;
        vector<vector<int> > dp(m,vector<int>(n));
        dp[][] = grid[][];
        for(int i = ;i < m;i++)
            dp[i][] = dp[i-][] + grid[i][];
        for(int i = ;i < n;i++)
            dp[][i] = dp[][i-] + grid[][i];
        for(int i = ;i < m;i++){
            for(int j = ;j < n;j++){
                dp[i][j] = grid[i][j] + min(dp[i-][j],dp[i][j-]);
            }
        }
        return dp[m-][n-];
    }
};
leetcode64. Minimum Path Sum的更多相关文章
- Leetcode64.Minimum Path Sum最小路径和
		给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小. 说明:每次只能向下或者向右移动一步. 示例: 输入: [ [1,3,1], [1,5,1] ... 
- 【leetcode】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 ... 
- leecode 每日解题思路 64	Minimum Path Sum
		题目描述: 题目链接:64 Minimum Path Sum 问题是要求在一个全为正整数的 m X n 的矩阵中, 取一条从左上为起点, 走到右下为重点的路径, (前进方向只能向左或者向右),求一条所 ... 
- 【LeetCode练习题】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之“动态规划”:Minimum Path Sum && Unique Paths && Unique Paths II
		之所以将这三道题放在一起,是因为这三道题非常类似. 1. Minimum Path Sum 题目链接 题目要求: Given a m x n grid filled with non-negative ... 
- LeetCode: 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] Unique Paths && Unique Paths II && Minimum Path Sum (动态规划之 Matrix DP )
		Unique Paths https://oj.leetcode.com/problems/unique-paths/ A robot is located at the top-left corne ... 
- 【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 ... 
- 动态规划小结 - 二维动态规划 - 时间复杂度 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) 有关 这种情况下,时间 ... 
随机推荐
- eml文件解析实例,简历信息抓取工具
			先上工具效果图,如下图所示: 背景 某公司使用58同城进行人员招聘,当有应聘人员通过58同城给该公司投简历后,58同城会发送一份邮件到该公司的注册邮箱,邮件内容如上图右侧显示,主题为“应聘贵公司XXX ... 
- css设置背景模糊
			使用filter属性来设置模糊值 效果: css样式: <style type="text/css"> .cover { width: 600px; height: 3 ... 
- PhpStorm 自定义快捷键
			PhpStorm 两个重要快捷键 1.CTRL+SHIFT+A 用于恢复隐藏项 2.文件之间的快速跳转 CTRL+SHIFT+N 3.自定义快捷键 第一步:打开左上角file-setting 第二步: ... 
- BZOJ1014: [JSOI2008]火星人prefix(splay 二分 hash)
			题意 题目链接 Sol 一眼splay + 二分hash,不过区间splay怎么写来着呀 试着写了两个小时发现死活不对 看了一下yyb的代码发现自己根本就不会splay.... // luogu-ju ... 
- hololens DEP2220: 无法删除目标计算机“127.0.0.1”上的文件夹
			Hololens开发调试的过程中,可能会出现 “DEP2220: 无法删除目标计算机“127.0.0.1”上的文件夹“ 的错误导致无法部署,解决办法是进入项目属性页——调试——启动选项,勾选“卸载并重 ... 
- 浏览器好玩的的 console.log
			现在很多网站,你在访问他页面的时候, 你要查看 console 的话, 看到有文章介绍的,一定想知道是怎么展示来的吧 如 baidu 的 你懂的,其实很简单,代码如下, console 输出下就行 c ... 
- Slf4j打印异常的堆栈信息
			一.前言 直接用logger.info("异常信息为:"+e)或者logger.info(e.getMessage())只能记录到异常的描述信息,却没有其异常具体发生在哪一行代码. ... 
- _tcsrchr
			原文:http://www.cnblogs.com/diyunpeng/archive/2012/01/18/2325289.html _tcsrchr #include <afx.h> ... 
- malloc()函数,calloc()函数,realloc()函数,free()函数
			malloc()函数 头文件:#include <stdlib.h> malloc() 函数用来动态地分配内存空间,其原型为:void* malloc (size_t size); [参数 ... 
- 搭建高可用mongodb集群(三)—— 深入副本集内部机制
			在上一篇文章<搭建高可用mongodb集群(二)-- 副本集> 介绍了副本集的配置,这篇文章深入研究一下副本集的内部机制.还是带着副本集的问题来看吧! 副本集故障转移,主节点是如何选举的? ... 
