• Daily Coding Problem: Problem #672


    /**
     * This problem was asked by Google.
    You are given an array of arrays of integers, where each array corresponds to a row in a triangle of numbers.
    For example, [[1], [2, 3], [1, 5, 1]] represents the triangle:
      1
     2 3
    1 5 1
    We define a path in the triangle to start at the top and go down one row at a time to an adjacent value,
    eventually ending with an entry on the bottom row. For example, 1 -> 3 -> 5.
    The weight of the path is the sum of the entries.
    Write a program that returns the weight of the maximum weight path.
     * */
    class Problem_672 {
        fun maxPathWeight(triange: Array<IntArray>): Int {
            val m = triange.size
            val n = triange[0].size
            help(triange, m - 1, n - 1)
            //result save in top left
            return triange[0][0]
        }
    
        //loop for bottom up
        private fun help(triange: Array<IntArray>, m: Int, n: Int) {
            for (i in m-1 downTo 0) {
                for (j in 0..i) {
                    if (triange[i + 1][j] > triange[i + 1][j + 1]) {
                        triange[i][j] += triange[i + 1][j]
                    } else {
                        triange[i][j] += triange[i + 1][j + 1]
                    }
                }
            }
        }
    }
  • 相关阅读:
    ES6中对象新增方法
    ES6中字符串新增方法
    Laya 吐槽日志.
    汇编与反汇编工具
    Mac 软件下载地址
    红米手机 android4.4.4 root之路
    查看apk安装包信息
    文件搜索
    自动发表QQ空间说说
    批量格式化json
  • 原文地址:https://www.cnblogs.com/johnnyzhao/p/13764315.html
Copyright © 2020-2023  润新知