本文實例講述了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_listif __name__ == '__main__': print "VEVB武林網測試結果:" rank_list=[2,3,4,8,1,5,6] split_candy(rank_list)
結果如下:

希望本文所述對大家Python程序設計有所幫助。
新聞熱點
疑難解答