给定一个方形整数数组 A,我们想要得到通过 A 的下降路径的最小和。

下降路径可以从第一行中的任何元素开始,并从每一行中选择一个元素。在下一行选择的元素和当前行所选元素最多相隔一列。

示例:

输入:[[1,2,3],[4,5,6],[7,8,9]]
输出:12
解释:
可能的下降路径有:
[1,4,7], [1,4,8], [1,5,7], [1,5,8], [1,5,9]
[2,4,7], [2,4,8], [2,5,7], [2,5,8], [2,5,9], [2,6,8], [2,6,9]
[3,5,7], [3,5,8], [3,5,9], [3,6,8], [3,6,9]
和最小的下降路径是 [1,4,7],所以答案是 12。

解题思路

数组含义:dp[i][j]到A(i,j)的最小路径
状态转移: dp[i][j]=Math.min(Math.min(dp[i-1][j],dp[i-1][j-1]),dp[i-1][j+1])+A[i-1][j-1] 上一层3种转移下来的情况,取最小值,加上当前的值1
初始化:除第一行外全部置为最大

代码

class Solution {public int minFallingPathSum(int[][] A) {int n=A.length,m=A[0].length,res=Integer.MAX_VALUE;int[][] dp=new int[n+1][m+2];//多加两列一行,不用处理边界for(int i=1;i<=n;i++)Arrays.fill(dp[i],Integer.MAX_VALUE);for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)dp[i][j]=Math.min(Math.min(dp[i-1][j],dp[i-1][j-1]),dp[i-1][j+1])+A[i-1][j-1];for(int i=1;i<=m;i++)res= Math.min(res,dp[n][i]);return res;}
}

leetcode931. 下降路径最小和(动态规划)相关推荐

  1. leetcode - 931. 下降路径最小和

    931. 下降路径最小和 -------------------------------------------- 给定一个方形整数数组 A,我们想要得到通过 A 的下降路径的最小和. 下降路径可以从 ...

  2. LeetCode 931. 下降路径最小和(动态规划)

    1. 题目 给定一个方形整数数组 A,我们想要得到通过 A 的下降路径的最小和. 下降路径可以从第一行中的任何元素开始,并从每一行中选择一个元素.在下一行选择的元素和当前行所选元素最多相隔一列. 示例 ...

  3. LeetCode 1289. 下降路径最小和 II(DP)

    1. 题目 给你一个整数方阵 arr ,定义「非零偏移下降路径」为:从 arr 数组中的每一行选择一个数字,且按顺序选出来的数字中,相邻数字不在原数组的同一列. 请你返回非零偏移下降路径数字和的最小值 ...

  4. LeetCode 931. 下降路径最小和(DP)

    文章目录 1. 题目 2. 动态规划解题 1. 题目 给定一个方形整数数组 A,我们想要得到通过 A 的下降路径的最小和. 下降路径可以从第一行中的任何元素开始,并从每一行中选择一个元素.在下一行选择 ...

  5. Leetcode 931.下降路径最小和

    Time: 20190905 Type: Medium 题目描述 给定一个方形整数数组 A,我们想要得到通过 A 的下降路径的最小和. 下降路径可以从第一行中的任何元素开始,并从每一行中选择一个元素. ...

  6. leetcode算法题--下降路径最小和

    原题链接:https://leetcode-cn.com/problems/minimum-falling-path-sum/ 相关题目:三角形最小路径和 动态规划 dp[i][j]表示[i,j]位置 ...

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

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

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

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

  9. leetcode 931. Minimum Falling Path Sum(最小的下降路径和)

    下降的路径就是从第一行任一个元素出发,只能直着或斜着走到下一行,直到到达最后一行,返回形成的路径中最小的路径和. 思路: DP 从下往上推, 在最后一行选一个元素,那么它是从哪里过来的?是从上一行的j ...

最新文章

  1. photoshop 图片转 pdf
  2. oracle tns连接拒绝,TNS-12564: TNS: 拒绝连接(new)
  3. 给卡车穿上“隐身衣”,让自动驾驶车辆撞上它!这场自动驾驶比赛,比谁攻得快...
  4. 理解标准输出流方法:WriteLine和Write
  5. 数据结构 - 树(二叉树的 前序、中序、后序 遍历)
  6. 一个开源小项目,如何使用「分类网络」实现排球追踪
  7. 减小VirtualBox虚拟硬盘文件的大小
  8. S7-200 PC ACCESS下载安装及常见问题解决思路指南
  9. html 车牌号输入代码,html中车牌号省份简称输入键盘的示例代码(3)
  10. 树莓派智能小车c语言代码,树莓派智能小车开发详解
  11. httppost请求工具类
  12. 普通型母函数和指数型母函数
  13. 绕口令 - 专项练习
  14. Windows 操作系统
  15. python爬取微信小程序源代码_【实战】CrawlSpider实现微信小程序社区爬虫
  16. 11月更新!一口气上线20+新功能,3D架构拓扑图更具趣味性~
  17. dw实时视图与网页不一样_视图窗口和oc实时预览内容显示范围不一样,不完全同步。...
  18. linux主机sys使用率忽高忽低,cpu使用率忽高忽低的原因和解决方法
  19. 关于maven的plugin插件问题(踩坑)
  20. 模拟电子技术实验指导书

热门文章

  1. 【金三银四】微软java后端社招
  2. NOI 2016 优秀的拆分 (后缀数组+差分)
  3. Linux 文件的压缩与解压
  4. 锁大全与 GDB调试
  5. SqlServer双机热备技术实践笔记
  6. 记录一些容易忘记的属性 -- UITabBarController
  7. C# mysql 插入数据,中文乱码
  8. 最新的Windows phone Developer tools RTW 发布了
  9. 话说Svn与Git的区别
  10. Eclipse 插件开发 向导