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 SqlAlchemy
Feb 12 Python
使用Python的urllib2模块处理url和图片的技巧两则
Feb 18 Python
Python文件夹与文件的相关操作(推荐)
Jul 25 Python
python八大排序算法速度实例对比
Dec 06 Python
Python中单例模式总结
Feb 20 Python
Python实现快速傅里叶变换的方法(FFT)
Jul 21 Python
Python虚拟环境的原理及使用详解
Jul 02 Python
python3.x 生成3维随机数组实例
Nov 28 Python
python连接PostgreSQL过程解析
Feb 09 Python
解决python脚本中error: unrecognized arguments: True错误
Apr 20 Python
python中_del_还原数据的方法
Dec 09 Python
python实现层次聚类的方法
Nov 01 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
应用开发中涉及到的css和php笔记分享
2011/08/02 PHP
php中sql注入漏洞示例 sql注入漏洞修复
2014/01/24 PHP
php自定义类fsocket模拟post或get请求的方法
2015/07/31 PHP
PHP简单判断手机设备的方法
2016/08/23 PHP
PHP实现的登录页面信息提示功能示例
2017/07/24 PHP
PHP实现QQ、微信和支付宝三合一收款码实例代码
2018/02/19 PHP
javascript下查找父节点的简单方法
2007/08/13 Javascript
JavaScript Event学习第十章 一些可替换的事件对
2010/02/10 Javascript
IE 当eval遇上function的处理
2011/08/09 Javascript
基于jquery的loading 加载提示效果实现代码
2011/09/01 Javascript
JS添加删除一组文本框并对输入信息加以验证判断其正确性
2013/04/11 Javascript
jQuery中delegate()方法用法实例
2015/01/19 Javascript
jQuery滚动条插件nanoscroller使用指南
2015/04/21 Javascript
浅谈JavaScript中指针和地址
2015/07/26 Javascript
JS实现控制图片显示大小的方法【图片等比例缩放功能】
2017/02/18 Javascript
原生js实现轮播图的示例代码
2017/02/20 Javascript
AngularJS1.X学习笔记2-数据绑定详解
2017/04/01 Javascript
手把手搭建安装基于windows的Vue.js运行环境
2017/06/12 Javascript
详解webpack和webpack-simple中如何引入css文件
2017/06/28 Javascript
vue 动态绑定背景图片的方法
2018/08/10 Javascript
vue-router动态设置页面title的实例讲解
2018/08/30 Javascript
vue子路由跳转实现tab选项卡
2019/07/24 Javascript
[08:38]DOTA2-DPC中国联赛 正赛 VG vs Elephant 选手采访
2021/03/11 DOTA
python使用PyGame模块播放声音的方法
2015/05/20 Python
在Python的Flask中使用WTForms表单框架的基础教程
2016/06/07 Python
Python实现删除列表中满足一定条件的元素示例
2017/06/12 Python
tensorflow 中对数组元素的操作方法
2018/07/27 Python
Python日期格式和字符串格式相互转换的方法
2020/02/18 Python
LookFantastic丹麦:英国美容护肤精品在线商城
2016/08/18 全球购物
Amara德国:家居饰品、设计师品牌和豪华礼品
2019/05/20 全球购物
四年大学生活的自我评价范文
2014/02/07 职场文书
领导四风问题整改措施思想汇报
2014/10/13 职场文书
小学六一儿童节活动总结
2015/05/05 职场文书
个人房屋租赁合同(标准范本)
2019/09/16 职场文书
Python实现学生管理系统(面向对象版)
2021/06/24 Python
微信小程序 根据不同用户切换不同TabBar
2022/04/21 Javascript