Python實(shí)現(xiàn)的基于優(yōu)先等級分配糖果問題算法示例
本文實(shí)例講述了Python實(shí)現(xiàn)的基于優(yōu)先等級分配糖果問題算法。分享給大家供大家參考,具體如下:
問題:
有n個人,每個人有一定的優(yōu)先等級,等級高的人要比身邊等級低得人得到的多,每個人都不會分不到
思路:
可以采用兩頭遍歷的方法,順序遍歷保證等級高的人會比左邊的人多,倒序遍歷可以保證等級高的人比右邊的人多
下面是具體實(shí)現(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 "腳本之家測試結(jié)果:"
rank_list=[2,3,4,8,1,5,6]
split_candy(rank_list)
結(jié)果如下:

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設(shè)計(jì)有所幫助。
- Python版微信紅包分配算法
- Python數(shù)據(jù)結(jié)構(gòu)與算法之常見的分配排序法示例【桶排序與基數(shù)排序】
- Python數(shù)據(jù)結(jié)構(gòu)與算法之圖的廣度優(yōu)先與深度優(yōu)先搜索算法示例
- Python深度優(yōu)先算法生成迷宮
- Python cookbook(數(shù)據(jù)結(jié)構(gòu)與算法)實(shí)現(xiàn)優(yōu)先級隊(duì)列的方法示例
- Python基于貪心算法解決背包問題示例
- 淺談Python實(shí)現(xiàn)貪心算法與活動安排問題
- Python基于遞歸算法實(shí)現(xiàn)的走迷宮問題
- Python多線程經(jīng)典問題之乘客做公交車算法實(shí)例
- Python基于動態(tài)規(guī)劃算法解決01背包問題實(shí)例
- Python使用遺傳算法解決最大流問題
相關(guān)文章
python保留若干位小數(shù)?format與round的使用區(qū)別
這篇文章主要介紹了python保留若干位小數(shù)?format與round的使用區(qū)別,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08
使用Python內(nèi)置的模塊與函數(shù)進(jìn)行不同進(jìn)制的數(shù)的轉(zhuǎn)換
這篇文章主要介紹了使用Python內(nèi)置的模塊與函數(shù)進(jìn)行不同進(jìn)制的數(shù)的轉(zhuǎn)換的方法,Python也使得讀取純二進(jìn)制文件內(nèi)容非常方便,需要的朋友可以參考下2016-03-03
使用python實(shí)現(xiàn)下載我們想聽的歌曲,速度超快
這篇文章主要介紹了使用python實(shí)現(xiàn)下載我們想聽的歌曲,速度超快,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07
基于Python的Post請求數(shù)據(jù)爬取的方法詳解
這篇文章主要介紹了基于Python的Post請求數(shù)據(jù)爬取的方法,需要的朋友可以參考下2019-06-06

