阿里筆試題 森林之王 python 實現

2021-10-05 08:21:54 字數 1026 閱讀 9136

題目描述:

動物之王

選動物老大,n個小動物,編號1-n,編號代表武力值,值越小,武力值越高,每個小動物都有一票投票權,可以投給自己或者自己崇拜的動物,或者和自己崇拜的動物跟票。

只能崇拜武力值比自己厲害的動物。

輸入:第一行:n個動物 4

後面n行:

第幾個小動物的崇拜物件 0 1 1 1

輸出:每個小動物的最多的投票 4 1 1 1

解釋:當第乙個動物投自己 其餘動物都投自己的崇拜的1號 那一號最多可以拿四票 然後其他動物如果都投自己 那麼其餘動物最多可以拿一票

def

voute

(con)

: congbai=[0

]#因為編號從1開始,所以首位不用

congbai.extend(con)

n =len(con)

f =[1

for i in

range

(n+1)]

#初始化票數陣列 編號從1到n ,f[0] 不用

# f[1] = 1

i =2while i<=n:

# f[i]+=1

if congbai[i]==0

:#第一種情況 不崇拜其他動物

continue

else

: j = congbai[i]

##崇拜其他動物

while j!=0:

f[j]+=1

#給崇拜的動物投票

j = congbai[j]

#跟票 i+=

1return f[1:

]con=[0

,1,2

,1]#初始崇拜陣列

print

(voute(con)

)con =[0

,1,1

,1]print

(voete(con)

)

阿里筆試題

計算二叉樹每一層的和 24for int i 0 i 29list.add index 30 31int sum 0 32for int i 0 i 35 兩個端點的數,是去除裡面第乙個,或者最後倒數第二個,比較去掉最小的那個 36int max sum math.min list.get 1 li...

阿里筆試題20春招筆試題彙總 python版本

有一疊撲克牌,每張牌介於1和10之間 有四種出牌方法 單出1張 出2張對子 出五張順子,如12345 出三連對子,如112233 給10個數,表示1 10每種牌有幾張,問最少要多少次能出完 描述 給乙個數字n 1 n 1e9 代表集合中有n個人,現在每次選若干個人出來,然後把這若干個人裡面其中乙個置...

阿里筆試題目

題目描述 乙個 的訂單中包含n 10 n 1 種商品a1,a2,an,每種商品數量分別為a1,a2,an個,記做 ak 0 訂單在倉庫生產過程中,倉庫為了提公升作業效率,會提前對熱門組合商品進行預包裝。假設這n個商品有m 9 m 1 個商品組合,每個組合bomk包含a1,a2,an的數量分別為 bk...