数塔问题

给定一个数塔,其存储形式为如下所示的下三角矩阵。在此数塔中,从顶部出发,在每一节点可以选择向下走还是向右走,一直走到底层。请找出一条路径,使路径上的数值和最大。输入样例(数塔):912    15 10   6    82    18  9    519   7   10   4    16输出样例(最大路径和):59import java.util.Scann
摘要由CSDN通过智能技术生成

给定一个数塔,其存储形式为如下所示的下三角矩阵。在此数塔中,从顶部出发,在每一节点可以选择向下走还是向右走,一直走到底层。请找出一条路径,使路径上的数值和最大。

输入样例(数塔):

9

12    15

10   6    8

2    18  9    5

19   7   10   4    16

输出样例(最大路径和):

59

import java.util.Scanner;

//测试数据
//9
//12 15
//10 6 8
//2 18 9 5
//19 7 10 4 16

public class HDU {

	private int [][] data = new int[50][50];//存储原始数塔数据
	private int [][] d = new int[50][50];//存储中间结果
	
	protected void hdu(){
		int i;//行
		int j;//列
		int b;//查找路径使用
		int ii;//记录查找过程i值
		int jj;//记录查找过程j值
		System.out.println("请输入数塔数据");
		Scanner scanner = new Scanner(System.in);
		for(i = 1;i <= 5;i++){
			for(j = 1;j <= i;j++){
				data[i][j] = scanner.nextInt();
				d[i][j] = data[i][j];
			}
		}
		
		//计算最大值
		for(i = 4;i >= 1;i--){
			for(j = 1;j 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值