zoukankan      html  css  js  c++  java
  • 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]
                    }
                }
            }
        }
    }
  • 相关阅读:
    自我介绍
    学习进度第二周
    [BJDCTF2020]Easy MD5
    2020/2/13 bluecmsv1.6sp1代码审计
    [CISCN2019 总决赛 Day1 Web4]Laravel1
    [ByteCTF 2019]EZCMS
    2020/2/12 PHP编程学习
    [XNUCA2019Qualifier]EasyPHP
    [RoarCTF 2019]Online Proxy
    [GXYCTF2019]BabySQli
  • 原文地址:https://www.cnblogs.com/johnnyzhao/p/13764315.html
Copyright © 2011-2022 走看看