题目描述

给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。

说明:每次只能向下或者向右移动一步。

示例:

输入:
[
[1,3,1],
[1,5,1],
[4,2,1]
]
输出: 7
解释: 因为路径 1→3→1→1→1 的总和最小。

题解
(动态规划) O(n2)
第一行只能往右走,所有值累加。
第一列只能往下走,所有值累加。
其他位置只能从左边或上边过来,取最小值:
f(i,j)=min{f(i,j−1),f(i−1,j)+grid[i][j]}
时间复杂度
时间复杂度O(n2),空间复杂度O(n),可以用滚动数组优化为一维空间O(n)

c++版

class Solution {public:int minPathSum(vector<vector<int>>& grid) {int n = grid.size();int m = grid[0].size();for(int i = 0; i < n; i++){for(int j = 0; j < m; j++){if(!i && !j)continue;else if(!i) grid[i][j] += grid[i][j - 1];else if(!j) grid[i][j] += grid[i - 1][j];else grid[i][j] += min(grid[i - 1][j], grid[i][j - 1]);}}return grid[n - 1][m - 1];}
};

python版

class Solution:def minPathSum(self, grid: List[List[int]]) -> int:n = len(grid)m = len(grid[0])for i in range(n):for j in range(m):if not i and not j:continueelif not i:grid[i][j] += grid[i][j - 1]elif not j:grid[i][j] += grid[i - 1][j]else:grid[i][j] += min(grid[i - 1][j], grid[i][j - 1])return grid[n - 1][m - 1]

LeetCode:64. 最小路径和(python、c++)相关推荐

  1. leetcode 64. 最小路径和(递归 / 动态规划解法图解)(Java版)

    题目 leetcode 64. 最小路径和 提示: m == grid.length n == grid[i].length 1 <= m, n <= 200 0 <= grid[i ...

  2. leetcode - 64. 最小路径和

    64. 最小路径和 ------------------------------------------ 给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总 ...

  3. LeetCode 64最小路径和65有效数字66加一

    原创公众号:bigsai 专注于Java.数据结构与算法,一起进大厂不迷路! 关注后回复进群即可加入力扣打卡群,欢迎划水.近期打卡: LeetCode打卡 52八皇后Ⅱ&53最大子序和& ...

  4. LeetCode 64. 最小路径和(DP)

    文章目录 1. 题目信息 2. 解题 1. 题目信息 给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小. 说明:每次只能向下或者向右移动一步. 示 ...

  5. Leetcode 64. 最小路径和 -- DP算法

    Time: 20190831 题目描述 给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小. 说明:每次只能向下或者向右移动一步. 示例: 输入: ...

  6. leetcode 64. 最小路径和

    难度:中等 频次:54 题目:给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小. 说明:每次只能向下或者向右移动一步. 解题思路:动态 ...

  7. 93. Leetcode 64. 最小路径和 (动态规划-路径规划)

    步骤一.确定状态: 1.确定原问题中变化的变量个数 2.考虑最后一步 右下角坐标设为(m-1,n-1) 那么前一步一定是在(m-2,n-1)或者(m-1,n-2) 步骤二.推断状态方程: f[i][j ...

  8. Leetcode 64 最小路径和 (每日一题 20210721)

    给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小.说明:每次只能向下或者向右移动一步.示例 1:输入:grid = [[1,3,1], ...

  9. LeetCode 64 最小路径和

    题目描述 给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和 为最小.说明:每次只能向下或者向右移动一步. 题解 动态规划 代码 class ...

  10. LeetCode 64.最小路径和(动态规划)

    题目描述 给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小. 说明:每次只能向下或者向右移动一步. 示例: 输入: [ [1,3,1], [1,5 ...

最新文章

  1. MongoDB中mapReduce的使用
  2. mysql用户权限管理的问题
  3. python删除文件夹无法访问_零基础小白必看:python基本操作-文件、目录及路径
  4. python实训项目-Python开发基础-项目实训-在线投票系统.pptx
  5. mybatis 取查询值_Mybatis --- 映射文件、参数处理、参数值的获取、select元素
  6. oracle dynamic set,Oracle Dynamically Listener(动态监听)
  7. SpringBoot Starter自动装配的原理
  8. 联想计算机phoenix award bios,phoenix-Award BIOS
  9. Oracle的CLOB大数据字段类型(转)
  10. Codeforces Round #222 (Div. 1) D. Developing Game 扫描线
  11. java 大富翁 游戏下载_大富翁4-大宇正版
  12. java正则匹配以什么开始的_正则匹配 符合以什么开头以什么结尾的
  13. truetype字体怎么转换成普通字体_【转】TrueType(二)字体格式解析
  14. 提高Java反射速度的方法以及对setAccessable的误解
  15. 【IOS】IOS工程自动打包并发布脚本实现
  16. rtos系统c语言,让我们来学习RTOS,自己写RTOS
  17. goroutine退出方式的总结
  18. Qt编写安防视频监控系统66-子模块10网页浏览
  19. 整合使用jOOQ面向对象查询
  20. Qstring 打印会有双引号

热门文章

  1. codevs 3186 队列练习2
  2. 2015 HUAS Summer Training#2 G
  3. 转:Page.ClientScript.RegisterStartupScript(me.GetType(),script1,scriptalert('111');/script)...
  4. ruby学习笔记(11)--symbol与hash参数
  5. [预告]将要推出编程方式事务管理祥解!
  6. matlab ode45 初值,为什么设定的初值在ode45里无效?
  7. Postman接口压力测试
  8. MAC下安装xgboost
  9. 前端调数据会经常用到的事件处理
  10. 跟我一起学jQuery——第二集(未完待续..)