7-1 數字三角形 (30 分)
給定乙個由 n行數字組成的數字三角形如下圖所示。試設計乙個演算法,計算出從三角形 的頂至底的一條路徑(每一步可沿左斜線向下或右斜線向下),使該路徑經過的數字總和最大。
1.路徑經過的數字總和最大
2.每一步可沿左斜線向下或右斜線向下
1)由題目可知從上到下,只能往左或者往右進行相加,那麼就可以模擬二叉樹的想法進行從上到下的相加
2)假設要減少時間複雜度,那麼可以使用填表法(之動態規劃法)
3)在此處可以設立乙個二維陣列來填表
1.所有的數字的總和為n(n+1)*0.5
2.從頂端到底部,只需要一次,時間複雜度為o(n^2)
二維陣列->o(n^2)
1.成功運用了填表法,實際進行了操作
2.理解動態規劃為什麼要用填表法->節省時間
3.動態規劃需要把每一條路都算出來t(n) ≥ 1 + 2 t(n-k) = 1 + 2∑t(k)(...)
4.知道如何寫遞迴方程式
演算法第三章上機實踐報告
一 實踐題目 7 2 最大子段和 給定n個整數 可能為負數 組成的序列a 1 a 2 a 3 a n 求該序列如a i a i 1 a j 的子段和的最大值。當所給的整數均為負數時,定義子段和為0。要求演算法的時間複雜度為o n 輸入格式 輸入有兩行 第一行是n值 1 n 10000 第二行是n個整...
演算法第三章上機實踐報告
引論 這是第二次在演算法課上的上機實踐了,雖然逐漸有了思考演算法的感覺,但這一次上機實踐還是並不輕鬆。關鍵在於在實驗課前對第三章的知識掌握得還不足夠,經常會因為明明知道理論上如何解題而苦於無法將其實現。不過,通過本次上機實踐,我的收穫是非常豐富的,下面用實踐課題目中的第一題 數字三角形 開始分享我的...
演算法第三章上機實踐報告
1.實踐題目 給定n個整數 可能為負數 組成的序列a 1 a 2 a 3 a n 求該序列如a i a i 1 a j 的子段和的最大值。當所給的整數均為負數時,定義子段和為0。要求演算法的時間複雜度為o n 2.問題描述 題目要求時間複雜度為o n 所以只能用乙個for迴圈解決問題,要用到動態規劃...