您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關Python如何實現(xiàn)基于優(yōu)先等級分配糖果問題算法的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
問題:
有n個人,每個人有一定的優(yōu)先等級,等級高的人要比身邊等級低得人得到的多,每個人都不會分不到
思路:
可以采用兩頭遍歷的方法,順序遍歷保證等級高的人會比左邊的人多,倒序遍歷可以保證等級高的人比右邊的人多
下面是具體實現(xiàn):
#!usr/bin/env python #encoding:utf-8 ''''' __AUthor__:沂水寒城 功能:分糖果 ''' def split_candy(rank_list): ''''' ''' length=len(rank_list) candy_list=[1]*length for i in range(length-1): if rank_list[i]<rank_list[i+1]: candy_list[i+1]=candy_list[i]+1 for i in range(length-1,0,-1): if rank_list[i-1]>rank_list[i] and candy_list[i-1]<=candy_list[i]: candy_list[i-1]+=candy_list[i] print sum(candy_list) print '優(yōu)先級為:', rank_list print '分得的糖果為:', candy_list if __name__ == '__main__': print "億速云測試結果:" rank_list=[2,3,4,8,1,5,6] split_candy(rank_list)
結果如下:
感謝各位的閱讀!關于“Python如何實現(xiàn)基于優(yōu)先等級分配糖果問題算法”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。