《编程之美》读书笔记05: 1.9 高效率的安排见面会
2011-03-22 23:18
375 查看
《编程之美》读书笔记05: 1.9 高效率的安排见面会
扩展问题一:
实际上就是求区间的最大重叠次数。书上P57的算法,比较巧妙,但要注意的是:排序时要用到双关键字比较,当两个值相等时,属于时间段开始的一定要排在属于时间段结束的后面,只有这样才能保证结果的正确性。(假设[3, 4)和[4, 5)能在同一个地方举行。书上区间段都是用闭区间,本文采用前闭后开。)
考虑到面试安排的时间一般安排在某个整点、半点或者某刻,可以采用计数的方法,如果都安排在整点,每处理一个区间[a, b),就对[a, b)间的所有整数计数一次。最后从计数结果中找出最大值即可。时间复杂度为O(n)(准确的讲,应该是O(k*n),k为区间的最大间隔,k<=24)。如果面试安排时间在某个半点、刻,可以对原来的时间乘以一个整数(比如2或4,这实际上就是桶排序设置桶间隔为0.5或0.25)。
//arr[][0]为面试开始时间,arr[][1]为面试结束时间
int max_places (int arr[][2], size_t sz)
扩展问题一:
实际上就是求区间的最大重叠次数。书上P57的算法,比较巧妙,但要注意的是:排序时要用到双关键字比较,当两个值相等时,属于时间段开始的一定要排在属于时间段结束的后面,只有这样才能保证结果的正确性。(假设[3, 4)和[4, 5)能在同一个地方举行。书上区间段都是用闭区间,本文采用前闭后开。)
考虑到面试安排的时间一般安排在某个整点、半点或者某刻,可以采用计数的方法,如果都安排在整点,每处理一个区间[a, b),就对[a, b)间的所有整数计数一次。最后从计数结果中找出最大值即可。时间复杂度为O(n)(准确的讲,应该是O(k*n),k为区间的最大间隔,k<=24)。如果面试安排时间在某个半点、刻,可以对原来的时间乘以一个整数(比如2或4,这实际上就是桶排序设置桶间隔为0.5或0.25)。
//arr[][0]为面试开始时间,arr[][1]为面试结束时间
int max_places (int arr[][2], size_t sz)
相关文章推荐
- 《编程之美》1.9:高效率的安排见面会的一个解法
- 《编程之美》1.9:高效率的安排见面会的一个解法
- 编程之美:第一章 1.9高效率地安排见面会
- 编程之美1.9——高效率地安排见面会
- 编程之美:1.9高效率安排见面会 图的m着色问题 回溯法
- 1.9 高效率的安排见面会
- 编程之美:高效率地安排见面会
- 编程之美--1.9高效率的安排见面会(解法二python)
- 编程之美读书笔记_1.9 高效率的安排见面会
- flyinghearts《编程之美》读书笔记连载(6)-高效率安排见面会
- 编程之美-高效率的安排见面会
- 读书笔记之编程之美 - 1.9 高效率地安排见面会
- 编程之美-高效率安排见面会的方法整理
- 编程之美 set 15 高效率地安排见面会
- 第1章 游戏之乐——高效率地安排见面会
- 编程之美读书笔记之-高效率的安排见面会
- 编程之美----高效率地安排见面会----贪心策略
- 【编程之美】高效率的安排见面会
- 【编程之美】高效率的安排见面会
- 编程之美-----高效率地安排见面会