import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
List<List<Integer>> triangle = new ArrayList<>();
int m = scanner.nextInt();
for (int i = 0; i < m; i++) {
List<Integer> row = new ArrayList<>();
for (int j = 0; j <= i; j++) {
row.add(scanner.nextInt());
}
triangle.add(row);
}
System.out.println(ff(triangle));
}
public static int ff(List<List<Integer>> triangle){
int m=triangle.size();
int n=triangle.get(m-1).size();
int dp[][]=new int[m][n];
for(int i=0;i<n;i++){
dp[m-1][i]=triangle.get(m-1).get(i);
}
for (int i = m-2; i >= 0; i--) {
for (int j = 0; j < triangle.get(i).size(); j++) {
dp[i][j]=Math.max(dp[i+1][j+1],dp[i+1][j])+triangle.get(i).get(j);
}
}
return dp[0][0];
}
}
三角最小路径Java
最新推荐文章于 2024-06-29 11:59:11 发布
本文介绍了使用Java编程语言实现的一个解决方案,通过Scanner获取输入创建三角形数组,然后计算并返回给定三角形的最大路径和。主要关注动态规划方法在计算过程中的应用。
摘要由CSDN通过智能技术生成