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]
                    }
                }
            }
        }
    }
  • 相关阅读:
    作业程序
    第十三周完成情况 学生选课管理系统 王杰 孙乾 蔚晓青
    各周任务
    课程设计 学生选课管理 王杰 孙乾 蔚晓青
    第六次作业
    第五次作业
    第四次笔记
    第三次作业
    第二周学习笔记
    JAVA作业
  • 原文地址:https://www.cnblogs.com/johnnyzhao/p/13764315.html
Copyright © 2011-2022 走看看