2

我有一个应用程序,它将两个客户端连接在一起。现在,客户端连接后,他开始发送“bumps”——当一个bumps 击中服务器时,时间被添加到一个List<DateTime>. 现在,由于有两个客户端连接在一起 - 有两个列表。

我想要做的是,我想查看两个列表,并找到两个用户发送时差为 60 秒的颠簸的时间跨度。

例子:

Bumps of user1:
18:28:00
18:28:30
18:29:30
18:30:00
18:30:30

Bumps of user2:
18:29:00
18:30:00

由于user2只发送了两次颠簸,并且user1同时发送了颠簸(60 秒差异),因此两个用户的时间跨度应该是 1 分钟。

有没有可以计算的算法?

编辑澄清:我想获得尽可能短的时间跨度,也可能会有很大的差距,蚂蚁然后可能会有另一个时间跨度(所以基本上会有很多时间跨度)。

4

1 回答 1

3

它与归并排序中的归并步骤非常相似。

如果 X 和 Y 是颠簸时间列表,请先对它们进行排序。之后,在以下条件下继续浏览这两个列表:

If diff(X[i],Y[j]) < 60 "Output something";

If (X[i]<Y[j])i++;
Else j++;
于 2013-04-23T17:33:11.893 回答