1,以指定格式的文字檔案形式輸入陣列。
2,陣列由一維變為二維。
3,熟練使用git常用命令將作業簽入**版本控制平台。
4,給出單元測試/**覆蓋率的最終覆蓋率的報告,撰寫部落格。
importpandas as pd
import
numpy as np
defcount_line(filepath):
#該函式用於獲取文字檔案的行數
with open(filepath, '
r', encoding='
utf8
') as f:
count_line =0
#儲存文字檔案的行數
while
true:
#獲取文字檔案的行數
line =f.readline()
ifnot
line:
break
count_line += 1
return
count_line
defreadline(filepath, linenum):
with open(filepath, 'r
', encoding='
utf8
') as f:
count_line =count_line(filepath)
#儲存文字檔案的行數
if linenum ==count_line:
#判斷是否讀取到了檔案的最後一行
out = f.readlines()[linenum - 1]
else
: out = f.readlines()[linenum - 1][0:-1]
#讀取檔案,並讀取指定行
str_row = ''
#用於將每一行中分隔起來的每乙個有效資料儲存
num =
#用於存入有效資料
count =0
#用於記錄資料是否讀取完畢
judge = ['
,', ','
]
#判斷分隔符用
for x in
out:
count += 1
if x not
injudge:
str_row +=x
#將需要的資料提取出來(』連續的數字『 或 』負號加連續的數字『)
elif x in
judge:
str_row = ''
#將分隔符前的實數放入陣列 num 中
if count ==len(out):
str_row = ''
#將最後乙個資料也放入陣列 num 中
if''
innum:
num.remove('')
#去掉陣列中的空元素
num =list(map(int, num))
#將字串陣列轉換成整型陣列
return
numdef
doublearray(filepath):
#該函式用於將上述文字檔案中的二維陣列儲存起來
outline_1 = readline(filepath, 1)
num_douarray =
for x in
range(outline_1[0]):
return
num_douarray
defgetallnumsons(filepath, num):
data =pd.dataframe(num)
#將 num 轉換成 dataframe 資料形式
num =
#用來存放所有的連續子陣列
for x in range(readline(filepath, 2)[0]):
#x 用來指定從哪一行開始擷取原二維陣列
for y in range(readline(filepath, 1)[0] + 1):
#y 用來指定到哪一行結束擷取原二維陣列
if len(data[x:y]) !=0:
#判斷是否有空的資料
data_1 =data[x:y]
#將擷取的資料賦值給 data_1
for i in range(readline(filepath, 2)[0]):
#i 用來指定從哪一列開始擷取 data_1
for j in range(readline(filepath, 2)[0] + 1):
#j 用來指定到哪一列結束擷取 data_1
if len(list(data_1.iloc[:, i:j])) !=0:
#判斷是否有空值
data_array =np.array(data_1.iloc[:, i:j])
#將 dataframe 轉換成 array
#將這個子陣列放入 num 中
return
numdef
output(filepath):
#此函式的引數為文字檔案的路徑
num =doublearray(filepath)
num =getallnumsons(filepath, num)
numsum =
#用來存放每個子陣列的和
for x in
num:
return
max(numsum), num[numsum.index(max(numsum))]
#返回最大子陣列之和 和 最大子陣列
importunittest
from 最大子陣列之和2.lbk import
檔案中開啟:
最終結果:
其中紅色**表示未覆蓋,綠色代表已經覆蓋的**
陣列中最大子陣列之和
一 目的 熟悉程式設計風格 自學簡單 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...
陣列中最大子陣列之和
一.編寫程式 1.求陣列中最大子陣列之和 class max out object defmaxmarry lis dp lis 0 i 1 for num in lis 1 if dp i 1 0 else i 1 return max dp 演算法實現 建立乙個新的陣列,該陣列有乙個值為所求陣列...