leetcode931. 下降路径最小和(动态规划)
给定一个方形整数数组 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. 下降路径最小和(动态规划)相关推荐
- leetcode - 931. 下降路径最小和
931. 下降路径最小和 -------------------------------------------- 给定一个方形整数数组 A,我们想要得到通过 A 的下降路径的最小和. 下降路径可以从 ...
- LeetCode 931. 下降路径最小和(动态规划)
1. 题目 给定一个方形整数数组 A,我们想要得到通过 A 的下降路径的最小和. 下降路径可以从第一行中的任何元素开始,并从每一行中选择一个元素.在下一行选择的元素和当前行所选元素最多相隔一列. 示例 ...
- LeetCode 1289. 下降路径最小和 II(DP)
1. 题目 给你一个整数方阵 arr ,定义「非零偏移下降路径」为:从 arr 数组中的每一行选择一个数字,且按顺序选出来的数字中,相邻数字不在原数组的同一列. 请你返回非零偏移下降路径数字和的最小值 ...
- LeetCode 931. 下降路径最小和(DP)
文章目录 1. 题目 2. 动态规划解题 1. 题目 给定一个方形整数数组 A,我们想要得到通过 A 的下降路径的最小和. 下降路径可以从第一行中的任何元素开始,并从每一行中选择一个元素.在下一行选择 ...
- Leetcode 931.下降路径最小和
Time: 20190905 Type: Medium 题目描述 给定一个方形整数数组 A,我们想要得到通过 A 的下降路径的最小和. 下降路径可以从第一行中的任何元素开始,并从每一行中选择一个元素. ...
- leetcode算法题--下降路径最小和
原题链接:https://leetcode-cn.com/problems/minimum-falling-path-sum/ 相关题目:三角形最小路径和 动态规划 dp[i][j]表示[i,j]位置 ...
- LeetCode--64. 最小路径和(动态规划)
最小路径和(动态规划) 1. 题目描述 2. 题目分析 3. C语言实现 1. 题目描述 难度:中等 2. 题目分析 这道题目是62题.不同路径的延伸,解题思路基本一样的,是通过动态规划来实现的: - ...
- leetcode120. 三角形最小路径和(动态规划)
**给定一个三角形,找出自顶向下的最小路径和.**每一步只能移动到下一行中相邻的结点上. 相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 + 1 的两个结点. 例如, ...
- leetcode 931. Minimum Falling Path Sum(最小的下降路径和)
下降的路径就是从第一行任一个元素出发,只能直着或斜着走到下一行,直到到达最后一行,返回形成的路径中最小的路径和. 思路: DP 从下往上推, 在最后一行选一个元素,那么它是从哪里过来的?是从上一行的j ...
最新文章
- photoshop 图片转 pdf
- oracle tns连接拒绝,TNS-12564: TNS: 拒绝连接(new)
- 给卡车穿上“隐身衣”,让自动驾驶车辆撞上它!这场自动驾驶比赛,比谁攻得快...
- 理解标准输出流方法:WriteLine和Write
- 数据结构 - 树(二叉树的 前序、中序、后序 遍历)
- 一个开源小项目,如何使用「分类网络」实现排球追踪
- 减小VirtualBox虚拟硬盘文件的大小
- S7-200 PC ACCESS下载安装及常见问题解决思路指南
- html 车牌号输入代码,html中车牌号省份简称输入键盘的示例代码(3)
- 树莓派智能小车c语言代码,树莓派智能小车开发详解
- httppost请求工具类
- 普通型母函数和指数型母函数
- 绕口令 - 专项练习
- Windows 操作系统
- python爬取微信小程序源代码_【实战】CrawlSpider实现微信小程序社区爬虫
- 11月更新!一口气上线20+新功能,3D架构拓扑图更具趣味性~
- dw实时视图与网页不一样_视图窗口和oc实时预览内容显示范围不一样,不完全同步。...
- linux主机sys使用率忽高忽低,cpu使用率忽高忽低的原因和解决方法
- 关于maven的plugin插件问题(踩坑)
- 模拟电子技术实验指导书