第三章實踐作業
實踐題目
數字三角形
問題描述
給定一個由 n行數字組成的數字三角形如下圖所示。試設計一個演算法,計算出從三角形 的頂至底的一條路徑(每一步可沿左斜線向下或右斜線向下),使該路徑經過的數字總和最大。
演算法描述
for(i=n-1;i>=1;i--)
for(j=1;j<=i;j++)
{
if(a[i+1][j+1]>a[i+1][j])a[i][j]=d[i][j]+a[i+1][j+1];
else
a[i][j]=d[i][j]+a[i+1][j];
}
演算法時間及空間複雜度分析
大體思路就是每次第一次計算出MaxSum(i,j)的值時,把該值儲存起來,以後再遇到MaxSum(i.j)時直接取出之前第一次呼叫時已經存放的值即可,不必再次呼叫MaxSum函式作遞迴計算。這樣每個MaxSum(i,j)都只需要計算一次,計算次數為數字三角形中的數字總數。因此,不需要寫遞迴函式,從第N-1行開始向上逐行遞推,就可以求得a[1][1]的值。
心得體會
這一章學的是動態規劃,雖然這題是基礎中的基礎,但是還是學到了很多東西。
相關推薦
第三章實踐作業
實踐題目 數字三角形 問題描述 給定一個由 n行數字組成的數字三角形如下圖所示。試設計一個演算法,計算出從三角形 的頂至底的一條路徑(每一步可沿左斜線向下或右斜線向下),使該路徑經過的數字總和最大。 演算法描述 for(i=n-1;i>=1;i--)
演算法第三章實踐
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]的子段和最大值。當所給的整數均為負數
第三章實踐心得
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)插入一個字符
CSAPP深入理解計算機系統(第二版)第三章家庭作業答案
《深入理解計算機系統(第二版)》CSAPP 第三章 家庭作業 這一章介紹了AT&T的彙編指令 比較重要 本人完成了《深入理解計算機系統(第二版)》(以下簡稱CSAPP)第三章的家庭作業,並與網上的一些答案進行了對比修正。 感謝博主summerhust的整理,以下貼出AT&T常用匯編指令
資料庫原理第三章習題作業
學號:2013211492 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
matlab第三章上機作業
第三次上機作業 已知Hilbert矩陣H的元素為: hij=1/(i+j-1), 完成如下實驗: 程式設計計算H的行範數函式; 編寫計算H的行範數條件數函式(可以呼叫求逆函式,Mathematica為Inverse[H],Matlab為inv(H), 其它語言自己去查詢
《深入理解計算機系統第三版》第三章家庭作業參考答案
簡述 最近看docker和k8s的底層實現原理,嚴重感覺自己對底層的知識瞭解不足,於是開始業餘時間深入看一些底層書籍,就找了本據說是理解整個計算機體系的入門書-《深入理解計算機系統》.直接買的最新的第三版,從第三章開始看的,第二章接下來有心情再看(看了幾眼全是
深入理解計算機系統 第三版 第三章 家庭作業 答案
3.58long decode2(long x,long y,long z) { int ret; y=y-z; x=x*y; ret=y; ret<<=63; ret>>=63; return ret^x; }算術左移63再右移6