所需的最低出租车(算法)

时间:2019-10-27 12:08:58

标签: c++ algorithm

我正在尝试解决这个问题:

https://www.hackerearth.com/practice/algorithms/greedy/basics-of-greedy-algorithms/practice-problems/algorithm/minimum-cabs-0798cfa5/description/

我在这里看到一个解决方案,但我不太了解。

return

有人可以向我解释该算法吗?

2 个答案:

答案 0 :(得分:2)

给定的解决方案适用于最大重叠间隔。

作者希望计算在任何时间点重叠的最大间隔或范围数。

假设一个表示时间的时间标度:

最短时间:00:00 =>在时间范围内表示0

最长时间:23:59 =>在时间范围内代表1439

因此,作者使用常数MAX作为1500,因此时间尺度为[0,1500],满足我们的要求。

现在,对于我们从输入中获得的每个间隔/范围,作者都使用了前缀和,因此将范围内的每个时间单位加1。

例如:假设我的范围是00:00到12:36,那么我将对数组A的每个索引从0到756加1。

最大前缀总和表示所需的最少出租车数量,因为在任何特定时间只能将1个出租车分配给1个人。

希望这会有所帮助。随时提出任何疑问。如果满足您的疑问,请标记正确的答案。

答案 1 :(得分:0)

. "<td>".$person ['job']."</td>"