题目描述:
在一座山上,有很多很多珠宝,它们散落在山底通往山顶的每条道路上,不同道路上的珠宝的数目也各不相同.下图为一张藏宝地图:
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]);}
}