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切换hosts文件代码示例
Dec 31 Python
举例介绍Python中的25个隐藏特性
Mar 30 Python
Python输出\u编码将其转换成中文的实例
Dec 15 Python
python实现对输入的密文加密
Mar 20 Python
python3实现表白神器
Apr 09 Python
python 协程中的迭代器,生成器原理及应用实例详解
Oct 28 Python
布隆过滤器的概述及Python实现方法
Dec 08 Python
Python3.7.0 Shell添加清屏快捷键的实现示例
Mar 23 Python
通过实例简单了解Python sys.argv[]使用方法
Aug 04 Python
python 两种方法修改文件的创建时间、修改时间、访问时间
Sep 26 Python
python爬虫之利用selenium模块自动登录CSDN
Apr 22 Python
解决Python保存文件名太长OSError: [Errno 36] File name too long
May 11 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
某大型网络公司应聘时的笔试题目附答案
2008/03/27 PHP
PHP用strstr()函数阻止垃圾评论(通过判断a标记)
2013/09/28 PHP
彻底搞懂PHP 变量结构体
2017/10/11 PHP
斜45度寻路实现函数
2009/08/20 Javascript
javascript中直接写php代码的方法
2013/07/31 Javascript
JS通过分析userAgent属性来判断浏览器的类型及版本
2014/03/28 Javascript
Jquery选择器中使用变量实现动态选择例子
2014/07/25 Javascript
js中document.write的那点事
2014/12/12 Javascript
js实现上传图片及时预览
2016/05/07 Javascript
详解vue-router2.0动态路由获取参数
2017/06/14 Javascript
解决vue接口数据赋值给data没有反应的问题
2018/08/27 Javascript
详解关于JSON.parse()和JSON.stringify()的性能小测试
2019/03/14 Javascript
vue实现可视化可拖放的自定义表单的示例代码
2019/03/20 Javascript
webpack4实现不同的导出类型
2019/04/09 Javascript
python使用urllib2模块获取gravatar头像实例
2013/12/18 Python
windows系统中python使用rar命令压缩多个文件夹示例
2014/05/06 Python
Python常用小技巧总结
2015/06/01 Python
Python的Tornado框架实现图片上传及图片大小修改功能
2016/06/30 Python
django 开发忘记密码通过邮箱找回功能示例
2018/04/17 Python
Python如何应用cx_Oracle获取oracle中的clob字段问题
2019/08/27 Python
python实现输出一个序列的所有子序列示例
2019/11/18 Python
Python使用xpath实现图片爬取
2020/09/16 Python
Python爬虫定时计划任务的几种常见方法(推荐)
2021/01/15 Python
Python使用cn2an实现中文数字与阿拉伯数字的相互转换
2021/03/02 Python
优秀学生评语大全
2014/04/25 职场文书
高中生期中考试失利检讨书
2014/10/23 职场文书
2014年政务公开工作总结
2014/12/09 职场文书
2014年优秀班主任工作总结
2014/12/16 职场文书
企业工会工作总结2015
2015/05/13 职场文书
教师继续教育反思周记
2015/06/25 职场文书
小学生大队委竞选稿
2015/11/20 职场文书
Python中for后接else的语法使用
2021/05/18 Python
如何用python清洗文件中的数据
2021/06/18 Python
Python 可迭代对象 iterable的具体使用
2021/08/07 Python
笔记本自带的win11如何跳过联网激活?
2022/04/20 数码科技
vue 把二维或多维数组转一维数组
2022/04/24 Vue.js