第三章實踐
1.實踐題目
數字三角形
2.問題描述
給定一個由 n行數字組成的數字三角形如下圖所示。試設計一個演算法,計算出從三角形 的頂至底的一條路徑(每一步可沿左斜線向下或右斜線向下),使該路徑經過的數字總和最大。
3.演算法描述
遞迴式為:b[i][j]=max(b[i+1][j]+a[i][j],b[i+1][j+1]+a[i][j])
從下往上加,比較相鄰兩個數大小,加上大的那個數,填入記錄的陣列中,不斷以此類推。
4.演算法時間及空間複雜度分析(要有分析過程)
時間複雜度:主體為兩個for迴圈,所以時間複雜度為O(n^2)
空間複雜度:n^2
5.心得體會(對本次實踐收穫及疑惑進行總結)
一開始沒有運用到動態規劃的思想,用了大量的判斷和迴圈。後來經老師提醒,改變了思路,把遞迴式推了出來,問題就迎刃而解了。所以以後再遇到這種最優解的情況,應首先考慮動態規劃演算法。
相關推薦
演算法第三章實踐
1、 實踐題目:最大子段和 2、 問題描述:給定n個整數(可能為負數)組成的序列a[1]a[2]……a[n],求該序列如a[i]+a[i+1]……a[j]的子段和最
算法第三章實踐
時間復雜度 規劃 比較 兩種 存儲 思考 代碼 功能 兩個 1、 實踐題目:最大子段和 2、 問題描述:給定n個整數(可能為負數)組成的序列a[1]a[2]……a[n],求該序列如a[i]+a[i+1]……a[j]的子段和最大值。當所給的整數均為負數
第三章實踐作業
實踐題目 數字三角形 問題描述 給定一個由 n行數字組成的數字三角形如下圖所示。試設計一個演算法,計算出從三角形 的頂至底的一條路徑(每一步可沿左斜線向下或右斜線向下),使該路徑經過的數字總和最大。 演算法描述 for(i=n-1;i>=1;i--)
第三章實踐心得
1、問題描述: 給定一個由 n行數字組成的數字三角形如下圖所示。試設計一個演算法,計算出從三角形 的頂至底的一條路徑(每一步可沿左斜線向下或右斜線向下),使該路徑經過的數字總和最大。 2、演算法描述: for(i=1;i<=n;i++){ for
演算法 第三章實踐報告
1.實踐題目 數字三角形 2.問題描述 給定一個由 n行數字組成的數字三角形如下圖所示。試設計一個演算法,計算出從三角形 的頂至底的一條路徑(每一步可沿左斜線向下或右斜線向下),使該路徑經過的數字總和最大。 3.演算法描述 for(j=1;j<=n;j++) a[n][
第三章實踐
1.實踐題目數字三角形 2.問題描述給定一個由 n行數字組成的數字三角形如下圖所示。試設計一個演算法,計算出從三角形 的頂至底的一條路徑(每一步可沿左斜線向下或右斜線向下),使該路徑經過的數字總和最大。 3.演算法描述遞迴式為:b[i][j]=max(b[i+1][j]+a[i][j],b[i+1][j+
演算法第三章實踐報告
7-1數字三角形 1.實踐題目 給定一個由 n行數字組成的數字三角形如下圖所示。試設計一個演算法,計算出從三角形 的頂至底的一條路徑(每一步可沿左斜線向下或右斜線向下),使該路徑經過的數字總和最大。 2.問題描述 輸入格式: 輸入有n+1行: 第 1 行是數字三角形的行數 n,
《Python程式設計快速上手+讓繁瑣工作自動化》第三章實踐專案
1 Collatz 序列 編寫一個名為 collatz()的函式,它有一個名為 number 的引數。如果引數是偶數,那麼 collatz()就打印出 number // 2,並返回該值。如果 number 是奇數,collatz()就列印並返回 3 * number + 1。 然後編寫一個程式,讓使用者
《Python編程快速上手+讓繁瑣工作自動化》第三章實踐項目
val bre ror try 函數 什麽 實踐項目 字符串 驚奇 1 Collatz 序列 編寫一個名為 collatz()的函數,它有一個名為 number 的參數。如果參數是偶數,那麽 collatz()就打印出 number // 2,並返回該值。如果 numbe
【實踐報告】演算法第三章實踐報告
1.實踐題目 7-2最大子段和 給定n個整數(可能為負數)組成的序列a[1],a[2],a[3],…,a[n],求該序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。當所給的整數均為負數時,定義子段和為0。 要求演算法的時間複雜度為O(n)。
【實踐報告】算法第三章實踐報告
sin code 收獲 一行 ret 個數 第三章 動態規劃 一個 1.實踐題目 7-2最大子段和 給定n個整數(可能為負數)組成的序列a[1],a[2],a[3],…,a[n],求該序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。當所給的整數均為負數
第三章實踐報告
1、實踐題目。 數字三角形 2、問題描述。 給定一個由 n行數字組成的數字三角形如下圖所示。試設計一個演算法,計算出從三角形 的 頂至底的一條路徑(每一步可沿左斜線向下或右斜線向下),使該路徑經過的數字總和最大。 3、演算法描述 for(i=n-1;i>=1;i--){ &n
算法第三章實踐報告
修改 報告 strlen 字符串 復雜度 操作數 數組下標 後來 刪除 算法第三章 實踐報告 1.實踐題目 7-3 編輯距離問題 (30 分) 設A和B是2個字符串。要用最少的字符操作將字符串A轉換為字符串B。這裏所說的字符操作包括 (1)刪除一個字符; (2)插入一個字符
Python程式設計快速上手——讓繁瑣工作自動化第三章實踐題
##3.11.1 def collatz(number): if number % 2 == 0: print(number // 2) return(number // 2) else: print(number *
Python程式設計快速上手——讓繁瑣工作自動化,第三章實踐題答案。
Python程式設計快速上手——讓繁瑣工作自動化,第三章實踐題答案(新手寫的,望大家修改指正。) 3.11.1 Collatz 序列 def collatz(number): if number % 2 == 0: even = number // 2
Java 並發編程實踐基礎 讀書筆記: 第三章 使用 JDK 並發包構建程序
mod 獲取鎖 -o key 讀取 拋出異常 編程實踐 arraylist ask 一,JDK並發包實際上就是指java.util.concurrent包裏面的那些類和接口等 主要分為以下幾類: 1,原子量;2,並發集合;3,同步器;4,可重入鎖;5,線程池 二,原子量
演算法第三章上機實踐
1.實踐題目 最大子段和 2.問題描述 給定n個整數(可能為負數)組成的序列a[1],a[2],a[3],…,a[n],求該序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。當所給的整數均為負數時,定義子段和為0。 要求演算法的時間複雜度為O(n)。 輸入格式: 輸入有兩行:
【實踐】演算法第三章上機實踐報告
1. 實踐題目 7-3 編輯距離問題 2. 問題描述 設A和B是2個字串。要用最少的字元操作將字串A轉換為字串B。這裡所說的字元操作包括 (1)刪除一個字元; (2)插入一個字元; (3)將一個字元改為另一個字元。 將字串A變換為字串B所用的最少字元運算元稱為字串A到 B的編輯距離,記為
演算法第三章上機實踐報告
實踐題目 7-1 數字三角形 (30 分) 給定一個由 n行數字組成的數字三角形如下圖所示。試設計一個演算法,計算出從三角形 的頂至底的一條路徑(每一步可沿左斜線向下或右斜線向下),使該路徑經過的數字總和最大。 輸入
算法第三章上機實踐報告
隊友 ace i++ pac 要求 全部 表示 報告 實踐 1、實踐題目: 最大子段和 2,問題描述: 給定n個整數(可能為負數)組成的序列a[1],a[2],a[3],…,a[n],求該序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。當所給的整數均為負數時,