軟體工程(2019)第三次作業

2021-09-25 18:28:39 字數 1050 閱讀 5980

給定n個整數(可能為負數)組成的序列a[1],a[2],a[3],…,a[n],求該序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。當所給的整數均為負數時定義子段和為0,依此定義,所求的最優值為: max,1<=i<=j<=n

例如,當(a[1],a[2],a[3],a[4],a[5],a[6])=(-2,11,-4,13,-5,-2)時,最大子段和為20。

這是一道動態規劃的題目,解決動態規劃問題可以採用分治法和遞推方法。

test_case(放置一些測試用例)

runtest.py(通過測試套件testsuite來組裝多個測試用例)

sumofmaximumsubsection.py(測試**)

array[i]不合法

array[i]合法,temp[i-1]>0,temp[i]>sum

array[i]合法,temp[i-1]>0,temp[i]array[i]合法, temp[i-1]<0,temp[i]>sum

array[i]合法, temp[i-1]<0,temp[i]

ctrl+shift+f10,執行runtest.py

執行結果如圖所示:

結果表明,樣例通過。

我們再來看看日誌檔案中的內容:

軟體工程(2019)第三次作業

這道題是乙個動態規劃問題,可以使用分治法和遞推法解決。我使用的是遞推法。coding位址 def deal arrlist list int param arrlist 傳入數列,引數型別為列表 return 最大子陣列之和 flag true if len arrlist 0 return 0 f...

軟體工程(2019)第三次作業

1 首先定義子陣列和以及最大子陣列和為零 陣列下標i 0 2 i是否大於陣列長度?否 進行 3 是 返回最大子陣列和,結束!3 取第i個陣列值,子陣列和 子陣列和 第一i個陣列值。進行 4 4 比較子陣列和與最大陣列和大小,如果子陣列和大,最大陣列和值取為子陣列和值 如果子陣列和小,子陣列和重新歸零...

軟體工程實踐2019第三次作業

github psp2.1 personal software process stages 預估耗時 分鐘 實際耗時 小時 planning 計畫1h 0.5h estimate 估計這個任務需要多少時間 22h21h development 開發5h 3hanalysis 需求分析 包括學習新技...