zoukankan      html  css  js  c++  java
  • leetcode刷题笔记一百二十题 三角形最小路径和

    leetcode刷题笔记一百二十题 三角形最小路径和

    源地址:120. 三角形最小路径和

    问题描述:

    给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。

    相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 + 1 的两个结点。

    例如,给定三角形:

    [
    [2],
    [3,4],
    [6,5,7],
    [4,1,8,3]
    ]
    自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。

    说明:

    如果你可以只使用 O(n) 的额外空间(n 为三角形的总行数)来解决这个问题,那么你的算法会很加分。

    /**
    本体使用动态规划方法处理
    动态方程初始方程:dp(0) = 
    */
    object Solution {
        def minimumTotal(triangle: List[List[Int]]): Int = {
            val rowLength = triangle.length
            if (triangle == null) return 0
            val dp = Array.fill(rowLength)(0)
            dp(0) = triangle(0)(0)
            for ( i <- 1 to rowLength-1){
                //从每一行的末尾进行更新
                dp(i) = dp(i-1) + triangle(i)(i)
                for ( j <- (1 to i-1).reverse){
                    dp(j) = Math.min(dp(j-1), dp(j)) + triangle(i)(j)
                }
                //更新dp(0)
                dp(0) += triangle(i)(0)
            } 
            return dp.min
        }
    }
    
  • 相关阅读:
    JNI_Z_02_函数参数_JNIEnv*_jclass_jobject
    JNI_Z_01_获取Clazz
    文章网址
    nginx安装,反向代理配置
    排序的hashmap(guava)
    Unirest-拼装http请求发送rest接口
    mac远程连接windows
    java class遍历属性
    mongodb mongotemplate聚合
    java tar.gz文件生成
  • 原文地址:https://www.cnblogs.com/ganshuoos/p/13472945.html
Copyright © 2011-2022 走看看