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);
    	}
    }
    
    
  • 相关阅读:
    Lucky Permutation Triple 构造
    HDU4283:You Are the One(区间DP)
    D. Match & Catch 后缀数组
    数学选讲 orz
    D
    一步一步线段树
    湖科大校赛第三题
    最大流部分
    bfs题目集锦
    hdu1429 bfs+状态压缩
  • 原文地址:https://www.cnblogs.com/a1439775520/p/12948858.html
Copyright © 2011-2022 走看看