输入格式
第一行包含整数 n,表示数字三角形的层数。
接下来 n行,每行包含若干整数,其中第 i 行表示数字三角形第 i 层包含的整数。
输出格式
输出一个整数,表示最大的路径数字和。
样例
输入数据 1
5
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
输出数据 1
30
数据范围
1≤n≤500
−10000≤三角形中的整数≤10000、
import java.util.Scanner;
public class Main {
public static void main (String[] args) {
Scanner sc = new Scanner(System.in);
int[][] arr = new int[10000][10000];
int n = sc.nextInt();
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= i; j++) {
arr[i][j] = sc.nextInt();
}
}
for (int i = n; i >= 1; i--) {
for (int j = 1; j <= i; j++) {
arr[i][j] += Math.max(arr[i + 1][j], arr[i + 1][j + 1]); // 将每一个数都来走一遍,到第二排看哪个数最大,就找到了最长的那条路线;
}
}
System.out.print(arr[1][1]);
}
}