emm,起晚了,只做了第一题,附题解
从最后一排开始往上找,则res[i]=Math.max(res[i],res[i+1])+data[n][i];
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int[][] data=new int[n][n];
for(int i=0;i<n;i++) {
for(int j=0;j<=i;j++) {
data[i][j]=sc.nextInt();
}
}
int[] res=new int[n];
for(int i=0;i<n;i++) {
res[i]=data[n-1][i];
}
for(int i=n-2;i>=0;i--) {
for(int j=0;j<=i;j++) {
res[j]=Math.max(res[j], res[j+1])+data[i][j];
}
}
System.out.println(res[0]);
sc.close();
}
}
CVTE公司福利 678人发布