1231.問題:
紅黑積木求和
有紅黑兩種顏色的積木,紅色代表正數a,黑色代表負數b,選出17塊積木排成一排,使得任意相鄰7塊積木之和都小於0,
如何選才能使17塊積木之和最大,最大值是多少?
2.分析:
任意相鄰的7個積木之和都小於零,假使這7個值(比如1至7)之和最大(雖然為負數),
為了使17塊積木之和最大,我們可以設定任意相鄰的7塊積木之和最大且相等,故得出以下關係:
1,8,15位置為相等的數,2,9,16為相等的數,3,10,17位置數相同,...如下表所示:
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...