• Java实现 蓝桥杯 算法训练 数字三角形


    算法训练 数字三角形
    时间限制:1.0s 内存限制:256.0MB
    问题描述
      (图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

    import java.util.Scanner;
    
    
    public class 数字三角形 {
    	public static void main(String[] args) {
            Scanner in = new Scanner(System.in);
    
            int n = in.nextInt();
            if(n<1 || n>100) 
                System.exit(0);
            int[][] dp = new int[n][n];
            for(int i=0;i<n;i++) {
                for(int j=0;j<=i;j++) {
                    dp[i][j] = in.nextInt();
                    if(dp[i][j]<0 || dp[i][j]>99)
                        System.exit(0);
                }
            }
    
            for(int i=1;i<n;i++) {
                dp[i][0] += dp[i-1][0];
                dp[i][i] += dp[i-1][i-1];
            }
    
            for(int i=2;i<n;i++) {
                for(int j=1;j<i;j++) {
                    dp[i][j] += Math.max(dp[i-1][j-1], dp[i-1][j]);
                }
            }
    
            int sum=0;
            for(int i=0;i<n;i++) {
                sum = Math.max(sum,dp[n-1][i]);
            }
            System.out.println(sum);
            in.close();
        }
    
    }
    
    
  • 相关阅读:
    表的外键创建:
    django内容回顾:
    编辑出版社:
    删除出版社:
    新增出版社:
    Windows XP SP3中远程桌面实现多用户登陆
    Hibernate基本概念 (4)
    Hibernate基本概念 (3)
    Hibernate基本概念 (3)
    Hibernate基本概念 (3)
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13079367.html
Copyright © 2020-2023  润新知