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

更多關于Python相關內容感興趣的讀者可查看本站專題:《Python數據結構與算法教程》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》、《Python入門與進階經典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設計有所幫助。
新聞熱點
疑難解答