文章目录 第一种 数据库加最近登录时间和最后登出时间第二种 设计数据结构 题目:1分钟内用户上线的数目是60万,如果用户在5分钟内重复上线,就给他发警告,问如何设计? 第一种 数据库加最近登录时间和最后登出时间 常规设计,数据库记录额外的信息,然后交给业务层去处理。 第二种 设计数据结构 一个循环数组 长度为5,每个元素为hashmap。 当用户ID上线时,从循环数组中遍历5次 O(5)的代价,得到击中的次数N。 如果N>0,则为重复登陆;否则,插入当前的分钟对应的卡槽中。 循环数组记录当前使用的index,如果index++,则自动淘汰了5分钟过期的ID。