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]
                    }
                }
            }
        }
    }
  • 相关阅读:
    practice
    C#Hello World
    Merge
    Python学习面向对象编程
    Python学习Python操作数据库
    jmeter压力测试
    Python学习基础常用模块
    Python学习Python操作excel
    Python学习网络编程
    Python学习函数
  • 原文地址:https://www.cnblogs.com/johnnyzhao/p/13764315.html
Copyright © 2011-2022 走看看