算法训练 数字三角形
2015-12-18 10:58
309 查看
[code]问题描述 (图3.1-1)示出了一个数字三角形。 请编一个程序计算从顶至底的某处的一条路 径,使该路径所经过的数字的总和最大。 ●每一步可沿左斜线向下或右斜线向下走; ●1<三角形行数≤100; ●三角形中的数字为整数0,1,…99; . (图3.1-1) 输入格式 文件中首先读到的是三角形的行数。 接下来描述整个三角形 输出格式 最大总和(整数) 样例输入 5 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 样例输出 30
[code]提交序号 674864 作者 李增光 提交时间 12-18 10:13 评测结果 正确 得分 100 CPU使用 358ms 内存使用 35.22MB 试题名称 算法训练 数字三角形 语言 J***A
[code]import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner s = new Scanner(System.in); int n = s.nextInt(); //开辟一个二维数组,存放三角型的元素.(非常关键) int[][] a = new int[n + 1][n + 1];//存放元素的位置, //可以画出一个(n+1)*(n+1)的矩阵,便于理解 /* * 往二维数组指定位置存放元素 * */ for (int i = 1; i <= n; i++) for (int j = 1; j <= i; j++) a[i][j] = s.nextInt(); /* * 从数组后一行开始,两两比较元素,选出两者较大的与父节点相加.依此类推 * */ for (int i = n - 1; i > 0; i--) for (int j = 1; j <= i; j++) if (a[i + 1][j] > a[i + 1][j + 1]) a[i][j] += a[i + 1][j]; else a[i][j] += a[i + 1][j + 1]; //最后顶点存放了最大权路径 System.out.println(a[1][1]);// } }
相关文章推荐
- ps命令详解与示例说明
- 机器学习基石HOW部分(2)
- 性能优化系列第四篇--移动端网络优化
- notepad扩展搜索,正则搜索
- Android学习之 使用依赖注入函数库Roboguice
- 存储的相关技术
- mysql update 随机数
- OC学习 第十节 文件管理
- 层次聚类方法(Hierarchical Clustering)
- 两种方式的i2c设备驱动的编写方法
- Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/juli/l
- 阿里云ECS服务器ftp配置教程
- 修改文件目录权限 chmod
- Xcode7 真机调试(无需证书)详解
- iOS疯狂详解之NSFileHandle
- Resource(1)
- 学习salt的源码 salt.client.LocalClient().cmd()
- android圆形图片,圆形背景文字的CircleTextImageView开源组件
- OC学习 第九节 代理协议
- VirtualBox 新建虚拟机时不显示x64位操作系统选项