题目描述:
在一座山上,有很多很多珠宝,它们散落在山底通往山顶的每条道路上,不同道路上的珠宝的数目也各不相同.下图为一张藏宝地图:
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
”夺宝奇兵”从山下出发,到达山顶,如何选路才能得到最多的珠宝呢?在上图所示例子中,按照5-> 7-> 8-> 3-> 7的顺序,将得到最大值30
代码:
package lanqiao;
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[][] dp = new int[n][n];
for(int i = 0;i < n;i ++)
{
for(int j = 0;j <= i;j ++)
{
dp[i][j] = sc.nextInt();
}
}
for(int i = n - 2;i >= 0;i --)
{
for(int j = 0;j <= i;j ++)
{
dp[i][j] += Math.max(dp[i + 1][j],dp[i + 1][j + 1]);
}
}
System.out.println(dp[0][0]);
}
}