给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。
例如,给定三角形:
[
     [2],
    [3,4],
   [6,5,7],
  [4,1,8,3]
]

自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。
 
思路:自底向上的动态规划,从三角形倒数第二行开始看, triangle[i][j] 一定会到达  triangle[i+1][j] 或者  triangle[i+1][j+1] 得出状态转移方程,
所以当前状态最小和就是 triangle[i+1][j] 与 triangle[i+1][j+1] 的最小值加上 triangle[i][j] 
得出状态转移方程: triangle[i][j] = min(triangle[i+1][j],triangle[i+1][j+1]) + triangle[i][j]  
简单来说:数组中元素的变化
2
3,4
6,5,7
4,1,8,3
对6来说肯定选4和1的最小值与它相加,对5来说肯定选1与8的最小值与它相加,对7来说肯定选8与3的最小值与它相加所以变成
2
3,4
7,6,10
4,1,8,3
同理:
2
9,10
7,6,10
4,1,8,3
2与9与10的最小值相加为11,即返回11.  可以得出的遍历行和列,所以算法复杂度O(N^2);
 1 #define min(a,b) (a < b ? a : b)
2
3 int minimumTotal(int** triangle, int triangleSize, int* triangleColSize)
4 {
5 int i,j;
6 if(triangle == NULL)
7 {
8 return 0;
9 }
10
11 for(i = triangleSize-2;i>=0; i--)
12 {
13 for(j = 0; j < triangleColSize[i]; j++)
14 {
15 triangle[i][j] = min(triangle[i+1][j],triangle[i+1][j+1]) + triangle[i][j];
16 }
17 }
18 return triangle[0][0];
19 }
 
 
 
 

DP:三角形的最小路径和的更多相关文章

  1. [DP]矩阵的最小路径和

    题目 给定一个矩阵m, 从左上角开始每次只能向右或者向下走,最后到达右下角的位置,路径上所有的树子累加起来就是路径和,返回所有的路径中最小的路径和. 解法一 这是一道经典的动态规划题,状态转移方程为d ...

  2. lintcode :最小路径和

    题目: 最小路径和 给定一个只含非负整数的m*n网格,找到一条从左上角到右下角的可以使数字和最小的路径. 样例   注意 你在同一时间只能向下或者向右移动一步 解题: 这个和求三角形的最小路径的差不多 ...

  3. 1. 线性DP 120. 三角形最小路径和

    经典问题: 120. 三角形最小路径和  https://leetcode-cn.com/problems/triangle/ func minimumTotal(triangle [][]int) ...

  4. [Swift]LeetCode120. 三角形最小路径和 | Triangle

    Given a triangle, find the minimum path sum from top to bottom. Each step you may move to adjacent n ...

  5. LeetCode(120):三角形最小路径和

    Medium! 题目描述: 给定一个三角形,找出自顶向下的最小路径和.每一步只能移动到下一行中相邻的结点上. 例如,给定三角形: [ [2], [3,4], [6,5,7], [4,1,8,3] ] ...

  6. 领扣-120 三角形最小路径和 Triangle MD

    三角形最小路径和 Triangle 数组 动态规划 问题 给定一个三角形,找出自顶向下的最小路径和.每一步只能移动到下一行中相邻的结点上. 例如,给定三角形: [2], [3,4], [6,5,7], ...

  7. LeetCode 三角形最小路径和

    给定一个三角形,找出自顶向下的最小路径和.每一步只能移动到下一行中相邻的结点上. 例如,给定三角形: [ [2], [3,4], [6,5,7], [4,1,8,3] ] 自顶向下的最小路径和为 11 ...

  8. [算法]LeetCode 120:三角形最小路径和

    题目描述: 给定一个三角形,找出自顶向下的最小路径和.每一步只能移动到下一行中相邻的结点上. 例如,给定三角形: [ [2], [3,4], [6,5,7], [4,1,8,3]]自顶向下的最小路径和 ...

  9. LeetCode 120. 三角形最小路径和(Triangle)

    题目描述 给定一个三角形,找出自顶向下的最小路径和.每一步只能移动到下一行中相邻的结点上. 例如,给定三角形: [ [2], [3,4], [6,5,7], [4,1,8,3] ] 自顶向下的最小路径 ...

  10. Leetcode120.Triangle三角形最小路径和

    给定一个三角形,找出自顶向下的最小路径和.每一步只能移动到下一行中相邻的结点上. 例如,给定三角形: [ [2], [3,4], [6,5,7], [4,1,8,3] ] 自顶向下的最小路径和为 11 ...

随机推荐

  1. 2021-7-7 Vue实现切换图片功能代码

    <!DOCTYPE html> <html> <head> <title> </title> </head> <body& ...

  2. C#.NET 国密SM3 HASH 哈希 与JAVA互通 ver:20230803

    C#.NET 国密SM3 HASH 哈希 与JAVA互通 ver:20230803 .NET 环境:.NET6 控制台程序(.net core). JAVA 环境:JAVA8,带maven 的JAVA ...

  3. Cilium系列-14-Cilium NetworkPolicy 简介

    系列文章 Cilium 系列文章 前言 今天我们进入 Cilium 安全相关主题, 介绍 Kubernetes 网络策略以及 CiliumNetworkPolicies 额外支持的内容. 网络策略(N ...

  4. TCP四次挥手会经历这么多状态

    TCP三次握手 中讲述了序列号和建立连接,这一篇来说说释放连接. 标志位 TCP首部中在属性标志位,和建立连接.释放连接有关,位于保留和窗口字段中间,其中三个标识与断开连接有关. ACK: ackno ...

  5. Callback Function Essence

    Include Example Input: I am a. route execute finish. I am b. route execute finish. What is Callback ...

  6. 通过WinSW部署JAR包为windows服务

    通过WinSW部署JAR包为windows服务 背景 使用 Java 编写了一些有用的工具,因为不方便部署到服务器上,所以需要把 Java 生成的 jar 包在本地 Windows 上部署. 查阅了几 ...

  7. AI绘画关键词Prompt:分享一些质量比较高的StableDiffusion(SD)关键词网站

    今天向大家推荐一些SD(StableDiffusion)高质量的 关键词 网站.这些网站的质量可靠,能为大家在创建 AI 绘画时提供有效的参考.以下是六个推荐的网站,优缺点分析. 有几个质量还算是挺高 ...

  8. Mybatis插件功能

    1 插件的作用 在Mybatis执行SQL的生命周期中,会使用插件进行埋点,主要包括Executor.StatementHandler.ParameterHandler和ResultSetHandle ...

  9. 如何使用Vite创建Vue3的uniapp项目

    项目结构 my-vue3-project ├─ .env //默认环境变量 ├─ .env.development //开发环境变量 ├─ .eslintrc-auto-import.json //( ...

  10. 在线问诊 Python、FastAPI、Neo4j — 创建症状节点

    目录 症状数据 创建节点 附学习 电子病历中,患者主诉对应的相关检查,得出的诊断以及最后的用药情况.症状一般可以从主诉中提取. 症状数据 symptom_data.csv CSV 中,没有直接一行一个 ...