会议室日程安排问题(最少需要多少个会议室)

按照贪心算法,此问题可以得到最优解!原来是按结束时间排序,但这样的话并不是最少的会议室数(下面有反例)而要得到最少的会议室数,需要将议程时间按开始时间排序。下面是完整的代码:

class Program(object):def __init__(self, start, end):self.start = startself.end = enddef bestArrange(programs, start_time):"""programs 为项目列表strat_time 为最早开始的时间"""programs = sorted(programs, key=lambda x: x.end)#将所有的议程按结束时间排序# for i in range(len(programs)):#     print(programs[i].start)res = 0while True:temp = []startTime = start_time#每次循环设置一个初始时间for i in range(len(programs)):if startTime <= programs[i].start:startTime = programs[i].end#下一个议程的开始时间要晚于当前议程的结束时间else:temp.append(programs[i])res += 1if len(temp) == 0:#当议程全部安排完之后就结束breakprograms = tempreturn resif __name__ == '__main__':a1 = Program(6, 8)#实例化a2 = Program(10, 11)a3 = Program(9, 12)a4 = Program(11.5, 15)a5 = Program(13,14)programs = [a1, a2, a3, a4, a5]a = bestArrange(programs, 6)print(a)

上面是按照结束时间排序,则需要的会议室数量是3,而如果按照开始时间排序,得到的结果是2

会议室日程安排问题(python贪心算法)相关推荐

  1. python贪心算法最短路径_dijkstra算法(贪心算法)——解决最短路径问题

    最短路径 给定一张带权图和其中的一个点(作为源点),求源点到其余顶点的最短路径 基本思想 1)源点u,所有顶点的集合V,集合S(S中存有的顶点,他们到源点的最短路径已经确定,源点u默认在S中),集合V ...

  2. python贪心算法几个经典例子_关于贪心算法的一些探讨、经典问题的解决和三种典型的贪心算法算法(哈弗曼,Kruskal,Prim)的Python实现。...

    贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择.也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解. 贪心算法不是对所有问题都能得到整体最优解,关键是 ...

  3. 活动安排问题与贪心算法

    贪心算法: 在求最优解问题的过程中,依据某种贪心标准,从问题的初始状态出发,直接去求每一步的最优解,通过若干次的贪心选择,最终得出整个问题的最优解,这种求解方法就是贪心算法. 从贪心算法的定义可以看出 ...

  4. python换零钱_黄哥Python, 贪心算法解决换零钱问题

    下面的文字来源于维基百科 贪心算法(英语:greedy algorithm) 又称贪婪算法,是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是最好或最优的算法.比如 ...

  5. python贪心算法最短路径_贪心算法---最短路径问题

    一,贪心算法的设计思想 • 从问题的某一个初始解出发逐步逼近给定的目标,每一步都作一个不可回溯的决策,尽可能地求得最好的解.当达到某算法中的某一步不需要再继续前进时,算法停止. 二,贪心算法的基本性质 ...

  6. 农夫过河——python贪心算法实现

    1.问题描述: 一个农夫在河的西岸带了一匹狼.一只羊和一棵白菜,他需要把这三样东西用船带到河的东岸.然而,这艘船只能容下农夫本人和另外一样东西.如果农夫不在场的话,狼会吃掉羊,羊也会吃掉白菜. 2.问 ...

  7. Python贪心算法解决收银员找零问题

    场景描述 在超市结账时,假设只有1分.5分.1角.3角.5角.1元的硬币,如果需要找零钱,给定需要找的零钱数目,使收银员找给顾客的硬币数量最少,运行程序如图: 知识补充  贪心算法是指在当前问题求解中 ...

  8. python贪心算法最短路径_贪心算法2-单源最短路径

    1.问题分析 给定有向带权图G = (V, E),其中每条边的权是非负实数.此外,给定V中的一个顶点u,称为源点.现在要计算从源到所有其它各顶点的最短路径,这里的路径指的是路径上各边的权值之和. 求单 ...

  9. python贪心算法求删数问题_贪心算法删数问题

    删数问题 给定n位正整数a,去掉其中任意k个数字后,剩下的数字按原次序排列组成一个新的正整数.对于给定的n和k,设计一个算法,找出剩下数字组成的新数最少的删数方案. 输入示例: 178543 4 输出 ...

最新文章

  1. NHibernate Step By Step(10)-常用的配置属性
  2. Android的EditText自动获取焦点并弹出输入法问题
  3. arch linux 下安装 conan permissionError :[Erno 13] Permission denied
  4. [每日一问]虚拟化网络设计中为什么建议采用链路聚合
  5. 自学python转行-转行Python,应该如何短期自学,达到就业水平
  6. 解决Dynamic Web Module 3.0 Requires Java 1.6 or newer
  7. python2转python3代码_python2代码批量转为python3代码
  8. vue根据url获取内容axios_vue+vuex+axios从后台获取数据存入vuex,组件之间共享数据...
  9. Nhibernate代码生成器v2.1中文版
  10. Kubernetes 并非灵丹妙药...
  11. java生成三角网_源码:基于离散点的构TIN算法(三角网)
  12. 利用css做出的图片墙效果_练习
  13. 23种设计模式(九)对象创建之原型模式
  14. 2010年的20款游戏
  15. php_eol为什么没有换行,PHP PHP_EOL 换行符
  16. 计算机系统分析师高级试题及答案,2013年计算机软考系统分析师试题及答案1
  17. SNPS IP LPDDR4 调试
  18. Java 汉字 转 拼音/首字母
  19. [书籍翻译]12周撰写期刊文章 学术出版成功指南——第 1 周:设计写作计划
  20. mysql实验视图与索引_视图和索引(数据库实验4)【借鉴实操】

热门文章

  1. 榆熙电商:如何保证店铺头像和风格的统一?
  2. 高光谱遥感--原理、技术与应用(童庆禧院士等)
  3. mac必备的mac解压缩软件:BetterZip for mac中文版
  4. python实时读取日志_paramiko使用tail实时获取服务器的日志输出详解
  5. 路由器vueRouter
  6. 红队免杀培训第一章-不可执行的shellcode
  7. 当 Python 和 R 遇上北京二手房
  8. OSChina 周三乱弹 —— 我胖我吃你家饭了吗
  9. SUPPORTED TYPESCRIPT VERSIONS: >=3.3.1 <4.5.0
  10. CSDN程序员俱乐部里活动热闹,成都、杭州、济南活动盛花绽放~