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中IPYTHON入门实例
May 11 Python
python去除空格和换行符的实现方法(推荐)
Jan 04 Python
浅析python中SQLAlchemy排序的一个坑
Feb 24 Python
python实现BP神经网络回归预测模型
Aug 09 Python
解决Python使用列表副本的问题
Dec 19 Python
PyTorch 对应点相乘、矩阵相乘实例
Dec 27 Python
python mysql 字段与关键字冲突的解决方式
Mar 02 Python
Python 面向对象部分知识点小结
Mar 09 Python
keras之权重初始化方式
May 21 Python
使用Nibabel库对nii格式图像的读写操作
Jul 01 Python
Python判断字符串是否为合法标示符操作
Sep 03 Python
python 如何执行控制台命令与操作剪切板
May 20 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分页显示制作详细讲解
2006/12/05 PHP
php设计模式 Prototype (原型模式)代码
2011/06/26 PHP
解决FastCGI 进程超过了配置的活动超时时限的问题
2013/07/03 PHP
PHP小教程之实现链表
2014/06/09 PHP
php实现httpRequest的方法
2015/03/13 PHP
PHP实现通过Luhn算法校验信用卡卡号是否有效
2015/03/23 PHP
JavaScript 关键字屏蔽实现函数
2009/08/02 Javascript
Javascript 通过json自动生成Dom的代码
2010/04/01 Javascript
jquery 插件学习(六)
2012/08/06 Javascript
利用js实现在浏览器状态栏显示访问者在本页停留的时间
2013/12/29 Javascript
js的image onload事件使用遇到的问题
2014/07/15 Javascript
jQuery源码解读之removeAttr()方法分析
2015/02/20 Javascript
JS获取数组最大值、最小值及长度的方法
2015/11/24 Javascript
jquery插件uploadify实现带进度条的文件批量上传
2015/12/13 Javascript
Nodejs下用submit提交表单提示cannot post错误的解决方法
2016/11/21 NodeJs
vue组件间通信解析
2017/03/01 Javascript
vue router demo详解
2017/10/13 Javascript
jQuery中的类名选择器(.class)用法简单示例
2018/05/14 jQuery
使用VueCli3+TypeScript+Vuex一步步构建todoList的方法
2019/07/25 Javascript
JS浮点数运算结果不精确的Bug解决
2019/08/01 Javascript
Python的Flask框架中使用Flask-SQLAlchemy管理数据库的教程
2016/06/14 Python
Python3.6.0+opencv3.3.0人脸检测示例
2018/05/25 Python
基于tensorflow加载部分层的方法
2018/07/26 Python
python+numpy实现的基本矩阵操作示例
2019/07/19 Python
Python join()函数原理及使用方法
2020/11/14 Python
pycharm Tab键设置成4个空格的操作
2021/02/26 Python
html5实现canvas阴影效果示例
2014/05/07 HTML / CSS
Marmot土拨鼠官网:美国专业户外运动品牌
2018/01/11 全球购物
毕业生优秀推荐信
2013/11/26 职场文书
库房保管员岗位职责
2014/04/07 职场文书
解放思想大讨论活动心得体会
2014/09/11 职场文书
个性与发展自我评价
2015/03/06 职场文书
夫妻吵架保证书
2015/05/08 职场文书
如何起草一份正确的合伙创业协议书?
2019/07/04 职场文书
python用tkinter开发的扫雷游戏
2021/06/01 Python
SQL中的三种去重方法小结
2021/11/01 SQL Server