2020蓝桥杯省赛---java---B---8(数字三角形)
生活随笔
收集整理的這篇文章主要介紹了
2020蓝桥杯省赛---java---B---8(数字三角形)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述
時間限制: 1.0s 內存限制: 512.0MB 本題總分:20 分【問題描述】上圖給出了一個數字三角形。從三角形的頂部到底部有很多條不同的路徑。 對于每條路徑,把路徑上面的數加起來可以得到一個和,你的任務就是找到最 大的和。路徑上的每一步只能從一個數走到下一層和它最近的左邊的那個數或者右 邊的那個數。此外,向左下走的次數與向右下走的次數相差不能超過 1?!据斎敫袷健?輸入的第一行包含一個整數 N (1 < N ≤ 100),表示三角形的行數。下面的 N 行給出數字三角形。數字三角形上的數都是 0 至 100 之間的整數?!据敵龈袷健?輸出一個整數,表示答案?!緲永斎搿?5 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5【樣例輸出】 27思路分析
動態規劃+貪心
代碼實現
package TEST;import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int[][] r = new int[n+1][n+1];for(int i=1; i<=n; ++i) {for (int j = 1; j <= i; ++j) {r[i][j] = sc.nextInt();r[i][j] += Math.max(r[i - 1][j - 1], r[i - 1][j]);}}System.out.println(n%2==1?r[n][n/2+1]:Math.max(r[n][n/2], r[n][n/2+1])); //分奇數和偶數}}總結
以上是生活随笔為你收集整理的2020蓝桥杯省赛---java---B---8(数字三角形)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Cloudways vs InMotio
- 下一篇: 知道微信号就是加不上去搜索不出来是怎么回