腾讯2012面试

来源:互联网 发布:mysql和oracle的比较 编辑:程序博客网 时间:2024/06/08 13:30

求一个论坛的在线人数,假设有一个论坛,其注册ID有两亿个,每个ID从登录到退出会向一个日志文件中记下登录时间和退出时间,要求写一个算法统计一天中论坛的用户在线分布,取样粒度为秒。

思路:一天有 3600 * 24 = 86400秒

定义一个长度为86400的整形数组,int data[86400],每个整数对应这一秒的人数变化值,可能为正也可能为负,初始化数组为0

然后依次读入每个用户的登录时间个退出时间,对应登录时间的data[log in]++,对应退出时间的data[log out]--,如此一来,得到了每秒的人数变化

假设一天开始时论坛在线人数为0,则第1秒的在线人数online_num[1] = data[1],则第n秒的在线人数online_num[n] = online_num[n-1] + data[n]

这样就得到了一天中任意时刻的在线人数

原创粉丝点击