当前位置: 首页 > news >正文

lintcode-109-数字三角形

109-数字三角形

给定一个数字三角形,找到从顶部到底部的最小路径和。每一步可以移动到下面一行的相邻数字上。

注意事项

如果你只用额外空间复杂度O(n)的条件下完成可以获得加分,其中n是数字三角形的总行数。

样例

比如,给出下列数字三角形:
[
[2],
[3,4],
[6,5,7],
[4,1,8,3]
]
从顶到底部的最小路径和为11 ( 2 + 3 + 5 + 1 = 11)。

标签

动态规划

思路

使用动态规划,用二维数组 dp[i][j] 记录信息,dp[i][j] 表示第 i 行、第 j 列的元素到三角形底部的最小路径和
状态转移方程为:dp[i][j] = triangle[i][j] + min(dp[i+1][j] , dp[i+1][j+1])

code

class Solution {
public:
    /**
     * @param triangle: a list of lists of integers.
     * @return: An integer, minimum path sum.
     */
    int minimumTotal(vector<vector<int> > &triangle) {
        // write your code here
        int size = triangle.size(), i = 0, j = 0;
        if(size <=0) {
            return 0;
        }
        
        vector<vector<int> > dp = triangle;
        for(i=size-2; i>=0; i--) {
            for(j=0; j<dp[i].size(); j++) {
                dp[i][j] += (dp[i+1][j] > dp[i+1][j+1]) ? dp[i+1][j+1] : dp[i+1][j];
            }
        }
        
        return dp[0][0];
    }
};

转载于:https://www.cnblogs.com/libaoquan/p/7199958.html

相关文章:

  • 关于python ide
  • git学习
  • SVM
  • Java编码格式
  • 【SignalR学习系列】2. 第一个SignalR程序
  • Passing the Message 单调栈两次
  • SSM搭建
  • 格式化angularjs日期'/Date(-62135596800000)/'
  • window.location
  • ASP.NET Core API 版本控制
  • 2017.7.25 jqGrid在编辑态无法获取数据,得到的是html代码
  • 人机猜拳
  • 【网络开发】详谈socket请求Web服务器过程
  • java④
  • rhcs clustat
  • 分享一款快速APP功能测试工具
  • css选择器
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • JAVA 学习IO流
  • Linux后台研发超实用命令总结
  • markdown编辑器简评
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • Storybook 5.0正式发布:有史以来变化最大的版本\n
  • Synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比...
  • Vue官网教程学习过程中值得记录的一些事情
  • windows下如何用phpstorm同步测试服务器
  • 阿里云前端周刊 - 第 26 期
  • 创建一种深思熟虑的文化
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 欢迎参加第二届中国游戏开发者大会
  • 快速体验 Sentinel 集群限流功能,只需简单几步
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 七牛云 DV OV EV SSL 证书上线,限时折扣低至 6.75 折!
  • 七牛云假注销小指南
  • 如何使用 JavaScript 解析 URL
  • 用Python写一份独特的元宵节祝福
  • ​油烟净化器电源安全,保障健康餐饮生活
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • $$$$GB2312-80区位编码表$$$$
  • (1)常见O(n^2)排序算法解析
  • (145)光线追踪距离场柔和阴影
  • (27)4.8 习题课
  • (arch)linux 转换文件编码格式
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (免费领源码)Python#MySQL图书馆管理系统071718-计算机毕业设计项目选题推荐
  • (原創) 如何安裝Linux版本的Quartus II? (SOC) (Quartus II) (Linux) (RedHat) (VirtualBox)
  • (转) RFS+AutoItLibrary测试web对话框
  • (转)jQuery 基础
  • ... fatal error LINK1120:1个无法解析的外部命令 的解决办法
  • .a文件和.so文件
  • .cfg\.dat\.mak(持续补充)
  • .NET 4 并行(多核)“.NET研究”编程系列之二 从Task开始
  • .NET Framework .NET Core与 .NET 的区别