您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關Python如何實現基于優先等級分配糖果問題算法的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
問題:
有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 '優先級為:', rank_list print '分得的糖果為:', candy_list if __name__ == '__main__': print "億速云測試結果:" rank_list=[2,3,4,8,1,5,6] split_candy(rank_list)
結果如下:
感謝各位的閱讀!關于“Python如何實現基于優先等級分配糖果問題算法”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。