迅雷2019校招 python紅黑積木求和

2021-08-28 03:22:32 字數 877 閱讀 4898

1.問題:

紅黑積木求和

有紅黑兩種顏色的積木,紅色代表正數a,黑色代表負數b,選出17塊積木排成一排,使得任意相鄰7塊積木之和都小於0,

如何選才能使17塊積木之和最大,最大值是多少?

2.分析:

任意相鄰的7個積木之和都小於零,假使這7個值(比如1至7)之和最大(雖然為負數),

為了使17塊積木之和最大,我們可以設定任意相鄰的7塊積木之和最大且相等,故得出以下關係:

1,8,15位置為相等的數,2,9,16為相等的數,3,10,17位置數相同,...如下表所示:

123

4567

891011

1213

1415

1617

設 在頭7個位置中,正數a的數量為i,最好從左邊(具有3個相同位置的數)開始選擇,

負數的數量為(7-i)個,最好從右邊開始選擇。

if i>0 and i<=3:

max = 3*i*a + 2*4*b+3*(7-i-4)*b

if i>3:

max = 3*3*a+2*(i-3)*a+2*(7-i)*b

#  a 為正數, b為負數

def a_num(a,b):

i = 7

for i in range(7,0,-1):

if a*i+(7-i)*b < 0: # i(0,7) 為 正數的個數,

break

max1 = 2 * (7-i) * b +(3+2*i)*a

return max1

print("a_num:",a_num(10,-61)) # a_num: 28

迅雷2014校招程式設計題

已知集合a和b的元素分別用不含頭結點的單鏈表儲存,函式difference 用於求解集合a與b的差集,並將結果儲存在集合a的單鏈表中。例如,若集合a 集合b 完成計算後a 題意簡單說就是鍊錶差集簡單操作。cpp view plain copy include using namespace std ...

華為2019校招筆試

示例2 示例 常用的邏輯運算有and 表示為 or 表示為 not 表示為 他們的邏輯是 1 1 1 1 0 0 0 1 0 0 0 0 1 1 1 1 0 1 0 1 1 0 0 0 0 1 1 0其中,他們的優先關係為 not and or 例如 a b c 實際是 a b c a b c d ...

迅雷 2018校招AI演算法筆試題

1.思路 先對兩個陣列進行排序 降序 然後求出兩個陣列中各取出乙個數字的所有和 之前有總結過,list定義時用迴圈巢狀,相當於排列組合 再排序,輸出給定的前n個,輸出時要注意轉為字串。def find max a,b,num a.sort reverse true b.sort reverse tr...