• 数字三角形


    问题描述

      (图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.*;
    
    public class Main {
        private Scanner scanner;
        private int n;
        private int [][] tri;
        private int [][] max_sum_arr;
        public static void main(String[] args) {
            new Main();
        }
    
        private Main(){
            scanner = new Scanner(System.in);
            n = scanner.nextInt();
            tri = new int[n][n];
            for(int i=0;i<n;i++){
                for (int j = 0;j<i+1;j++){
                    tri[i][j] = scanner.nextInt();
                }
            }
            max_sum_arr = new int[n][n];
            System.out.println(solve(0,0));
        }
    
        private int solve(int i,int j){
            if(i == n){
                return 0;
            }
            if(max_sum_arr[i][j]!=0){
                return max_sum_arr[i][j];
            }
            int x = tri[i][j] + solve(i+1,j+1);
         //沿着左侧斜线往下走,不知道为什么不是j-1
    int y = tri[i][j] + solve(i+1,j); return max_sum_arr[i][j] = Math.max(x,y); } }
  • 相关阅读:
    Dynamic Shortest Path CodeForces
    New task CodeForces
    New Roads CodeForces
    Music in Car CodeForces
    互联网思维体系--史上最全的互联网思维精髓总结
    OpenGL Shader Key Points (3)
    Netfilter的使用和实现
    数据包接收系列 — IP协议处理流程(二)
    数据包接收系列 — IP协议处理流程(一)
    数据包接收系列 — NAPI的原理和实现
  • 原文地址:https://www.cnblogs.com/zhanghaijie/p/8549683.html
Copyright © 2020-2023  润新知