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

算法思路

采用动态规划,将上述矩阵转为下面的矩阵,状态转移方程为:dp[i][j] = min(dp[i - 1][j], dp[i][j - 1]) + grid[i][j]

class Solution {public int minPathSum(int[][] grid) {if (grid == null || grid.length == 0 || grid[0].length == 0) {return 0;}int rows = grid.length, columns = grid[0].length;int[][] dp = new int[rows][columns];dp[0][0] = grid[0][0];for (int i = 1; i < rows; i++) {dp[i][0] = dp[i - 1][0] + grid[i][0];}for (int j = 1; j < columns; j++) {dp[0][j] = dp[0][j - 1] + grid[0][j];}for (int i = 1; i < rows; i++) {for (int j = 1; j < columns; j++) {dp[i][j] = Math.min(dp[i - 1][j], dp[i][j - 1]) + grid[i][j];}}return dp[rows - 1][columns - 1];}
}

动态规划—最小路径和相关推荐

  1. 动态规划——最小路径和(Leetcode 64)

    题目选自Leetcode 64.最小路径和 题目描述 解题思路 前言: 解题的方法是用动态规划~ 从数据范围可以看出,n.m最多就是200×200的大小,所以dp数组就开201 那么,怎么进行动态规划 ...

  2. 算法练习day15——190403(简介、求n!、汉诺塔、打印字符串的子序列、打印字符串的全排列、母牛生小牛、最小路径和、累加和是否达到给定值)

    1. 简介 动态规划是为了优化暴力尝试的. 2. 求n! 2.1 一般思路 public static long getFactorial2(int n) {long result = 1L;for ...

  3. 动态规划算法--矩形最小路径和

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

  4. 三角形最小路径和(动态规划)

    原创公众号:bigsai 欢迎加入力扣打卡 文章已收录在 全网都在关注的数据结构与算法学习仓库 欢迎star 题目描述 力扣120原题 给定一个三角形 triangle ,找出自顶向下的最小路径和. ...

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

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

  6. leetcode120. 三角形最小路径和(动态规划)

    **给定一个三角形,找出自顶向下的最小路径和.**每一步只能移动到下一行中相邻的结点上. 相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 + 1 的两个结点. 例如, ...

  7. [Leetcode][第120题][JAVA][三角形最小路径和][动态规划][递归]

    [问题描述][中等] [解答思路] 1. 动态规划思路一 自上而下 第 1 步:设计状态 f[i][j] 表示从三角形顶部走到位置 (i,j) 的最小路径和 位置(i,j) 指的是三角形中第 i 行第 ...

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

    最小路径和(动态规划) 1. 题目描述 2. 题目分析 3. C语言实现 1. 题目描述 难度:中等 2. 题目分析 这道题目是62题.不同路径的延伸,解题思路基本一样的,是通过动态规划来实现的: - ...

  9. 矩阵的最小路径和——动态规划

    题目描述: 给定一个 n * m 的矩阵 a,从左上角开始每次只能向右或者向下走,最后到达右下角的位置,路径上所有的数字累加起来就是路径和,输出所有的路径中最小的路径和. 示例: [[1,3,5,9] ...

最新文章

  1. xmanager 开启X11转发失败问题解决
  2. SSM整合时配置文件的编写
  3. 你是如何保护用户的密码的?
  4. 应用层的AIDL用法(原)
  5. 骗子公司陆续公布中...
  6. select 与case 以及函数练习
  7. 凝思linux操作系统4.2内核版本_打破技术垄断!国产操作系统的逆袭之路
  8. 开博第一篇,附上我开通博客的理由
  9. Elasticsearch一些常用操作和一些基础概念
  10. Qt Creator 使用技巧(功能快捷键如注释、声明和实现之间切换)
  11. Java 实现 贪吃蛇 小游戏【附源码】
  12. jQuery源码分析(一)
  13. 微信小程序之转发功能,自定义转发标题文字和图片
  14. 解决CRMEB跨域问题
  15. 利用爬虫数据做的研究_利用研究周增强数据科学能力
  16. 直线与直线、直线与圆、直线与矩形的交点
  17. 【.net core】电商平台升级之微服务架构应用实战
  18. python英语单词 扇贝英语安卓下载_扇贝单词英语版
  19. 从抄书到开源之巅:章亦春的程序人生
  20. Android常见的错误及解决

热门文章

  1. VC++更改程序图标
  2. 源码注释性容器的创建及初始化
  3. 手把手教你做关键词匹配项目(搜索引擎)---- 第六天
  4. 怎样取消Windows 2003 server 意外关机提示
  5. EonerCMS——做一个仿桌面系统的CMS(二)
  6. VBA自定义函数集锦[2]
  7. SpringMVC学习笔记(二)常用注解
  8. VB6 二维数组去重实现
  9. linux查看文件和文件夹大小
  10. DataBase Convert Class