Python实现的基于优先等级分配糖果问题算法示例


Posted in Python onApril 25, 2018

本文实例讲述了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实现的基于优先等级分配糖果问题算法示例

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python实现的石头剪子布代码分享
Aug 22 Python
json跨域调用python的方法详解
Jan 11 Python
python文件名和文件路径操作实例
Sep 29 Python
Python进程间通信之共享内存详解
Oct 30 Python
python用户管理系统
Mar 13 Python
python实现两个字典合并,两个list合并
Dec 02 Python
Pycharm+Python工程,引用子模块的实现
Mar 09 Python
Python Django搭建网站流程图解
Jun 13 Python
Python 整行读取文本方法并去掉readlines换行\n操作
Sep 03 Python
使用Python+Appuim 清理微信的方法
Jan 26 Python
python中scipy.stats产生随机数实例讲解
Feb 19 Python
pyqt5打包成exe可执行文件的方法
May 14 Python
python自动登录12306并自动点击验证码完成登录的实现源代码
Apr 25 #Python
PyQt5实现拖放功能
Apr 25 #Python
wx.CheckBox创建复选框控件并响应鼠标点击事件
Apr 25 #Python
wxPython实现窗口用图片做背景
Apr 25 #Python
django 发送手机验证码的示例代码
Apr 25 #Python
python3+PyQt5实现自定义分数滑块部件
Apr 24 #Python
详解tensorflow载入数据的三种方式
Apr 24 #Python
You might like
PHP获取MSN好友列表类的实现代码
2013/06/23 PHP
初识PHP
2014/09/28 PHP
php上传功能集后缀名判断和随机命名(强力推荐)
2015/09/10 PHP
PHP登录验证码的实现与使用方法
2016/07/07 PHP
php让json_encode不自动转义斜杠“/”的方法
2020/04/27 PHP
JavaScript获取GridView选择的行内容
2009/04/14 Javascript
jQuery 页面 Mask实现代码
2010/01/09 Javascript
JavaScript 原型学习总结
2010/10/29 Javascript
JS在IE下缺少标识符的错误
2014/07/23 Javascript
JS获取表格内指定单元格html内容的方法
2015/03/31 Javascript
使用AngularJS创建单页应用的编程指引
2015/06/19 Javascript
jQuery网页选项卡插件rTabs用法实例分析
2015/08/26 Javascript
jQuery EasyUI提交表单验证
2016/07/19 Javascript
jQuery Validation Engine验证控件调用外部函数验证的方法
2017/01/18 Javascript
JS 调试中常见的报错问题解决方法
2017/05/20 Javascript
js学使用setTimeout实现轮循动画
2017/07/17 Javascript
jQuery图片缩放插件smartZoom使用实例详解
2017/08/25 jQuery
vue实现word,pdf文件的导出功能
2018/07/31 Javascript
一个Vue视频媒体多段裁剪组件的实现示例
2018/08/09 Javascript
React降级配置及Ant Design配置详解
2018/12/27 Javascript
vue 实现小程序或商品秒杀倒计时
2019/04/14 Javascript
微信小程序websocket实现即时聊天功能
2019/05/21 Javascript
[01:24:34]2014 DOTA2华西杯精英邀请赛5 24 DK VS LGD
2014/05/25 DOTA
python 调用win32pai 操作cmd的方法
2017/05/28 Python
Python在信息学竞赛中的运用及Python的基本用法(详解)
2017/08/15 Python
python命令行解析之parse_known_args()函数和parse_args()使用区别介绍
2018/01/24 Python
Python实现的对本地host127.0.0.1主机进行扫描端口功能示例
2019/02/15 Python
基于 Python 实践感知器分类算法
2021/01/07 Python
Python xlwings插入Excel图片的实现方法
2021/02/26 Python
加拿大百叶窗和窗帘定制网站:Blinds
2017/01/30 全球购物
瑞士设计师家具和家居饰品网上商店:Bruno Wickart
2019/03/18 全球购物
若通过ObjectOutputStream向一个文件中多次以追加方式写入object,为什么用ObjectInputStream读取这些object时会产生StreamCorruptedException?
2016/10/17 面试题
大学生毕业自我鉴定范文
2014/02/03 职场文书
社区国庆节活动总结
2015/03/23 职场文书
2019班干部竞选演讲稿范本!
2019/07/08 职场文书
浅谈Python中的函数(def)及参数传递操作
2021/05/25 Python