当前位置: 首页 > news >正文

四川建设厅网站鹤壁做网站哪家好

四川建设厅网站,鹤壁做网站哪家好,淮南寿县,莱芜网站设计一、题目 你需要设计一个包含验证码的验证系统。每一次验证中#xff0c;用户会收到一个新的验证码#xff0c;这个验证码在 currentTime 时刻之后 timeToLive 秒过期。如果验证码被更新了#xff0c;那么它会在 currentTime #xff08;可能与之前的 currentTime 不同用户会收到一个新的验证码这个验证码在 currentTime 时刻之后 timeToLive 秒过期。如果验证码被更新了那么它会在 currentTime 可能与之前的 currentTime 不同时刻延长 timeToLive 秒。 请你实现 AuthenticationManager 类 AuthenticationManager(int timeToLive) 构造 AuthenticationManager 并设置 timeToLive 参数。 generate(string tokenId, int currentTime) 给定 tokenId 在当前时间 currentTime 生成一个新的验证码。 renew(string tokenId, int currentTime) 将给定 tokenId 且 未过期 的验证码在 currentTime 时刻更新。如果给定 tokenId 对应的验证码不存在或已过期请你忽略该操作不会有任何更新操作发生。 countUnexpiredTokens(int currentTime) 请返回在给定 currentTime 时刻未过期 的验证码数目。 如果一个验证码在时刻 t 过期且另一个操作恰好在时刻 t 发生renew 或者 countUnexpiredTokens 操作过期事件 优先于 其他操作。 示例 来源力扣LeetCode 链接 二、C解法 我的思路及代码 此代码在力扣超时但是我觉得力扣评判的不标准 用两个哈希表第一个存储token到期时间第二个存储当前时间有几个未过期的token。 新建操作更新token的到期时间并且更新这个持续时间中的token数量。 更新操作判断当前token是否到期若还有效则更新token的到期时间并且从原来的到期时间开始直到新的到期时间结束的时间内继续增加token数量。 class AuthenticationManager { public:int timeToLive;unordered_mapstring,int tokenAndTimePast;unordered_mapint,int countTokens;AuthenticationManager(int timeToLive) {this-timeToLive timeToLive;}void generate(string tokenId, int currentTime) {tokenAndTimePast[tokenId] currentTimetimeToLive;for(int icurrentTime;icurrentTimetimeToLive;i){countTokens[i];}}void renew(string tokenId, int currentTime) {//当tokenId不存在的时候他对应的值为0所以可以用这个条件来判断if(tokenAndTimePast[tokenId]currentTime){for(int itokenAndTimePast[tokenId];icurrentTimetimeToLive;i){countTokens[i];}tokenAndTimePast[tokenId] currentTimetimeToLive;}}int countUnexpiredTokens(int currentTime) {return countTokens[currentTime];} };/*** Your AuthenticationManager object will be instantiated and called as such:* AuthenticationManager* obj new AuthenticationManager(timeToLive);* obj-generate(tokenId,currentTime);* obj-renew(tokenId,currentTime);* int param_3 obj-countUnexpiredTokens(currentTime);*/时间复杂度构造函数O(1)generateO(n)其中 n 为 currentTime 的秒数renewO(n)其中 n 为 currentTime 的秒数官方写的countUnexpiredTokensO(n)其中 n 为 generate 的调用次数。空间复杂度O(n)两个 map 中 n 都为 generate 的调用次数。 官方参考代码 class AuthenticationManager { private:int timeToLive;unordered_mapstring, int mp; public:AuthenticationManager(int timeToLive) {this-timeToLive timeToLive;}void generate(string tokenId, int currentTime) {mp[tokenId] currentTime timeToLive;}void renew(string tokenId, int currentTime) {if (mp.count(tokenId) mp[tokenId] currentTime) {mp[tokenId] currentTime timeToLive;}}int countUnexpiredTokens(int currentTime) {int res 0;for (auto [_, time] : mp) {if (time currentTime) {res;}}return res;} }; 时间复杂度构造函数O(1)generateO(1)renewO(1)官方写的countUnexpiredTokensO(n)其中 n 为 generate 的调用次数。我认为的countUnexpiredTokens里面带有 for 循环循环次数和 mp 的个数相关而 mp 的个数和 tokenId 的数量相关所以我认为是 countUnexpiredTokens O(nt)其中 n 为 generate 的调用次数t 为 tokenId 的数量。空间复杂度O(n)其中 n 为 generate 的调用次数map 中有 n 个元素。
http://www.dnsts.com.cn/news/21935.html

相关文章:

  • 直播视频网站如何做iis5.1怎么发布网站
  • 网站建设代理公司福州网站建设哪里有
  • 长春做网站用的软件本地手机网站建设
  • 做视频小网站犯法吗湖南长沙有哪些大学
  • 宿州微网站建设微网站制作提供商推荐
  • 网站开发制作学徒如何wordpress建站
  • 怎做不下网站刷枪网站建设案例精粹 电子书
  • 电影网站排名怎么做古典网站建设欣赏
  • 企业电商网站建设广州网站推广找谁
  • 电商运营基本知识福州关键词seo
  • 织梦怎么用框架实现在浏览器的地址栏只显示网站的域名而不显示出文件名wordpress上传安装包
  • 修改公司网站网页智邦国际erp系统官网
  • 北京网站建设一般多少钱石家庄电商网站建设
  • php网站怎么做301跳转国外的ps网站
  • 阿里云上可以做网站吗泰州网站的建设
  • 用什么做视频网站网站建设常识
  • 南海桂城城乡建设局官方网站建设软件网站
  • 利用淘宝联盟做网站赚取佣金做医美设计的网站
  • 贵州 做企业网站的流程石铜路网站建设
  • 江苏省交通运输厅门户网站建设管理中心网站建设项目需求书
  • 地图定位网站开发做推广网站公司
  • 科凡建站网站被k是什么意思
  • 佛山市网站建设 骏域动力wordpress网盘资源
  • 网站集群建设合同接单做一个网站多少钱
  • 郑州做网站天强科技网站更新维护怎么做
  • 沧州网站备案成都网站推广营销微信
  • 海淀手机网站设计公司人力资源外包
  • 响应式中文网站模板破解版 wordpress
  • 怎么做网站搜索框搜索全网优化推广公司
  • 大型门户网站建设大概多少钱汽车之家这样的网站怎么做