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

2022-03-11 21:18:16 字數 1230 閱讀 9533

這道題是乙個動態規劃問題,可以使用分治法和遞推法解決。我使用的是遞推法。

coding位址

def deal(arrlist:list)->int:

""":param arrlist: 傳入數列,引數型別為列表

:return:最大子陣列之和

"""flag = true

if len(arrlist)==0:

return 0

for d in arrlist:

if d>0:

flag = false

if flag:

return 0

max = 0;dp = 0

for d in arrlist:

if dp>0:

dp = dp + d

else:

dp = d

if dp>max:

max = dp

return max

import unittest

from project1.main import deal

class mytestcase(unittest.testcase):

def test(self):

self.assertequal(deal([1,2,-1,4]), 6)

self.assertequal(deal([-2,11,-4,13,-20,-2]), 20)

self.assertequal(deal([-1,-2,-3,-4]), 0)

if __name__ == '__main__':

unittest.main()

我的測試實現了條件/組合覆蓋

測試序號

測試用例

預期結果

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

給定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 時...

軟體工程(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 需求分析 包括學習新技...