陣列中最大子陣列之和2

2022-08-21 06:21:12 字數 3645 閱讀 9973

1,以指定格式的文字檔案形式輸入陣列。

2,陣列由一維變為二維。

3,熟練使用git常用命令將作業簽入**版本控制平台。

4,給出單元測試/**覆蓋率的最終覆蓋率的報告,撰寫部落格。

import

pandas 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))]

#返回最大子陣列之和 和 最大子陣列

import

unittest

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 演算法實現 建立乙個新的陣列,該陣列有乙個值為所求陣列...