`
to_zoe_yang
  • 浏览: 143377 次
  • 性别: Icon_minigender_2
  • 来自: 01
社区版块
存档分类
最新评论

Problem 18

 
阅读更多
问题描述:
By starting at the top of the triangle below and moving to adjacent numbers on the row below, the maximum total from top to bottom is 23.

3
7 4
2 4 6
8 5 9 3

That is, 3 + 7 + 4 + 9 = 23.

Find the maximum total from top to bottom of the triangle below:

75
95 64
17 47 82
18 35 87 10
20 04 82 47 65
19 01 23 75 03 34
88 02 77 73 07 63 67
99 65 04 28 06 16 70 92
41 41 26 56 83 40 80 70 33
41 48 72 33 47 32 37 16 94 29
53 71 44 65 25 43 91 52 97 51 14
70 11 33 28 77 73 17 78 39 68 17 57
91 71 52 38 17 14 91 43 58 50 27 29 48
63 66 04 68 89 53 67 30 73 16 69 87 40 31
04 62 98 27 23 09 70 98 73 93 38 53 60 04 23

NOTE: As there are only 16384 routes, it is possible to solve this problem by trying every route. However, Problem 67, is the same challenge with a triangle containing one-hundred rows; it cannot be solved by brute force, and requires a clever method! ;o)


解决方法:

public static long find_max_sum(int[][] numbers){
long result = 0;
long[][] sum = new long[numbers.length][numbers.length];
sum[0] = new long[3];Arrays.fill(sum[0], 0);
sum[0][0] = numbers[0][0];

for(int i=1; i<numbers.length; i++){
for(int j=0; j<numbers[i].length; j++){
if(j==0){
sum[i][j] = numbers[i][j] +sum[i-1][j];;
}else if(j==numbers[i].length-1){
sum[i][j] = numbers[i][j] +sum[i-1][j-1];
}else{
long sum1 = numbers[i][j] +sum[i-1][j];
long sum2 = numbers[i][j] +sum[i-1][j-1];
long large = sum1>sum2?sum1:sum2;
sum[i][j] = large;
}
}
}

for(int i=0; i<sum.length; i++){
for(int j=0; j<sum[i].length; j++){
System.out.printf("%10d", sum[i][j]);
}
System.out.println();
}

int row = sum.length-1;
result = sum[row][0];
for(int i=1; i<sum[row].length; i++){
if(result < sum[row][i])
result = sum[row][i];
}

return result;
}

分享到:
评论

相关推荐

    计算机网络第六版答案

    18. 10msec; d/s; no; no 19. a) 500 kbps b) 64 seconds c) 100kbps; 320 seconds 20. End system A breaks the large file into chunks. It adds header to each chunk, thereby generating multiple packets ...

    MySQL数据库考试试题.docx

    18. 正则表达式过滤:REGEXP 操作符(Problem 18) REGEXP 操作符用于在 WHERE 子句中使用正则表达式过滤数据。 19. 数据操纵语句:SELECT、INSERT、UPDATE、DELETE 等(Problem 19) SQL 语言中的数据操纵语句...

    fundamental of electric circuits

    - **语音信号——奈奎斯特速率**(Problem 18.65): 讨论了语音信号的采样率与奈奎斯特准则。 #### 四、计算机工具的应用 - **PSpice**:一种电路仿真软件,被广泛应用于教学与研究领域。本书在第三章介绍了PSpice,...

    Computer-Based.Problem.Solving.Process

    Chapter 18. Batch Operating System Chapter 19. Problem of Protection Chapter 20. Timing Program Execution Chapter 21. Efficiency of Batch Operating Systems Chapter 22. Convenience of the BOS Chapter ...

    模糊数学作业(本章题目大部分涉及到模糊矩阵的运算)

    在第28题中,学生需要编写程序处理模糊矩阵,并将其作为输入传递给之前实现的程序,如`problem18.cpp`或`problem22.cpp`,以完成模糊矩阵的进一步处理。 最后,`fuzzy_matrix.h`中的`fuzzy_matrix`类展示了如何设计...

    Prime Ring Problem 深度探索

    int M, g, a[20] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20}, ag[20], c[20]; ``` - 初始化数组`a`,用于存储可能填入环中的数字。 - `ag`数组用于标记数字是否已被使用。 - `c`...

    Problem Solving with C++

    #### 第18章:C++11与容器(p.990) C++11是一个重要的语言标准,引入了许多新特性,包括改进的容器类型。本章重点介绍了C++11中容器的一些新特性和优化方法。 - **容器**:用于存储和管理元素的抽象数据类型。 - ...

    Problem Solving with C++ (7th edition)

    #### Chapter 18: Advanced Topics This final chapter covers miscellaneous advanced topics: - **Advanced Algorithms**: Discussion of advanced algorithms, such as graph traversal and search algorithms....

    C++.Programming.From.Problem.Analysis.to.Program.Design.7th.Edition

    Chapter 18. Stacks and Queues. Appendix A. Reserved Words. Appendix B. Operator Precedence. Appendix C. Character Sets. Appendix D. Operators Overloading. Appendix E. Additional C++ Topics. Appendix ...

    Problem Solving in Data Structures & Algorithms Using Java

    CHAPTER 18: DIVIDE-AND-CONQUER, DECREASE-AND-CONQUER CHAPTER 19: DYNAMIC PROGRAMMING CHAPTER 20: BACKTRACKING AND BRANCH-AND-BOUND CHAPTER 21: COMPLEXITY THEORY AND NP COMPLETENESS CHAPTER 22: ...

    Problem-Solving-with-C++-9th

    #### 第18章:C++11 特性和容器 - **C++11 新特性**:介绍了C++11版本引入的新功能,如右值引用、自动类型推导、范围基础的for循环等。 - **容器**:讲解了C++11标准库中提供的新容器类型,如`unordered_map`、`...

    C++ Programming: From Problem Analysis to Program Design, 8th Edition

    C++ Programming: From Problem Analysis to Program Design By 作者: D. S. Malik ISBN-10 书号: 1337102083 ISBN-13 书号: 9781337102087 Edition 版本: 8 出版日期: 2017-02-13 pages 页数: 1491 Contents ...

    problem.pdf

    在这道题目中,给定一个数字n和另一个不大于10^18的数k,要求参赛者计算所有小于等于k的n阶生成矩阵的数量。生成矩阵是一个n*n的矩阵,其元素构成从1到n^2的连续整数。如果有两个矩阵通过旋转180度可以重合,则认为...

    动态规划Hamming_Problem 解题报告

    在"Hamming Problem"这个编程挑战中,我们需要找到一个特定的Hamming序列中的第i个数。Hamming序列是由三个质数p1, p2, 和 p3定义的,序列包含所有只被这三个质数之一整除的自然数,按递增顺序排列。 例如,给定...

    Problem.Solving.in.Data.Structures.and.Algorithms.Using.Cplusplus.epub

    Designing an efficient algorithm to solve a computer science problem is a skill of Computer programmer. This is the skill which tech companies like Google, Amazon, Microsoft, Adobe and many others ...

    基于Go语言的Container Problem Detect System异常检测器设计源码

    该项目是一款基于Go语言的Container Problem Detect System异常检测器,源码包含2261个文件,涵盖1823个Go源文件、98个Markdown文件、51个Shell脚本文件、43个Git忽略文件、31个YAML配置文件、18个模板文件、14个...

    mynane#web-problem#杂记-18.获取运行环境1

    // 获取userAgent// 是否是ie// 是否是IE9// 是否是edge浏览器// 是否是android浏览器// 是否是ios// 是否是谷歌浏览器

    algorithm-problem

    自2021年4月18日起,该项目的作者坚持每日更新,旨在通过JavaScript实现各种算法,以期在不断提升自身技术实力的同时,也为有志于进入京东等大型互联网公司的程序员提供宝贵的实战经验。 在JavaScript中实现算法,...

    爱立信CSR数据采集规范

    18. Cannot make/receive call, send/receive SMS 10 19. CP Overload (Call restrict) 12 20. APZ related problem 12 20.1 For APZ 212 11/20/25/30/33 12 20.2 APZ 212 40 Restart/RELOAD/CP FAULT 14 20.3 APZ ...

Global site tag (gtag.js) - Google Analytics