参考代码:
public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); // 最底层数字 int[][] arr = new int[n][n]; // 存放三角形 int[][] dp = new int[n][n]; // 状态转移方程dp for (int i = 0; i < n; i++) { for (int j = 0; j <= i; j++) { arr[i][j] = sc.nextInt(); } } dp[0][0] = arr[0][0]; int max = 0; for (int i = 1; i < n; i++) { for (int j = 0; j <= i; j++) { if (j == 0) { dp[i][j] = dp[i-1][j] + arr[i][j]; } else { dp[i][j] = Math.max(dp[i-1][j-1],dp[i-1][j]) + arr[i][j]; } max = Math.max(max, dp[i][j]); } } System.out.println(max); }
0.0分
0 人评分
C语言考试练习题_一元二次方程 (C语言代码)浏览:708 |
printf基础练习2 (C语言代码)浏览:801 |
假币问题 (C++代码)(向上取整的一种处理方式)浏览:1802 |
C语言程序设计教程(第三版)课后习题10.7 (C++代码)(都说了scanf和gets一般不要混着用)浏览:1148 |
点我有惊喜!你懂得!浏览:2754 |
C语言训练-最大数问题 (C语言代码).........关于-1浏览:762 |
C语言程序设计教程(第三版)课后习题7.5 (C语言代码)浏览:640 |
破解简单密码 (C语言代码)浏览:1864 |
这可能是一个假的冒泡法浏览:1071 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:790 |