題目要求:陣列中最大的子陣列之和(如下圖),然後進行單元測試和效能分析。
**如下:
classsummaxnum():
deffunction(serf,lists):
max_sum =lists[0]
pre_sum =0
for i in
lists:
if pre_sum <0:
pre_sum =i
else
: pre_sum +=i
if pre_sum >max_sum:
max_sum =pre_sum
return max_sum
importunittest
class
mytestcase(unittest.testcase):
deftest_something(self):
return
self.assertequal(true, false)
deftest1(self):
ts =summaxnum()
return self.assertequal(ts.function([-2 ,6, -1, 5, 4, -7, 2, 3]),14)
deftest2(self):
ts =summaxnum()
return self.assertequal(ts.function([1, 4, -5, 9, 8, 3, -6]),20)
deftest3(self):
ts =summaxnum()
return self.assertequal(ts.function([-1 ,20 ,-5, 30 ,-4]),45)
deftest4(self):
ts =summaxnum()
return self.assertequal(ts.function([-2 ,-3,-5 ,1 ,-9]),1)
def test5(self):#
這組故意設定錯誤的值
根據測試結果可以看出公測試了5組資料,其中第5組發生了錯誤。
注意:後面由於我的pycharm ide出問題了,換用了spyder編譯環境,對結果沒有影響。
**
class結果:summaxnum():
deffunction(serf,lists):
max_sum =lists[0]
pre_sum =0
for i in
lists:
if pre_sum <0:
pre_sum =i
else
: pre_sum +=i
if pre_sum >max_sum:
max_sum =pre_sum
return
max_sum
if__name__ == '
__main__':
import
cprofile
cprofile.run(
"summaxnum().function([-2 ,-3,-5 ,1 ,-9])
")
**:
import結果截圖cprofile
cprofile.run(
"suite.addtest(mytestcase('test1'))")
cprofile.run(
"suite.addtest(mytestcase('test2'))")
cprofile.run(
"suite.addtest(mytestcase('test3'))")
cprofile.run(
"suite.addtest(mytestcase('test4'))")
cprofile.run(
"suite.addtest(mytestcase('test5'))
")
陣列中最大的子陣列之和
乙個有n個整數元素的一維陣列 a 0 a 1 a n 1 求子陣列之和的最大值。例子 1,2,3,5,3,2 返回 8 0,2,3,5,1,2 返回 9 9,2,3,5,3 返回 2 需要注意的是,如果考慮到陣列首尾相連,則 1 先按不相連計算出最大值max 2 從尾往頭掃瞄,找出最大值m1,並記錄...
陣列中最大子陣列之和
一 目的 熟悉程式設計風格 自學簡單 python 簡單效能測試 二 程式設計 1 測試工具及注意事項 使用visual studio 2017進行編譯,求陣列中最大陣列之和。注意 1.題目說的是子陣列是連續的 2.題目只要求和,不需要返回陣列的具體位置 3.陣列的元素是整數 2 單元測試配置過程 ...
陣列中最大子陣列之和
採用暴力破解法 三重for迴圈找出所有子陣列進行對比 def maxsubarray array maxsum 0 for i in range 0,len array for j in range i,len array sum 0 for k in range i,j 1 sum sum arr...