有n个Mices和n个孔直线放置。每个孔只能容纳1个鼠标。鼠标可以保持在他的位置,从x向右移动一步到x + 1,或者从x向左移动一步到x-1。任何这些动作都需要1分钟。
我们需要找到最短时间,以便为所有小鼠分配孔。
示例:设N = 3,Mices位于= [4,-4,2],孔位于[4,0,5]
然后这里的答案是4。
说明:
Assign mouse at position x=4 to hole at position x=4 : Time taken is 0 minutes
Assign mouse at postion x=-4 to hole at position x=0 : Time taken is 4 minutes
Assign mouse at postion x=2 to hole at postion x=5 : Time taken is 3 minutes
4分钟后,所有小鼠都在洞里。所以答案是4。
我认为对两个数组进行排序然后找到元素的相应差异将达到目的。但是我无法得到天气最小的证据。
所以请帮忙。
答案 0 :(得分:4)
让i1 < i2
成为两只老鼠的位置,让j1 < j2
成为两个洞的位置。通过案例分析显示
max(|i1 - j1|, |i2 - j2|) <= max(|i1 - j2|, |i2 - j1|),
因为在归纳之后,每个分配都可以通过一系列交换转换为已排序的分配,其中这些分配都不会增加完工时间。