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抓取网页内容示例分享
Feb 24 Python
Python赋值语句后逗号的作用分析
Jun 08 Python
Python实现SSH远程登陆,并执行命令的方法(分享)
May 08 Python
Python实现求笛卡尔乘积的方法
Sep 16 Python
基于Python和Scikit-Learn的机器学习探索
Oct 16 Python
python实现二叉查找树实例代码
Feb 08 Python
浅谈tensorflow中几个随机函数的用法
Jul 27 Python
pygame实现雷电游戏雏形开发
Nov 20 Python
python3实现逐字输出的方法
Jan 23 Python
Python学习笔记之函数的参数和返回值的使用
Nov 20 Python
解决python Jupyter不能导入外部包问题
Apr 15 Python
Python 代码调试技巧示例代码
Aug 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
Zend studio for eclipse中使php可以调用mysql相关函数的设置方法
2008/10/13 PHP
php 计划任务 检测用户连接状态
2012/03/29 PHP
基于php冒泡排序算法的深入理解
2013/06/09 PHP
PHP+MySQL实现的简单投票系统实例
2016/02/24 PHP
php微信支付接口开发程序
2016/08/02 PHP
centos下file_put_contents()无法写入文件的原因及解决方法
2017/04/01 PHP
javascript 动态加载 css 方法总结
2009/07/11 Javascript
13 个JavaScript 性能提升技巧分享
2012/07/26 Javascript
cument.execCommand()用法深入理解
2012/12/04 Javascript
如何让浏览器支持jquery ajax load 前进、后退功能
2014/06/12 Javascript
jQuery中mouseover事件用法实例
2014/12/26 Javascript
BOOTSTRAP时间控件显示在模态框下面的bug修复
2015/02/05 Javascript
JavaScript Split()方法
2015/12/18 Javascript
jQuery基本选择器(实例及表单域value的获取方法)
2016/05/20 Javascript
javascript滚轮控制模拟滚动条
2016/10/19 Javascript
Node.js连接mongodb实例代码
2017/06/06 Javascript
canvas绘制爱心的几种方法总结(推荐)
2017/10/31 Javascript
React组件重构之嵌套+继承及高阶组件详解
2018/07/19 Javascript
关于React动态加载路由处理的相关问题
2019/01/07 Javascript
webpack file-loader和url-loader的区别
2019/01/15 Javascript
小程序转发探索示例
2019/02/19 Javascript
新手快速入门JavaScript装饰者模式与AOP
2019/06/24 Javascript
vue限制输入框只能输入8位整数和2位小数的代码
2019/11/06 Javascript
Postman如何实现参数化执行及断言处理
2020/07/28 Javascript
微信小程序向Java后台传输参数的方法实现
2020/12/10 Javascript
python 通过logging写入日志到文件和控制台的实例
2018/04/28 Python
python生成ppt的方法
2018/06/07 Python
Python3.5面向对象编程图文与实例详解
2019/04/24 Python
python 下载文件的多种方法汇总
2020/11/17 Python
python statsmodel的使用
2020/12/21 Python
医院党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
人事主管岗位职责
2015/02/04 职场文书
2015年党风廉政建设目标责任书
2015/05/08 职场文书
2015年小学校长工作总结
2015/05/19 职场文书
关于职业道德的心得体会
2016/01/18 职场文书
使用CSS自定义属性实现骨架屏效果
2022/06/21 HTML / CSS