zoukankan      html  css  js  c++  java
  • (Java实现) 数塔问题

    数塔问题(使用动态规划思路求解)
    如图所示,给定一个正整数构成的三角形,如下所示:
    在下面的数字三角形中寻找一条从顶部到底边的路径,
    使得路径上所经过的数字之和最大。
    路径上的每一步都只能往左下或者右下走。
    只需要求出这个最大和即可,不必给出路径。
    三角形的行数大于1小于等于100,整数为0~99
    在这里插入图片描述

    输入样例:

    输入样例:
    5 – 三角形的行数
    7
    3 8
    8 1 0
    2 7 4 4
    4 5 2 6 5

    输出结果为:

    30

    import java.util.Scanner;
    
    
    public class shutawenti {
    	public static void main(String[] args) {
    		Scanner sc  = new Scanner(System.in);
    		int n = sc.nextInt();
    		int [][]  num = new int [n+2][n+2];
    		int [][]  max = new int [n+2][n+2];
    		for (int i = 1; i <=n; i++) {
    			for (int j = 1; j <=i; j++) {
    				num[i][j]=sc.nextInt();
    			}
    		}
    		for (int i = 1; i <=n; i++) {
    			for (int j = 1; j <=i; j++) {
    				//if(j+1>=n+2) continue;
    				num[i][j]=Math.max(num[i-1][j-1]+num[i][j],num[i-1][j]+num[i][j]);
    			}
    		}
    		int max1 = 0;
    		for (int i = 1; i <=n+1; i++) {
    			max1=Math.max(num[n][i], max1);
    		}
    		System.out.println(max1);
    	}
    }
    
    
  • 相关阅读:
    多进程之数据安全问题
    windows 下安装 RabbitMQ
    springCloud Config分布式配置中心
    git配置ssh
    spring cloud Gateway 新一代网关
    spring cloud Hystrix 断路器
    spring cloud OpenFeign 服务接口调用
    Ribbon负载均衡服务调用
    consul服务注册与发现
    Eureka服务治理
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13079432.html
Copyright © 2011-2022 走看看