原题:题目链接
题目描述:
题目分析:
import java.util.*;
public class Main{
public static void main(String args[]){
Scanner in = new Scanner(System.in);
int row = in.nextInt();
int[][] a = new int[row][];
for(int i=0;i<row;i++){
for(int j=0;j<=i;j++){
a[i][j]==in.nextInt();
}
}
System.out.println(dp(a,row));
}
public static int dp(int[][] a ,int row) {
int rows = row; // 行数
int columns = row ; // 列数(最后一行)
int[] result = new int [columns];
for(int k=0;k<rows;k++) {
result[k]=a[rows-1][k];
}
for(int i=row-2;i>=0;i--){
for(int j=0;j<=i;j++){
result[j] = a[i][j]+Math.max(result[j], result[j+1]);
//result[j] = a[i][j];
}
}
return result[0];
}
}