忘记密码   免费注册 查看新帖 | 论坛精华区

ChinaUnix.net

  平台 论坛 博客 认证专区 大话IT HPC论坛 徽章 文库 沙龙 自测 下载 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
最近访问板块 发新帖
查看: 1047 | 回复: 2

[函数] Project Euler - 018 [复制链接]

论坛徽章:
5
数据库技术版块每日发帖之星
日期:2015-11-27 06:20:00程序设计版块每日发帖之星
日期:2015-12-01 06:20:00每日论坛发贴之星
日期:2015-12-01 06:20:0015-16赛季CBA联赛之佛山
日期:2017-03-26 23:38:0315-16赛季CBA联赛之江苏
日期:2017-07-17 10:08:44
发表于 2017-03-28 21:44 |显示全部楼层
本帖最后由 dorodaloo 于 2017-03-28 21:46 编辑

从下面的三角形的顶端开始,向下面一行的相邻数字移动,从顶端到底端的最大总和为23.
3
7
4
2  4 6
8 5  9 3
也就是 3 + 7 + 4 + 9 = 23.
找出从以下三角形的顶端走到底端的最大总和:


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



论坛徽章:
5
数据库技术版块每日发帖之星
日期:2015-11-27 06:20:00程序设计版块每日发帖之星
日期:2015-12-01 06:20:00每日论坛发贴之星
日期:2015-12-01 06:20:0015-16赛季CBA联赛之佛山
日期:2017-03-26 23:38:0315-16赛季CBA联赛之江苏
日期:2017-07-17 10:08:44
发表于 2017-03-31 09:19 |显示全部楼层
大家帮忙看下

论坛徽章:
5
数据库技术版块每日发帖之星
日期:2015-11-27 06:20:00程序设计版块每日发帖之星
日期:2015-12-01 06:20:00每日论坛发贴之星
日期:2015-12-01 06:20:0015-16赛季CBA联赛之佛山
日期:2017-03-26 23:38:0315-16赛季CBA联赛之江苏
日期:2017-07-17 10:08:44
发表于 2017-04-03 14:13 |显示全部楼层
  1. package main

  2. func main() {
  3.     a := [][]int{ {3}, { 7, 4 }, { 2, 4, 6 }, { 8, 5, 9, 3 } }
  4.     b := [][]int{
  5.         {75},
  6.         { 95, 64 },
  7.         { 17, 47, 82 },
  8.         { 18, 35, 87, 10 },
  9.         { 20, 4, 82, 47, 65 },
  10.         { 19, 1, 23, 75, 3, 34 },
  11.         { 88, 2, 77, 73, 7, 63, 67 },
  12.         { 99, 65, 4, 28, 6, 16, 70, 92 },
  13.         { 41, 41, 26, 56, 83, 40, 80, 70, 33 },
  14.         { 41, 48, 72, 33, 47, 32, 37, 16, 94, 29 },
  15.         { 53, 71, 44, 65, 25, 43, 91, 52, 97, 51, 14 },
  16.         { 70, 11, 33, 28, 77, 73, 17, 78, 39, 68, 17, 57 },
  17.         { 91, 71, 52, 38, 17, 14, 91, 43, 58, 50, 27, 29, 48 },
  18.         { 63, 66, 4, 68, 89, 53, 67, 30, 73, 16, 69, 87, 40, 31 },
  19.         { 4, 62, 98, 27, 23, 9, 70, 98, 73, 93, 38, 53, 60, 4, 23 } }

  20.     p018(a) // 23
  21.     p018(b) // 1074
  22. }

  23. func p018(A [][]int) {
  24.     max := make([]int, len(A[len(A)-1]))
  25.     copy(max, A[len(A)-1])
  26.     for i := len(A) - 2; i >= 0; i-- {
  27.         for j := 0; j < len(A[i]); j++ {
  28.             add := max[j]
  29.             if add < max[j+1] { add = max[j+1] }
  30.             max[j] = A[i][j] + add
  31.         }
  32.     }
  33.     println(max[0])
  34. }
复制代码

您需要登录后才可以回帖 登录 | 注册

本版积分规则

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802020122
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP