我有一个应用程序,即将两个客户端连接在一起。现在,在客户端连接之后,他开始发送“颠簸” - 当碰撞到服务器时,时间被添加到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分钟。
有没有可以计算出来的算法?
编辑澄清:我想尽可能短的时间,也可能有一个很大的差距,蚂蚁然后可能有另一个时间跨度(所以基本上会有很多时间跨度)。
答案 0 :(得分:3)
它与合并排序中的合并步骤非常相似。
如果X和Y是碰撞时间列表,请先对它们进行排序。之后,请按以下条件继续浏览这两个列表:
If diff(X[i],Y[j]) < 60 "Output something";
If (X[i]<Y[j])i++;
Else j++;