筆試程式設計題彙總 6

2021-08-28 07:30:59 字數 1684 閱讀 3077

"""

給乙個長度為n的整數陣列,將這個陣列分成m段,每一段的和為這一段的權重,所有段的權重的最大值為這次分割的權重,求所有分割中最小的權重

輸入描述:

第一行是兩個整數,表示n, m (m<=n)

第二行數n個空格分割的整數

輸出: 輸出所有分割中最小的權重

樣例: input:

5 31 4 2 3 5

output:

5"""import sys

deffind_min

(data)

: min_data, min_idx = data[0]

,0for idx, data_temp in

enumerate

(data)

:if data_tempmin_data = data_temp

min_idx = idx

return min_data, min_idx

defmerge_once

(data, sum_data)

: min_data, min_idx = find_min(sum_data)

data = data[

:min_idx]

+[min_data]

+data[min_idx+2:

] sum_data[min_idx-1]

= data[min_idx-1]

+data[min_idx]

ifnot min_idx==

len(sum_data)-1

: sum_data[min_idx+1]

= data[min_idx]

+data[min_idx+1]

sum_data = sum_data[

:min_idx]

+sum_data[min_idx+1:

]return data, sum_data

defget_weight

(data, m)

:if m<2:

return

sum(data)

sum_data =

[data[idx]

+data[idx+1]

for idx in

range

(len

(data)-1

)]while

len(data)

>m:

data, sum_data = merge_once(data, sum_data)

return

max(data)

if __name__==

"__main__"

: line1 = sys.stdin.readline(

).strip(

) line2 = sys.stdin.readline(

).strip(

) n,m = line1.split(

" ")

n,m =

int(n)

,int

(m) data =

list

(map

(int

, line2.split())

)print

(get_weight(data, m)

)

筆試程式設計題彙總 2

描述 給乙個整數陣列num,和乙個鎮整數k,能否把陣列num切成k個子集,且各個子集的和相等,返回布林型別 輸入輸出 輸入 乙個整數陣列num和乙個正整數k 輸出 返回true或者false,bool型別 樣例 輸入 4,3,2,3,5,2,1 4 輸出 true 解釋 可以分解為4個子集,他們的和...

筆試程式設計題彙總 9

0代表黑棋,1代表白棋,找出被白棋包圍的黑棋並吃掉,返回吃掉之後的結果 import sys from copy import deepcopy 4 1101 1011 1001 1111 6101001 110100 111011 010101 111111 010100 41111 0101 1...

筆試 程式設計題

1.class a class b public a int main 2.int main 3.int func int a int main little endian int main char p char a 2 printf 0x x,0x x,0x x p 1 p,short p re...