931. 下降路径最小和

————————————————————————————————————————————
给定一个方形整数数组 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。

提示:

1 <= A.length == A[0].length <= 100
-100 <= A[i][j] <= 100

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/minimum-falling-path-sum
————————————————————————————————————————————
解题思路:
使用动态规划,从倒数第二层开始向上探索,倒数第二层到倒数第一层的最短路径可以知道,然后根据倒数第二层的结果探索倒数第三层的结果,以此类推,可以得到最后的结果,从第一层中选择最短路径的值,然后输出结果。具体的C++代码如下:

class Solution {
public:int minFallingPathSum(vector<vector<int>>& a) {int hang = a.size();int lie = a[0].size();for(int i=hang-2;i>=0;i--){for(int j=lie-1;j>=0;j--){if(j==lie-1){a[i][j] = a[i][j] + min(a[i+1][j],a[i+1][j-1]);}else if(j==0){a[i][j] = a[i][j] + min(a[i+1][j],a[i+1][j+1]);}elsea[i][j] = a[i][j] + min(min(a[i+1][j-1],a[i+1][j]),a[i+1][j+1]);}}int num=INT_MAX;for(int i=0;i<lie;i++){if(a[0][i]<num)num =a[0][i];}return num;}
};

leetcode - 931. 下降路径最小和相关推荐

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

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

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

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

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

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

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

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

  5. leetcode931. 下降路径最小和(动态规划)

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

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

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

  7. ⭐算法入门⭐《堆》中等03 —— LeetCode 373. 查找和最小的K对数字

    文章目录 一.题目 1.题目描述 2.基础框架 3.原题链接 二.解题报告 1.思路分析 2.时间复杂度 3.代码详解 三.本题小知识 四.加群须知 一.题目 1.题目描述   给定两个以升序排列的整 ...

  8. LeetCode.M62.不同路径

    LeetCode.M62.不同路径 题目: 题目大意: ​ 给定一个 m * n 的方格,从 (0, 0) 走到 (m - 1, n - 1).规定只能**向下.向右 ** 数据范围: 1 <= ...

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

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

最新文章

  1. Egret里用矢量挖圆形的洞
  2. 【Xamarin开发 Android 系列 5】 Xamarin 的破解
  3. POJ2044 深搜+剪枝(云彩下雨)
  4. JavaScript学习05 定时器
  5. 学习SQL数据更新,这一篇就够了!
  6. Spring-boot配置JedisShardInfo
  7. 【刷算法】按照之字形打印二叉树
  8. 学习笔记 卷积网络-dropout
  9. java ajax动态加载数据_java实现的highcharts与ajax结合动态实时获取数据更新图表
  10. Atitit 分区后的查询  mysql分区记录的流程与原理
  11. Spark 0.9.1 MLLib 机器学习库简介
  12. 微信飞机大战游戏开发
  13. 爬取mm131套图并下载到本地
  14. hp电脑测试软件,HP惠普笔记本电池检测工具Battery Check V4.1.0.2中文官方版
  15. 敏感词在线检测-敏感词在线检测工具
  16. Activiti工作流画图工具介绍
  17. PDF文件太大,如何将它压缩得更小一点?
  18. 真的存在“对事不对人”吗?
  19. 关于写javaweb项目,遇到的问题:三层架构
  20. OpenCV4萌新之路——详解图像读取函数 “imread”

热门文章

  1. 包学习(一款安卓端小学到高中全部课程精讲APP)
  2. Web前端开发面试考点指南
  3. JavaScript异步编程【中】 -- Promise 详细解析
  4. 【Python】二维数据格式化
  5. 【Python】绘制哆啦A梦
  6. 安装Cloudreve 新版V3(go版本)
  7. 最大子数组问题 线性时间_我最喜欢的线性时间排序算法
  8. io.circe_如何使用Circe(Un)在Akka HTTP中封送JSON
  9. java web快速入门_Web安全快速入门
  10. 山东大学有人陪!真的吗?_10,000小时! 您真的需要那么多吗?