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编写vim插件的简单示例
Apr 17 Python
python使用wxPython打开并播放wav文件的方法
Apr 24 Python
Python正则表达式指南 推荐
Oct 09 Python
Python设计模式之模板方法模式实例详解
Jan 17 Python
Python3使用TCP编写一个简易的文件下载器功能
May 08 Python
python django框架中使用FastDFS分布式文件系统的安装方法
Jun 10 Python
python模拟菜刀反弹shell绕过限制【推荐】
Jun 25 Python
python实现两个经纬度点之间的距离和方位角的方法
Jul 05 Python
Django 全局的static和templates的使用详解
Jul 19 Python
Python中import导入不同目录的模块方法详解
Feb 18 Python
python怎么提高计算速度
Jun 11 Python
Python 删除List元素的三种方法remove、pop、del
Nov 16 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 获取百度的热词数据的代码
2012/02/18 PHP
双冒号 ::在PHP中的使用情况
2015/11/05 PHP
jquery select下拉框操作的一些说明
2010/04/02 Javascript
javascript encodeURI和encodeURIComponent的比较
2010/04/03 Javascript
小试JQuery的AutoComplete插件
2011/05/04 Javascript
JSONP 跨域访问代理API-yahooapis实现代码
2012/12/02 Javascript
JavaScript DOM操作表格及样式
2015/04/13 Javascript
JS实现仿雅虎首页快捷登录入口及导航模块效果
2015/09/19 Javascript
Windows下用PyCharm和Visual Studio开始Python编程
2015/10/26 Javascript
JavaScript电子时钟倒计时第二款
2016/01/10 Javascript
JS获取鼠标坐标位置实例分析
2016/01/20 Javascript
基于javascript实现动态显示当前系统时间
2016/01/28 Javascript
原生js实现autocomplete插件
2016/04/14 Javascript
AngularJS表单详解及示例代码
2016/08/17 Javascript
基于JavaScript Array数组方法(新手必看篇)
2016/08/20 Javascript
标准的js无缝滚动效果
2016/08/30 Javascript
js 中获取制定的cook信息实现方法
2016/11/19 Javascript
基于VUE.JS的移动端框架Mint UI的使用
2017/10/11 Javascript
JS去掉字符串中所有的逗号
2017/10/18 Javascript
vue 基于element-ui 分页组件封装的实例代码
2018/12/10 Javascript
详解React 服务端渲染方案完美的解决方案
2018/12/14 Javascript
解决layui 三级联动下拉框更新时回显的问题
2019/09/03 Javascript
[16:01]夜魇凡尔赛茶话会 第二期01:你比划我猜
2021/03/11 DOTA
python回调函数中使用多线程的方法
2017/12/25 Python
Python基础教程之内置函数locals()和globals()用法分析
2018/03/16 Python
Python 3.6 读取并操作文件内容的实例
2018/04/23 Python
使用python对文件中的单词进行提取的方法示例
2018/12/21 Python
世界领先的高品质定制产品平台:Zazzle
2017/07/23 全球购物
JAKO-O德国野酷台湾站:德国首屈一指的婴幼童用品品牌
2019/01/14 全球购物
在校生党员自我评价
2013/09/25 职场文书
《燕子专列》教学反思
2014/02/21 职场文书
大学新学期计划书
2014/04/28 职场文书
新文化运动的基本口号
2014/06/21 职场文书
王亚平太空授课观后感
2015/06/12 职场文书
python 通过使用Yolact训练数据集
2021/04/06 Python
redis 存储对象的方法对比分析
2021/08/02 Redis