两个DateTimes列表-搜索“碰撞”链

本文关键字:碰撞 搜索 DateTimes 列表 两个 | 更新日期: 2023-09-27 18:10:45

我有一个应用程序,这是连接两个客户端在一起。现在,在客户端连接之后,他开始发送"颠簸"—当颠簸到达服务器时,时间被添加到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分钟。

有没有可以计算的算法?

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

两个DateTimes列表-搜索“碰撞”链

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

如果X和Y是碰撞时间列表,首先对它们排序。之后,在下列条件下继续遍历这两个列表:

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