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);
    	}
    }
    
    
  • 相关阅读:
    Python 编码问题(十四)
    Python 编程核心知识体系-文件对象|错误处理(四)
    Python 编程核心知识体系-模块|面向对象编程(三)
    项目中的走查
    回滚代码及pod install报错
    UI-3
    UI-2
    UI-1
    MarkDown基本语法速记
    Swift3.0-closure的@autoclosure和@escaping
  • 原文地址:https://www.cnblogs.com/a1439775520/p/12948858.html
Copyright © 2011-2022 走看看