【发布时间】:2021-10-02 01:40:18
【问题描述】:
我要设计一个算法来解决一个问题: 我们有两组人(A组和B组,A组的人数总是小于或等于B组的人数),都站在一维线上,每个人都有一个对应的数字指示其位置。当计时器开始时,A组的每个人都必须找到B组的伙伴,但B组的人根本不能移动,B组的每个人最多只能有1个伙伴。
假设 A 组的人移动 1 个单位/秒,如何找到 A 组每个人找到搭档的最短时间?
例如,如果位置为 {5,7,8} 的 A 组中有 3 人,位置 {2,3,4,9} 的 B 组中有 4 人,则最佳解决方案将是 3 秒,因为最大值(5-3,7-4,9-8)=3
我可以用蛮力来解决它,但是有没有更好的方法来解决这个问题?
【问题讨论】:
-
我认为您的问题可能会简化为this,其中有一个已接受的
O(n)答案。