我有一张表,我们在其中维护用户的登录和注销时间。现在我想向管理员显示一个表,其中包含活跃用户的数量,时间如下:
00:00 - 250
00:15 - 225
00:30 - 240
00:45 - 190
01:00 - 240
....
..
我们应该使用什么算法?
提前致谢:)
最佳答案
使用成对的列表/数组(时间;incr = +1 用于登录,-1 用于注销)
按时间键排序列表
使 ActiveCount = 0
遍历链表,在ActiveCount
中加入incr
。
每时每刻ActiveCount
的值对应活跃用户数
login: 0; logout: 4
login: 2; logout: 6
list
(0;1), (2;1), (4;-1), (6;-1)
count
0 1 2 1 0
关于算法 - 如何计算时间序列中的事件 session 数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53789317/