题目链接如下:
我的方法
本题目我设计的解决方案如下:
1 | class UndergroundSystem { |
主要使用了timeScope和checkinMark两个自定义数据结构,并进行维护。
我想到了使用用户id作为一个key,来设计哈希表。
但由于我在哈希表使用方面的想象力不足,对于单个用户的访问记录,没能想到使用<起始站,终点站>键值对作为哈希表的key。而我的方案使用了顺序表,在时间复杂度上要远远高于使用哈希表的方案。
题解答案
1 | class UndergroundSystem { |
题解设计的两个数据结构均为哈希表。
第一个哈希表为startInfo
key: 用户id
value: {起始站,起始时间}
第二个哈希表为table
key:<起始站,终点站>
value:<总时长,总人数>
注意在第二个表的设计中,unordered_map指定了三个参数:
1 | struct StartEndHash { |
这是因为其Key StartEnd是自定义的pair类型,需要指定其产生单一值的key的方法。
本题目涉及到的哈希表设计方法,值得记录。