时间复杂度和更好的编码方法

问题描述 投票:0回答:0

我有一个问题,当用户登录时,输入将包含登录用户 ID 和时间戳。当用户再次登录时,需要找出用户最后 x 秒登录的次数。

输入= {(P1, 0), (P2, 1), (P3, 2), (P1,3), (P1,4), (P2,5), (P1,6)}

Q1:P1的最后4秒需要输出用户登录了多少次

输出:P1,2

Q2:P1最后6秒:

输出:P1,4

为了解决这个问题,我最初使用了一个 hashMap,其中键作为人员 ID,值作为每个人的一组时间戳。

Map<personID,set<TimeStamp>> personMap = new HashMap();

personMap.put(P1,Treeset(0,3,4));
personMap.put(P2,Treeset(1,5));
personMap.put(P3,Treeset(2));

然后在最后一个条目上,我们检索树集并找到在给定时间的最后 4 秒后下降的值。这是可行的,但我对时间复杂度感到困惑,考虑到值是树集,插入和检索的时间复杂度是多少?

personMap有没有更好的存储时间戳的数据结构?

java data-structures hashmap treeset
© www.soinside.com 2019 - 2024. All rights reserved.