【发布时间】:2015-04-26 15:23:35
【问题描述】:
给定到达火车站的 N 列火车的到达和离开时间,对于给定的k 站台,返回我们可以在k 站台上容纳的最大列车数量。
k <<< N
到达和离开时间数组
Input: arr[] = {9:00, 9:40, 9:50, 11:00, 15:00, 18:00}
dep[] = {9:10, 12:00, 11:20, 11:30, 19:00, 20:00}
这个问题是在一些采访中问我的,那么最好的算法是什么?这个问题是从这个问题稍微修改的。
我为这个问题尝试了贪婪算法,但它不适用于所有测试用例。 例如:对于 k=2 我们有时间间隔
arr[]={1:00,1:30,2:00}
dept[]={1:40,2:10,3:30}
' 删除 {1:30 和 2:10 间隔,我们可以为 k=2 完成任务 {1:00-1:40} 和 {2:00-3:30} 因为在此期间没有其他火车发生
【问题讨论】:
-
你的意思是最小平台数?是什么限制了您拥有无限平台?
-
我知道如何从这些给定的时间中找到最少的平台,上面的链接也解释了这个解决方案。现在,如果我们只有 k 个站台,那么可以占用这些站台的最大列车数量。
-
您的意思是“选择给定火车的最大可能子集,使得在任何给定时刻,车站上的火车不超过
k”?请澄清问题。 -
假设我有 15 列火车,而这些火车需要 7 个月台才能顺利运行(没有任何问题)现在假设我们只能负担 4 个月台,所以这些火车的一些火车必须取出。跨度>
-
我投票结束这个问题,因为它是一个数学作业问题,而不是一个编程问题。
标签: arrays algorithm data-structures dynamic-programming greedy