【问题】为了统计一天内QQ每秒的在线用户数量,每次一个用户下线时会生成一条记录到文件里:记录里有三个字段(上线时间,下线时间,用户名),时间以秒为单位。现在有一个文件包含了当天生成的N条记录(N很大),请设计一个算法根据N条记录统计出当天每秒在线用户的数量。(0<=上线时间& lt;下线时间<=24*3600)
【思路】创建一个数组change[ 24*3600 ]用来记录一天中,每秒用户的变化情况,在第i秒上线一人change[ i ]++,在第i秒下线一人change[ i ] - -,change[ i ]若为正,说明这一秒上线人数大于下线人数,反之亦然。再创建一个online[ 24*3600 ],用来记录每秒在线人数,online[ 0 ] = 0表示第0秒在线人数为0,计算方法为online[ n ] = online[ n-1 ] + change[ n ]